git.iko.soy/typeable/pandoc
on master help sign in
Muse reader: allow empty headers
8df5995Alexander Krotov
src/Text/Pandoc/Readers/Muse.hs+1−7
@@ -172,12 +172,6 @@ getIndent :: PandocMonad m
172 => MuseParser m Int
172 => MuseParser m Int
173getIndent = subtract 1 . sourceColumn <$ many spaceChar <*> getPosition
173getIndent = subtract 1 . sourceColumn <$ many spaceChar <*> getPosition
174
174
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−
181-- ** HTML parsers
175-- ** HTML parsers
182
176
183openTag :: PandocMonad m => String -> MuseParser m [(String, String)]
177openTag :: PandocMonad m => String -> MuseParser m [(String, String)]
@@ -462,7 +456,7 @@ paraContentsUntil :: PandocMonad m
462 => MuseParser m a -- ^ Terminator parser
456 => MuseParser m a -- ^ Terminator parser
463 -> MuseParser m (F Inlines, a)
457 -> MuseParser m (F Inlines, a)
464paraContentsUntil end = first (trimInlinesF . mconcat)
458paraContentsUntil 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))
466
460
467-- | Parse a paragraph.
461-- | Parse a paragraph.
468paraUntil :: PandocMonad m
462paraUntil :: PandocMonad m
test/Tests/Readers/Muse.hs+7
@@ -650,6 +650,13 @@ tests =
650 T.unlines [ "* Foo"
650 T.unlines [ "* Foo"
651 , "bar"
651 , "bar"
652 ] =?> header 1 "Foo\nbar"
652 ] =?> 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")
653 , test (purely $ readMuse def { readerExtensions = extensionsFromList [Ext_amuse, Ext_auto_identifiers]})
660 , test (purely $ readMuse def { readerExtensions = extensionsFromList [Ext_amuse, Ext_auto_identifiers]})
654 "Auto identifiers"
661 "Auto identifiers"
655 (T.unlines [ "* foo"
662 (T.unlines [ "* foo"