Skip to content

Tilde-decode custom page path variables, refs #1732#2849

Open
TowyTowy wants to merge 1 commit into
simonw:mainfrom
TowyTowy:fix/1732-decode-custom-page-path-vars
Open

Tilde-decode custom page path variables, refs #1732#2849
TowyTowy wants to merge 1 commit into
simonw:mainfrom
TowyTowy:fix/1732-decode-custom-page-path-vars

Conversation

@TowyTowy

Copy link
Copy Markdown
Contributor

Wildcard custom pages (e.g. templates/pages/{topic}.html) passed the raw tilde-encoded path segment straight into the template context. A URL like /topic_hello~20world rendered hello~20world instead of hello world, so page variables containing spaces, slashes, or non-ASCII characters never matched the user's data (the original report in #1732).

This tilde-decodes the captured route groups before adding them to the template context, matching how the database/table/row url_vars are already decoded elsewhere in the router.

Added test_custom_route_pattern_decodes_path_variables covering space (~20), UTF-8 (~C3~A9café), and slash (~2F) encodings across single- and two-variable page routes. Fails before, passes after (170 tests green, no regressions).

Prepared with AI assistance (Claude), reviewed and verified by me.

Wildcard custom pages (e.g. templates/pages/{topic}.html) passed the raw
tilde-encoded path segment straight into the template context, so a URL
like /topic_hello~20world rendered "hello~20world" instead of "hello
world" - and ids containing spaces or slashes never matched user data.

Tilde-decode the captured groups, matching how the database/table/row
url_vars are already decoded elsewhere in the router.

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant