diff options
author | John MacFarlane <jgm@berkeley.edu> | 2019-11-13 21:18:39 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2019-11-13 21:19:06 -0800 |
commit | 3982b23428f9ef8db82c7e360d9f2b896b531c86 (patch) | |
tree | 9f1ba614bc26072d195db4fa4714bc154ef1dabd /src | |
parent | cbcaf1917470acf28099c5698fd6feec7c45c470 (diff) | |
download | pandoc-3982b23428f9ef8db82c7e360d9f2b896b531c86.tar.gz |
Markdown reader: don't parse footnote body unless extension enabled.
Diffstat (limited to 'src')
-rw-r--r-- | src/Text/Pandoc/Readers/Markdown.hs | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index f8349ea99..911105045 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -460,24 +460,26 @@ rawLines = do return $ T.unlines (first:rest) noteBlock :: PandocMonad m => MarkdownParser m (F Blocks) -noteBlock = try $ do - pos <- getPosition - skipNonindentSpaces - ref <- noteMarker - char ':' - optional blankline - optional indentSpaces - first <- rawLines - rest <- many $ try $ blanklines >> indentSpaces >> rawLines - let raw = T.unlines (first:rest) <> "\n" - optional blanklines - parsed <- parseFromString' parseBlocks raw - oldnotes <- stateNotes' <$> getState - case M.lookup ref oldnotes of - Just _ -> logMessage $ DuplicateNoteReference ref pos - Nothing -> return () - updateState $ \s -> s { stateNotes' = M.insert ref (pos, parsed) oldnotes } - return mempty +noteBlock = do + guardEnabled Ext_footnotes + do pos <- getPosition + skipNonindentSpaces + ref <- noteMarker + char ':' + optional blankline + optional indentSpaces + first <- rawLines + rest <- many $ try $ blanklines >> indentSpaces >> rawLines + let raw = T.unlines (first:rest) <> "\n" + optional blanklines + parsed <- parseFromString' parseBlocks raw + oldnotes <- stateNotes' <$> getState + case M.lookup ref oldnotes of + Just _ -> logMessage $ DuplicateNoteReference ref pos + Nothing -> return () + updateState $ \s -> s { stateNotes' = + M.insert ref (pos, parsed) oldnotes } + return mempty -- -- parsing blocks |