@@ -453,10 +453,9 @@ playTag = do
453 fmap (B.divWith ("", ["play"], [])) . snd <$> parseHtmlContent "play"
453 fmap (B.divWith ("", ["play"], [])) . snd <$> parseHtmlContent "play"
455verseLine :: PandocMonad m => MuseParser m (F Inlines)
455verseLine :: PandocMonad m => MuseParser m (F Inlines)
456−verseLine = do
456+verseLine = (<>)
457− indent <- (B.str <$> many1 ('\160' <$ char ' ')) <|> pure mempty
457+ <$> fmap pure (option mempty (B.str <$> many1 ('\160' <$ char ' ')))
458− rest <- manyTill inline' newline
458+ <*> fmap (trimInlinesF . mconcat) (manyTill inline' eol)
459− return $ trimInlinesF $ mconcat (pure indent : rest)
461-- | Parse @\<verse>@ tag.
460-- | Parse @\<verse>@ tag.
462verseTag :: PandocMonad m => MuseParser m (F Blocks)
461verseTag :: PandocMonad m => MuseParser m (F Blocks)
@@ -541,26 +540,16 @@ emacsNoteBlock = try $ do
541-- Verse markup
540-- Verse markup
544−lineVerseLine :: PandocMonad m => MuseParser m (F Inlines)
545−lineVerseLine = try $ do
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)
552−blanklineVerseLine :: PandocMonad m => MuseParser m (F Inlines)
553−blanklineVerseLine = try $ mempty
557-- | Parse a line block indicated by @\'>\'@ characters.
543-- | Parse a line block indicated by @\'>\'@ characters.
558lineBlock :: PandocMonad m => MuseParser m (F Blocks)
544lineBlock :: PandocMonad m => MuseParser m (F Blocks)
559lineBlock = try $ do
545lineBlock = try $ do
560 many spaceChar
546 many spaceChar
561 col <- sourceColumn <$> getPosition
547 col <- sourceColumn <$> getPosition
562− lns <- (blanklineVerseLine <|> lineVerseLine) `sepBy1'` try (indentWith (col - 1))
548+ lns <- (blankVerseLine <|> nonblankVerseLine) `sepBy1'` try (indentWith (col - 1))
563 return $ B.lineBlock <$> sequence lns
549 return $ B.lineBlock <$> sequence lns
551+ blankVerseLine = try $ mempty <$ char '>' <* blankline
552+ nonblankVerseLine = try (string "> ") *> verseLine
565-- *** List parsers
554-- *** List parsers