From 2c0e989f9df788b7f168159fd99d5c3e1a78aa85 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Mon, 7 Aug 2017 21:00:57 -0700 Subject: [PATCH] Markdown reader: fixed spurious parsing as citation as reference def. We now disallow reference keys starting with `@` if the `citations` extension is enabled. Closes #3840. --- src/Text/Pandoc/Readers/Markdown.hs | 6 ++++-- test/command/3840.md | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 test/command/3840.md diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index d7e59c7fd..1bcf1cfae 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -1695,8 +1695,10 @@ endline = try $ do -- a reference label for a link reference :: PandocMonad m => MarkdownParser m (F Inlines, String) -reference = do notFollowedBy' (string "[^") -- footnote reference - withRaw $ trimInlinesF <$> inlinesInBalancedBrackets +reference = do + guardDisabled Ext_footnotes <|> notFollowedBy' (string "[^") + guardDisabled Ext_citations <|> notFollowedBy' (string "[@") + withRaw $ trimInlinesF <$> inlinesInBalancedBrackets parenthesizedChars :: PandocMonad m => MarkdownParser m [Char] parenthesizedChars = do diff --git a/test/command/3840.md b/test/command/3840.md new file mode 100644 index 000000000..ceb1d1e51 --- /dev/null +++ b/test/command/3840.md @@ -0,0 +1,15 @@ +``` +% pandoc +[@Alhazen1572-qk, V.9]: "competentius est" +^D +

[@Alhazen1572-qk, V.9]: “competentius est”

+``` + +``` +% pandoc -f markdown-citations +[@Alhazen1572-qk, V.9]: "competentius est" + +[@Alhazen1572-qk, V.9] +^D +

@Alhazen1572-qk, V.9

+```