Skip to content

Commit 0d891af

Browse files
committed
isURI: don't require non-ASCII characters to be escaped.
Closes #8508.
1 parent 7a82686 commit 0d891af

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/Text/Pandoc/URI.hs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import qualified Network.HTTP.Types as HTTP
2020
import qualified Text.Pandoc.UTF8 as UTF8
2121
import qualified Data.Text as T
2222
import qualified Data.Set as Set
23-
import Data.Char (isSpace)
23+
import Data.Char (isSpace, isAscii)
2424
import Network.URI (URI (uriScheme), parseURI, escapeURIString)
2525

2626
urlEncode :: T.Text -> T.Text
@@ -90,7 +90,9 @@ schemes = Set.fromList
9090
-- | Check if the string is a valid URL with a IANA or frequently used but
9191
-- unofficial scheme (see @schemes@).
9292
isURI :: T.Text -> Bool
93-
isURI = maybe False hasKnownScheme . parseURI . T.unpack
93+
isURI =
94+
-- we URI-escape non-ASCII characters because otherwise parseURI will choke:
95+
maybe False hasKnownScheme . parseURI . escapeURIString isAscii . T.unpack
9496
where
9597
hasKnownScheme = (`Set.member` schemes) . T.toLower .
9698
T.filter (/= ':') . T.pack . uriScheme

test/command/8508.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
```
2+
% pandoc -t man
3+
SEE ALSO
4+
========
5+
6+
* [Milk](https://en.wikipedia.org/wiki/Milk)
7+
* [EBNF](https://en.wikipedia.org/wiki/Extended_Backus–Naur_form)
8+
^D
9+
.SH SEE ALSO
10+
.IP \[bu] 2
11+
Milk (https://en.wikipedia.org/wiki/Milk)
12+
.IP \[bu] 2
13+
EBNF (https://en.wikipedia.org/wiki/Extended_Backus–Naur_form)
14+
```

0 commit comments

Comments
 (0)