git.iko.soy/typeable/pandoc
on master help sign in
Muse reader: allow empty headers

Previously empty headers caused parser to terminate without parsing the rest of the document.

commit8df59952bf54321a0e24a1e9104324c7ae9c153f authorAlexander Krotov <ilabdsf@gmail.com> dateSun 21 Oct 2018, 06:42 (8 years ago) parentf202279
2 files changed+8−7
src/Text/Pandoc/Readers/Muse.hs+1−7 test/Tests/Readers/Muse.hs+7
src/Text/Pandoc/Readers/Muse.hs+1−7
@@ -172,12 +172,6 @@ getIndent :: PandocMonad m
172172 => MuseParser m Int
173173getIndent = subtract 1 . sourceColumn <$ many spaceChar <*> getPosition
174174
175−someUntil :: (Stream s m t)
176− => ParserT s u m a
177− -> ParserT s u m b
178− -> ParserT s u m ([a], b)
179−someUntil p end = first <$> ((:) <$> p) <*> manyUntil p end
180−
181175-- ** HTML parsers
182176
183177openTag :: PandocMonad m => String -> MuseParser m [(String, String)]
@@ -462,7 +456,7 @@ paraContentsUntil :: PandocMonad m
462456 => MuseParser m a -- ^ Terminator parser
463457 -> MuseParser m (F Inlines, a)
464458paraContentsUntil end = first (trimInlinesF . mconcat)
465− <$> someUntil inline (try (manyTill spaceChar eol *> local (\s -> s { museInPara = True}) end))
459+ <$> manyUntil inline (try (manyTill spaceChar eol *> local (\s -> s { museInPara = True}) end))
466460
467461-- | Parse a paragraph.
468462paraUntil :: PandocMonad m
test/Tests/Readers/Muse.hs+7
@@ -650,6 +650,13 @@ tests =
650650 T.unlines [ "* Foo"
651651 , "bar"
652652 ] =?> header 1 "Foo\nbar"
653+ , "Empty header" =:
654+ T.unlines [ "Foo"
655+ , ""
656+ , "* "
657+ , ""
658+ , "bar"
659+ ] =?> para (text "Foo") <> header 1 "" <> para (text "bar")
653660 , test (purely $ readMuse def { readerExtensions = extensionsFromList [Ext_amuse, Ext_auto_identifiers]})
654661 "Auto identifiers"
655662 (T.unlines [ "* foo"