diff options
author | John MacFarlane <jgm@berkeley.edu> | 2015-10-11 17:06:26 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2015-10-11 17:12:50 -0700 |
commit | 1e8a25ad69db8fa372ac4ddbb5ac05ffb00ed052 (patch) | |
tree | 3fe6a71ece6682bcf86b66a83051a573c448de33 /src/Text/Pandoc/Shared.hs | |
parent | 04307a155407480c2bedd4c6f9c121640ba47b11 (diff) |
Percent-encode more special characters in URLs.
HTML, LaTeX writers adjusted.
The special characters are '<','>','|','"','{','}','[',']','^', '`'.
Closes #1640, #2377.
Diffstat (limited to 'src/Text/Pandoc/Shared.hs')
-rw-r--r-- | src/Text/Pandoc/Shared.hs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs index 1fe3db5f7..1e06aa383 100644 --- a/src/Text/Pandoc/Shared.hs +++ b/src/Text/Pandoc/Shared.hs @@ -288,9 +288,12 @@ toRomanNumeral x = _ | x >= 1 -> "I" ++ toRomanNumeral (x - 1) _ -> "" --- | Escape whitespace in URI. +-- | Escape whitespace and some punctuation characters in URI. escapeURI :: String -> String -escapeURI = escapeURIString (not . isSpace) +escapeURI = escapeURIString (not . needsEscaping) + where needsEscaping c = isSpace c || c `elem` + ['<','>','|','"','{','}','[',']','^', '`'] + -- | Convert tabs to spaces and filter out DOS line endings. -- Tabs will be preserved if tab stop is set to 0. |