git.iko.soy/typeable/pandoc
on master help sign in
Muse reader: allow list items to be empty
75e2a11Alexander Krotov
src/Text/Pandoc/Readers/Muse.hs+2−2
@@ -412,7 +412,7 @@ listStart marker = try $ do
412 st <- stateParserContext <$> getState
412 st <- stateParserContext <$> getState
413 getPosition >>= \pos -> guard (st == ListItemState || sourceColumn pos /= 1)
413 getPosition >>= \pos -> guard (st == ListItemState || sourceColumn pos /= 1)
414 markerLength <- marker
414 markerLength <- marker
415− many1 spaceChar
415+ void (many1 spaceChar) <|> eol
416 return $ preWhitespace + markerLength + 1
416 return $ preWhitespace + markerLength + 1
417
417
418listItemContents :: PandocMonad m => Int -> MuseParser m (F Blocks)
418listItemContents :: PandocMonad m => Int -> MuseParser m (F Blocks)
@@ -448,7 +448,7 @@ orderedListStart style delim = listStart (snd <$> withHorizDisplacement (ordered
448
448
449orderedList :: PandocMonad m => MuseParser m (F Blocks)
449orderedList :: PandocMonad m => MuseParser m (F Blocks)
450orderedList = try $ do
450orderedList = try $ do
451− p@(_, style, delim) <- lookAhead (many spaceChar *> anyOrderedListMarker <* spaceChar)
451+ p@(_, style, delim) <- lookAhead (many spaceChar *> anyOrderedListMarker <* (eol <|> void spaceChar))
452 guard $ style `elem` [Decimal, LowerAlpha, UpperAlpha, LowerRoman, UpperRoman]
452 guard $ style `elem` [Decimal, LowerAlpha, UpperAlpha, LowerRoman, UpperRoman]
453 guard $ delim == Period
453 guard $ delim == Period
454 items <- sequence <$> many1 (listItem $ orderedListStart style delim)
454 items <- sequence <$> many1 (listItem $ orderedListStart style delim)
test/Tests/Readers/Muse.hs+21
@@ -566,6 +566,27 @@ tests =
566 , para "Item2"
566 , para "Item2"
567 , para "Item3"
567 , para "Item3"
568 ]
568 ]
569+ , "Bullet list with empty items" =:
570+ T.unlines
571+ [ " -"
572+ , ""
573+ , " - Item2"
574+ ] =?>
575+ bulletList [ mempty
576+ , para "Item2"
577+ ]
578+ , "Ordered list with empty items" =:
579+ T.unlines
580+ [ " 1."
581+ , ""
582+ , " 2."
583+ , ""
584+ , " 3. Item3"
585+ ] =?>
586+ orderedListWith (1, Decimal, Period) [ mempty
587+ , mempty
588+ , para "Item3"
589+ ]
569 , testGroup "Nested lists"
590 , testGroup "Nested lists"
570 [ "Nested list" =:
591 [ "Nested list" =:
571 T.unlines
592 T.unlines