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