@@ -462,16 +462,19 @@ verseLine = do
462462 rest <- manyTill (choice inlineList) newline
463463 return $ trimInlinesF $ mconcat (pure indent : rest)
464464
465−verseLines :: PandocMonad m => MuseParser m (F Blocks)
466−verseLines = do
467− lns <- many verseLine
468− return $ B.lineBlock <$> sequence lns
469−
470465-- | Parse @\<verse>@ tag.
471466verseTag :: PandocMonad m => MuseParser m (F Blocks)
472−verseTag = do
473− (_, content) <- htmlBlock "verse"
474− parseFromString verseLines (intercalate "\n" $ dropSpacePrefix $ splitOn "\n" $ lchop content)
467+verseTag = try $ do
468+ many spaceChar
469+ pos <- getPosition
470+ (TagOpen _ _, _) <- htmlTag (~== TagOpen "verse" [])
471+ manyTill spaceChar eol
472+ let indent = count (sourceColumn pos - 1) spaceChar
473+ content <- sequence <$> manyTill (indent >> verseLine) (try $ indent >> endtag)
474+ manyTill spaceChar eol
475+ return $ B.lineBlock <$> content
476+ where
477+ endtag = void $ htmlTag (~== TagClose "verse")
475478
476479-- | Parse @\<comment>@ tag.
477480commentTag :: PandocMonad m => MuseParser m (F Blocks)