Skip to content

Commit cb65fed

Browse files
set jinja2 autoescape for html/xml templates (#1219)
1 parent b45fc32 commit cb65fed

5 files changed

Lines changed: 11 additions & 5 deletions

File tree

CHANGES.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22

33
## Unreleased
44

5-
### Misc
5+
## Misc
66

7+
* enable `jinja2.autoescape` for HTML/XML templates (ref: https://jinja.palletsprojects.com/en/stable/api/#autoescaping)
78
* remove python 3.9 support
89

10+
911
## 0.23.1 (2025-08-27)
1012

1113
### titiler.core

src/titiler/core/titiler/core/factory.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@
9292
from titiler.core.utils import bounds_to_geometry, render_image
9393

9494
jinja2_env = jinja2.Environment(
95-
loader=jinja2.ChoiceLoader([jinja2.PackageLoader(__package__, "templates")])
95+
autoescape=jinja2.select_autoescape(["html", "xml"]),
96+
loader=jinja2.ChoiceLoader([jinja2.PackageLoader(__package__, "templates")]),
9697
)
9798
DEFAULT_TEMPLATES = Jinja2Templates(env=jinja2_env)
9899

src/titiler/core/titiler/core/templating/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616

1717

1818
jinja2_env = jinja2.Environment(
19-
loader=jinja2.ChoiceLoader([jinja2.PackageLoader(__package__, "html")])
19+
autoescape=jinja2.select_autoescape(["html"]),
20+
loader=jinja2.ChoiceLoader([jinja2.PackageLoader(__package__, "html")]),
2021
)
2122
DEFAULT_TEMPLATES = Jinja2Templates(env=jinja2_env)
2223

src/titiler/extensions/titiler/extensions/viewer.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
from titiler.core.factory import FactoryExtension, TilerFactory
1010

1111
jinja2_env = jinja2.Environment(
12-
loader=jinja2.ChoiceLoader([jinja2.PackageLoader(__package__, "templates")])
12+
autoescape=jinja2.select_autoescape(["html"]),
13+
loader=jinja2.ChoiceLoader([jinja2.PackageLoader(__package__, "templates")]),
1314
)
1415
DEFAULT_TEMPLATES = Jinja2Templates(env=jinja2_env)
1516

src/titiler/extensions/titiler/extensions/wms.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
from titiler.core.resources.enums import ImageType, MediaType
2525

2626
jinja2_env = jinja2.Environment(
27-
loader=jinja2.ChoiceLoader([jinja2.PackageLoader(__package__, "templates")])
27+
autoescape=jinja2.select_autoescape(["xml"]),
28+
loader=jinja2.ChoiceLoader([jinja2.PackageLoader(__package__, "templates")]),
2829
)
2930
DEFAULT_TEMPLATES = Jinja2Templates(env=jinja2_env)
3031

0 commit comments

Comments
 (0)