diff options
author | John MacFarlane <jgm@berkeley.edu> | 2021-10-20 10:14:42 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2021-10-20 10:34:47 -0700 |
commit | 0a93acf91a116911f2c6c6add4f153cc80d15181 (patch) | |
tree | de7afaf6f4a567fb90b2c8382983e00fd7b4bc6f /src/Text/Pandoc/Readers | |
parent | 7754b7f2ddd8b188de66b4c0f0b4a87d2a2045c6 (diff) | |
download | pandoc-0a93acf91a116911f2c6c6add4f153cc80d15181.tar.gz |
Markdown reader: don't parse links or bracketed spans as citations.
Previously pandoc would parse
[link to (@a)](url)
as a citation; similarly
[(@a)]{#ident}
This is undesirable. One should be able to use example references
in citations, and even if `@a` is not defined as an example
reference, `[@a](url)` should be a link containing an author-in-text
citation rather than a normal citation followed by literal `(url)`.
Closes #7632.
Diffstat (limited to 'src/Text/Pandoc/Readers')
-rw-r--r-- | src/Text/Pandoc/Readers/Markdown.hs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index 42ca16c92..03becd144 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -327,6 +327,7 @@ referenceKey :: PandocMonad m => MarkdownParser m (F Blocks) referenceKey = try $ do pos <- getPosition skipNonindentSpaces + notFollowedBy (void cite) (_,raw) <- reference char ':' skipSpaces >> optional newline >> skipSpaces >> notFollowedBy (char '[') @@ -1781,8 +1782,8 @@ endline = try $ do -- a reference label for a link reference :: PandocMonad m => MarkdownParser m (F Inlines, Text) reference = do - guardDisabled Ext_footnotes <|> notFollowedBy' (string "[^") - guardDisabled Ext_citations <|> notFollowedBy' (string "[@") + -- guardDisabled Ext_footnotes <|> notFollowedBy' (string "[^") + -- guardDisabled Ext_citations <|> notFollowedBy' (string "[@") withRaw $ trimInlinesF <$> inlinesInBalancedBrackets parenthesizedChars :: PandocMonad m => MarkdownParser m Text @@ -2201,6 +2202,7 @@ normalCite = try $ do citations <- citeList spnl char ']' + notFollowedBy (oneOf "{([") -- not a link or a bracketed span return citations suffix :: PandocMonad m => MarkdownParser m (F Inlines) |