@@ -130,8 +130,7 @@ instance HasLogMessages MuseState where
130parseMuse :: PandocMonad m => MuseParser m Pandoc
130parseMuse :: PandocMonad m => MuseParser m Pandoc
131parseMuse = do
131parseMuse = do
132 many directive
132 many directive
133− blocks <- mconcat <$> many parseBlock
133+ blocks <- parseBlocks
135 st <- getState
134 st <- getState
136 let doc = runF (do Pandoc _ bs <- B.doc <$> blocks
135 let doc = runF (do Pandoc _ bs <- B.doc <$> blocks
137 meta <- museMeta st
136 meta <- museMeta st
@@ -250,6 +249,19 @@ directive = do
250-- block parsers
249-- block parsers
252+parseBlocks :: PandocMonad m
253+ => MuseParser m (F Blocks)
255+ try (mempty <$ eof) <|>
259+ blockStart = do first <- blockElements
261+ return $ first B.<> rest
262+ paraStart = do (first, rest) <- paraUntil ((mempty <$ eof) <|> (blankline >> blockStart))
263+ return $ first B.<> rest
253parseBlock :: PandocMonad m => MuseParser m (F Blocks)
265parseBlock :: PandocMonad m => MuseParser m (F Blocks)
254parseBlock = do
266parseBlock = do
255 res <- blockElements <|> para
267 res <- blockElements <|> para