Skip to content

Commit 1630a73

Browse files
author
Alexander Krotov
committed
Muse reader: move duplicate code into "headingStart" function
1 parent afd3f21 commit 1630a73

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

src/Text/Pandoc/Readers/Muse.hs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -361,15 +361,20 @@ separator = try $ do
361361
eol
362362
return $ return B.horizontalRule
363363

364-
-- | Parse a single-line heading.
365-
emacsHeading :: PandocMonad m => MuseParser m (F Blocks)
366-
emacsHeading = try $ do
367-
guardDisabled Ext_amuse
364+
headingStart :: PandocMonad m => MuseParser m (String, Int)
365+
headingStart = do
368366
anchorId <- option "" $ try (parseAnchor <* manyTill spaceChar eol)
369367
getPosition >>= \pos -> guard (sourceColumn pos == 1)
370368
level <- fmap length $ many1 $ char '*'
371369
guard $ level <= 5
372370
spaceChar
371+
return (anchorId, level)
372+
373+
-- | Parse a single-line heading.
374+
emacsHeading :: PandocMonad m => MuseParser m (F Blocks)
375+
emacsHeading = try $ do
376+
guardDisabled Ext_amuse
377+
(anchorId, level) <- headingStart
373378
content <- trimInlinesF . mconcat <$> manyTill inline eol
374379
attr <- registerHeader (anchorId, [], []) (runF content def)
375380
return $ B.headerWith attr level <$> content
@@ -381,11 +386,7 @@ amuseHeadingUntil :: PandocMonad m
381386
-> MuseParser m (F Blocks, a)
382387
amuseHeadingUntil end = try $ do
383388
guardEnabled Ext_amuse
384-
anchorId <- option "" $ try (parseAnchor <* manyTill spaceChar eol)
385-
getPosition >>= \pos -> guard (sourceColumn pos == 1)
386-
level <- fmap length $ many1 $ char '*'
387-
guard $ level <= 5
388-
spaceChar
389+
(anchorId, level) <- headingStart
389390
(content, e) <- paraContentsUntil end
390391
attr <- registerHeader (anchorId, [], []) (runF content def)
391392
return (B.headerWith attr level <$> content, e)

0 commit comments

Comments
 (0)