aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Readers
diff options
context:
space:
mode:
authorfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>2007-01-06 20:47:00 +0000
committerfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>2007-01-06 20:47:00 +0000
commit233148f9638f637871391cbed239068aeddb6cca (patch)
treebda8ced5e165d64c9c69e361718c13282514bf94 /src/Text/Pandoc/Readers
parent58dcef062556067b753892c8020d7f8c4e0bed0c (diff)
downloadpandoc-233148f9638f637871391cbed239068aeddb6cca.tar.gz
Fixed bug in Markdown reader's handling of underscores and other
inline formatting markers inside reference labels: for example, in '[A_B]: /url/a_b', the material between underscores was being parsed as emphasized inlines. git-svn-id: https://pandoc.googlecode.com/svn/trunk@442 788f1e2b-df1e-0410-8736-df70ead52e1b
Diffstat (limited to 'src/Text/Pandoc/Readers')
-rw-r--r--src/Text/Pandoc/Readers/Markdown.hs22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs
index 35ceb7807..ba4274c1c 100644
--- a/src/Text/Pandoc/Readers/Markdown.hs
+++ b/src/Text/Pandoc/Readers/Markdown.hs
@@ -696,17 +696,23 @@ endline = try (do
-- links
--
--- a reference label for a link
-reference = do
+rawLabel = try $ do
char labelStart
- notFollowedBy (char noteStart)
-- allow for embedded brackets:
- label <- manyTill ((do{res <- reference;
- return $ [Str "["] ++ res ++ [Str "]"]}) <|>
- count 1 inline)
- (char labelEnd)
- return (normalizeSpaces (concat label))
+ raw <- manyTill (do{res <- rawLabel; return ("[" ++ res ++ "]")} <|>
+ count 1 anyChar) (char labelEnd)
+ return $ concat raw
+-- a reference label for a link
+reference = try $ do
+ notFollowedBy (try (do{char labelStart; char noteStart}))
+ raw <- rawLabel
+ oldInput <- getInput
+ setInput raw
+ label <- many inline
+ setInput oldInput
+ return (normalizeSpaces label)
+
-- source for a link, with optional title
source = try (do
char srcStart