Man reader: minor refactoring.

This commit is contained in:
John MacFarlane 2018-10-20 07:48:20 -07:00
parent 11e681edac
commit faa35bb014

View file

@ -510,7 +510,7 @@ type ListBuilder = [Blocks] -> Blocks
parseList :: PandocMonad m => ManParser m Blocks parseList :: PandocMonad m => ManParser m Blocks
parseList = try $ do parseList = try $ do
xx <- many1 paras xx <- many1 items
let bls = map snd xx let bls = map snd xx
let bldr = fst $ head xx let bldr = fst $ head xx
return $ bldr bls return $ bldr bls
@ -528,20 +528,20 @@ parseList = try $ do
Left _ -> bulletList Left _ -> bulletList
listKind _ = bulletList listKind _ = bulletList
paras :: PandocMonad m => ManParser m (ListBuilder, Blocks) items :: PandocMonad m => ManParser m (ListBuilder, Blocks)
paras = do items = do
(MMacro _ args) <- mmacro "IP" (MMacro _ args) <- mmacro "IP"
let lbuilder = listKind args let lbuilder = listKind args
inls <- parseInlines inls <- parseInlines
continuations <- mconcat <$> many continuation continuations <- mconcat <$> many continuation
return $ (lbuilder, para inls <> continuations) return $ (lbuilder, para inls <> continuations)
continuation :: PandocMonad m => ManParser m Blocks continuation :: PandocMonad m => ManParser m Blocks
continuation = do continuation = do
mmacro "RS" mmacro "RS"
bs <- mconcat <$> many (notFollowedBy (mmacro "RE") >> parseBlock) bs <- mconcat <$> many (notFollowedBy (mmacro "RE") >> parseBlock)
mmacro "RE" mmacro "RE"
return bs return bs
-- In case of weird man file it will be parsed succesfully -- In case of weird man file it will be parsed succesfully
parseSkipMacro :: PandocMonad m => ManParser m Blocks parseSkipMacro :: PandocMonad m => ManParser m Blocks