aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2019-11-13 21:18:39 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2019-11-13 21:19:06 -0800
commit3982b23428f9ef8db82c7e360d9f2b896b531c86 (patch)
tree9f1ba614bc26072d195db4fa4714bc154ef1dabd /src
parentcbcaf1917470acf28099c5698fd6feec7c45c470 (diff)
downloadpandoc-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.hs38
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