@@ -453,10 +453,9 @@ playTag = do
453453 fmap (B.divWith ("", ["play"], [])) . snd <$> parseHtmlContent "play"
454454
455455verseLine :: PandocMonad m => MuseParser m (F Inlines)
456−verseLine = do
457− indent <- (B.str <$> many1 ('\160' <$ char ' ')) <|> pure mempty
458− rest <- manyTill inline' newline
459− return $ trimInlinesF $ mconcat (pure indent : rest)
456+verseLine = (<>)
457+ <$> fmap pure (option mempty (B.str <$> many1 ('\160' <$ char ' ')))
458+ <*> fmap (trimInlinesF . mconcat) (manyTill inline' eol)
460459
461460-- | Parse @\<verse>@ tag.
462461verseTag :: PandocMonad m => MuseParser m (F Blocks)
@@ -541,26 +540,16 @@ emacsNoteBlock = try $ do
541540-- Verse markup
542541--
543542
544−lineVerseLine :: PandocMonad m => MuseParser m (F Inlines)
545−lineVerseLine = try $ do
546− string "> "
547− indent <- many ('\160' <$ char ' ')
548− let indentEl = if null indent then mempty else B.str indent
549− rest <- manyTill inline' eol
550− return $ trimInlinesF $ mconcat (pure indentEl : rest)
551−
552−blanklineVerseLine :: PandocMonad m => MuseParser m (F Inlines)
553−blanklineVerseLine = try $ mempty
554− <$ char '>'
555− <* blankline
556−
557543-- | Parse a line block indicated by @\'>\'@ characters.
558544lineBlock :: PandocMonad m => MuseParser m (F Blocks)
559545lineBlock = try $ do
560546 many spaceChar
561547 col <- sourceColumn <$> getPosition
562− lns <- (blanklineVerseLine <|> lineVerseLine) `sepBy1'` try (indentWith (col - 1))
548+ lns <- (blankVerseLine <|> nonblankVerseLine) `sepBy1'` try (indentWith (col - 1))
563549 return $ B.lineBlock <$> sequence lns
550+ where
551+ blankVerseLine = try $ mempty <$ char '>' <* blankline
552+ nonblankVerseLine = try (string "> ") *> verseLine
564553
565554-- *** List parsers
566555