diff --git a/MANUAL.txt b/MANUAL.txt index d3be3b69cc85..b56121d95e15 100644 --- a/MANUAL.txt +++ b/MANUAL.txt @@ -5509,9 +5509,9 @@ Pandoc's Markdown allows footnotes, using the following syntax: isn't indented. The identifiers in footnote references may not contain spaces, tabs, -or newlines. These identifiers are used only to correlate the -footnote reference with the note itself; in the output, footnotes -will be numbered sequentially. +newlines, or the characters `^`, `[`, or `]`. These identifiers +are used only to correlate the footnote reference with the note +itself; in the output, footnotes will be numbered sequentially. The footnotes themselves need not be placed at the end of the document. They may appear anywhere except inside other block elements diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index 731ca07a665d..402893897da5 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -142,12 +142,6 @@ isHruleChar _ = False setextHChars :: [Char] setextHChars = "=-" -isBlank :: Char -> Bool -isBlank ' ' = True -isBlank '\t' = True -isBlank '\n' = True -isBlank _ = False - -- -- auxiliary functions -- @@ -416,7 +410,9 @@ abbrevKey = do return $ return mempty noteMarker :: PandocMonad m => MarkdownParser m Text -noteMarker = string "[^" >> many1TillChar (satisfy $ not . isBlank) (char ']') +noteMarker = string "[^" >> + many1TillChar (satisfy (`notElem` ['\r','\n','\t',' ','^','[',']'])) + (char ']') rawLine :: PandocMonad m => MarkdownParser m Text rawLine = try $ do @@ -1815,7 +1811,7 @@ 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_footnotes <|> notFollowedBy' noteMarker withRaw $ trimInlinesF <$> inlinesInBalancedBrackets parenthesizedChars :: PandocMonad m => MarkdownParser m Text diff --git a/test/command/8981.md b/test/command/8981.md new file mode 100644 index 000000000000..00ba6d23176c --- /dev/null +++ b/test/command/8981.md @@ -0,0 +1,6 @@ +``` +% pandoc --wrap=none +consectetur [^\[link\]^](#ref "Title") +^D +

consectetur [link]

+```