aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2014-12-14 12:20:33 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2014-12-14 12:20:33 -0800
commit2b08e32a9090442b530822f151c94fbd7d1cbbd1 (patch)
treeebd4b4bf68414884f69ceacce3cda0d3a34c0d3b
parent4ffa70970dc7219aa71c137c728280b7460ed604 (diff)
downloadpandoc-2b08e32a9090442b530822f151c94fbd7d1cbbd1.tar.gz
Fixe autolinks with following punctuation.
Closes #1811. The price of this is that autolinked bare URIs can no longer contain `>` characters, but this is not a big issue.
-rw-r--r--src/Text/Pandoc/Parsing.hs2
-rw-r--r--tests/Tests/Readers/Markdown.hs5
2 files changed, 6 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Parsing.hs b/src/Text/Pandoc/Parsing.hs
index e0f5f65bb..8dfc6dd57 100644
--- a/src/Text/Pandoc/Parsing.hs
+++ b/src/Text/Pandoc/Parsing.hs
@@ -452,7 +452,7 @@ uri = try $ do
let percentEscaped = try $ char '%' >> skipMany1 (satisfy isHexDigit)
let entity = () <$ characterReference
let punct = skipMany1 (char ',')
- <|> () <$ (satisfy (\c -> not (isSpace c) && c /= '<'))
+ <|> () <$ (satisfy (\c -> not (isSpace c) && c /= '<' && c /= '>'))
let uriChunk = skipMany1 wordChar
<|> percentEscaped
<|> entity
diff --git a/tests/Tests/Readers/Markdown.hs b/tests/Tests/Readers/Markdown.hs
index a7e322306..fdb1a7417 100644
--- a/tests/Tests/Readers/Markdown.hs
+++ b/tests/Tests/Readers/Markdown.hs
@@ -187,6 +187,11 @@ tests = [ testGroup "inline code"
]
, testGroup "bare URIs"
(map testBareLink bareLinkTests)
+ , testGroup "autolinks"
+ [ "with unicode dash following" =:
+ "<http://foo.bar>\8212" =?> para (autolink "http://foo.bar" <>
+ str "\8212")
+ ]
, testGroup "Headers"
[ "blank line before header" =:
"\n# Header\n"