@@ -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 )
382387amuseHeadingUntil 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