@@ -130,8 +130,7 @@ instance HasLogMessages MuseState where
130130parseMuse :: PandocMonad m => MuseParser m Pandoc
131131parseMuse = do
132132 many directive
133− blocks <- mconcat <$> many parseBlock
134− eof
133+ blocks <- parseBlocks
135134 st <- getState
136135 let doc = runF (do Pandoc _ bs <- B.doc <$> blocks
137136 meta <- museMeta st
@@ -250,6 +249,19 @@ directive = do
250249-- block parsers
251250--
252251
252+parseBlocks :: PandocMonad m
253+ => MuseParser m (F Blocks)
254+parseBlocks =
255+ try (mempty <$ eof) <|>
256+ try blockStart <|>
257+ try paraStart
258+ where
259+ blockStart = do first <- blockElements
260+ rest <- parseBlocks
261+ return $ first B.<> rest
262+ paraStart = do (first, rest) <- paraUntil ((mempty <$ eof) <|> (blankline >> blockStart))
263+ return $ first B.<> rest
264+
253265parseBlock :: PandocMonad m => MuseParser m (F Blocks)
254266parseBlock = do
255267 res <- blockElements <|> para