aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2021-05-31 21:34:51 -0600
committerJohn MacFarlane <jgm@berkeley.edu>2021-05-31 21:34:51 -0600
commit62f46b3995425c9a3ec87cba0eb8a4d736adec07 (patch)
tree2f50499f158097e353f8790d99c350211d7f14ed /src/Text/Pandoc
parentbe144dd7de081d10bcc7a4d77b98c1b879f7995d (diff)
downloadpandoc-62f46b3995425c9a3ec87cba0eb8a4d736adec07.tar.gz
Fix regression with commonmark/gfm yaml metdata block parsing.
A regression in 2.14 led to the document body being omitted after YAML metadata in some cases. This is now fixed. Closes #7339.
Diffstat (limited to 'src/Text/Pandoc')
-rw-r--r--src/Text/Pandoc/Readers/CommonMark.hs10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/Text/Pandoc/Readers/CommonMark.hs b/src/Text/Pandoc/Readers/CommonMark.hs
index 228e65312..411d64278 100644
--- a/src/Text/Pandoc/Readers/CommonMark.hs
+++ b/src/Text/Pandoc/Readers/CommonMark.hs
@@ -30,7 +30,7 @@ import Text.Pandoc.Readers.Metadata (yamlMetaBlock)
import Control.Monad.Except
import Data.Functor.Identity (runIdentity)
import Data.Typeable
-import Text.Pandoc.Parsing (runParserT, getPosition,
+import Text.Pandoc.Parsing (runParserT, getInput,
runF, defaultParserState, option, many1, anyChar,
Sources(..), ToSources(..), ParserT, Future,
sourceName)
@@ -44,14 +44,14 @@ readCommonMark opts s
let sources = toSources s
let toks = concatMap sourceToToks (unSources sources)
res <- runParserT (do meta <- yamlMetaBlock (metaValueParser opts)
- pos <- getPosition
- return (meta, pos))
+ rest <- getInput
+ return (meta, rest))
defaultParserState "YAML metadata" (toSources s)
case res of
Left _ -> readCommonMarkBody opts sources toks
- Right (meta, pos) -> do
+ Right (meta, rest) -> do
-- strip off metadata section and parse body
- let body = dropWhile (\t -> tokPos t < pos) toks
+ let body = concatMap sourceToToks (unSources rest)
Pandoc _ bs <- readCommonMarkBody opts sources body
return $ Pandoc (runF meta defaultParserState) bs
| otherwise = do