fix: percent-encode page URLs built from file paths

A file named Müsli.html was indexed with the URL /Müsli.html, which only
resolves if the host happens to serve the same byte sequence the index was
built from. Encode the URL that build_url derives from the file path using
the URL spec's path percent-encode set, leaving / and % alone so path
separators and already-encoded filenames are unaffected.

URLs supplied by the caller (data-pagefind-meta="url:...", addCustomRecord)
do not go through build_url and are untouched.

Fixes #619
This commit is contained in:
dualfroz committed 2026-09-13 15:40:22 +02:00
1 parent 3d8f53f964
commit 128a5c945a
3 files changed
+41 -1

No files matched your search

Generated
+1
View File
@@ -2303,6 +2303,7 @@ dependencies = [
"minifier",
"pagefind_stem 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"path-slash",
"percent-encoding",
"portpicker",
"rayon",
"regex",