git.iko.soy/typeable/pandoc
on master help sign in
Muse reader: use getIndent more for code cleanup
37cc977Alexander Krotov
src/Text/Pandoc/Readers/Muse.hs+4−7
@@ -458,12 +458,10 @@ verseLine = (<>)
458-- | Parse @\<verse>@ tag.
458-- | Parse @\<verse>@ tag.
459verseTag :: PandocMonad m => MuseParser m (F Blocks)
459verseTag :: PandocMonad m => MuseParser m (F Blocks)
460verseTag = try $ do
460verseTag = try $ do
461− many spaceChar
461+ indent <- getIndent
462− pos <- getPosition
463 openTag "verse"
462 openTag "verse"
464 manyTill spaceChar eol
463 manyTill spaceChar eol
465− let indent = count (sourceColumn pos - 1) spaceChar
466− content <- sequence <$> manyTill (indent *> verseLine) (try $ indent *> closeTag "verse")
464+ content <- sequence <$> manyTill (count indent spaceChar *> verseLine) (try $ count indent spaceChar *> closeTag "verse")
467 manyTill spaceChar eol
465 manyTill spaceChar eol
468 return $ B.lineBlock <$> content
466 return $ B.lineBlock <$> content
469
467
@@ -541,9 +539,8 @@ emacsNoteBlock = try $ do
541-- | Parse a line block indicated by @\'>\'@ characters.
539-- | Parse a line block indicated by @\'>\'@ characters.
542lineBlock :: PandocMonad m => MuseParser m (F Blocks)
540lineBlock :: PandocMonad m => MuseParser m (F Blocks)
543lineBlock = try $ do
541lineBlock = try $ do
544− many spaceChar
542+ indent <- getIndent
545− col <- sourceColumn <$> getPosition
546− lns <- (blankVerseLine <|> nonblankVerseLine) `sepBy1'` try (indentWith (col - 1))
543+ lns <- (blankVerseLine <|> nonblankVerseLine) `sepBy1'` try (indentWith indent)
547 return $ B.lineBlock <$> sequence lns
544 return $ B.lineBlock <$> sequence lns
548 where
545 where
549 blankVerseLine = try $ mempty <$ char '>' <* blankline
546 blankVerseLine = try $ mempty <$ char '>' <* blankline