aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2015-06-29 10:21:40 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2015-06-29 10:21:40 -0700
commit226a5cd6a9341fd7d86c39bbbc18add1f7bbbfb7 (patch)
treed4055deb022f002c9a4afeb188cee4d98627b70d
parent754d1cef7ba30d1df8fbc8e1a9612d67d5a8aa99 (diff)
parent3b2c50ed93dfd00ea18974a856f25e0a423693dc (diff)
downloadpandoc-226a5cd6a9341fd7d86c39bbbc18add1f7bbbfb7.tar.gz
Merge pull request #2250 from PromyLOPh/rsttarget
Fix RST reference names with special characters
-rw-r--r--src/Text/Pandoc/Readers/RST.hs2
-rw-r--r--tests/Tests/Readers/RST.hs4
2 files changed, 5 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Readers/RST.hs b/src/Text/Pandoc/Readers/RST.hs
index 4b05b2799..38de77f9f 100644
--- a/src/Text/Pandoc/Readers/RST.hs
+++ b/src/Text/Pandoc/Readers/RST.hs
@@ -779,7 +779,7 @@ simpleReferenceName' :: Parser [Char] st String
simpleReferenceName' = do
x <- alphaNum
xs <- many $ alphaNum
- <|> (try $ oneOf "-_:+." >> lookAhead alphaNum)
+ <|> (try $ oneOf "-_:+." <* lookAhead alphaNum)
return (x:xs)
simpleReferenceName :: Parser [Char] st Inlines
diff --git a/tests/Tests/Readers/RST.hs b/tests/Tests/Readers/RST.hs
index 5eabec89a..7f1f3d044 100644
--- a/tests/Tests/Readers/RST.hs
+++ b/tests/Tests/Readers/RST.hs
@@ -68,6 +68,10 @@ tests = [ "line block with blank line" =:
link "http://foo.bar.baz" "" "http://foo.bar.baz" <> ". " <>
link "http://foo.bar/baz_(bam)" "" "http://foo.bar/baz_(bam)"
<> " (" <> link "http://foo.bar" "" "http://foo.bar" <> ")")
+ , "Reference names with special characters" =:
+ ("A-1-B_2_C:3:D+4+E.5.F_\n\n" ++
+ ".. _A-1-B_2_C:3:D+4+E.5.F: https://example.com\n") =?>
+ para (link "https://example.com" "" "A-1-B_2_C:3:D+4+E.5.F")
, testGroup "literal / line / code blocks"
[ "indented literal block" =: unlines
[ "::"