fix: percent-encode page URLs built from file paths
build_url() escaped %, # and ? one by one, so a file name carrying any other character that a URL path cannot hold - a space, a quote, an angle bracket, a control character - was emitted raw and only resolved if the host happened to serve the same byte sequence the index was built from. Encode the URL that build_url derives from the file path with the URL spec's path percent-encode set, leaving / alone so the separators between path segments survive. % stays in the set, so a file literally named in encoded form keeps pointing at the file that is on disk. 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:
1 parent
996b9c3416
commit
49fb9b1b9b
3 files changed
+45
-7
No files matched your search
@@ -90,6 +90,7 @@ actix-web = { version = "4", optional = true }
|
||||
actix-files = { version = "0.7", optional = true }
|
||||
lexical-core = "1.0.0"
|
||||
path-slash = "0.2"
|
||||
percent-encoding = "2"
|
||||
rayon = "1.10"
|
||||
rust-patch = "0.1.3"
|
||||
typed-builder = "0.23.2"
|
||||
|
||||
Reference in new issue
Block a user