@@ -497,9 +497,8 @@ parsePara = para . trimInlines <$> parseInlines
497497
498498parseInlines :: PandocMonad m => ManParser m Inlines
499499parseInlines = do
500− inls <- many1 (lineInl <|> comment)
501− let withspaces = intersperse B.space inls
502− return $ mconcat withspaces
500+ inls <- many1 (lineInl <|> comment <|> parseLink <|> parseEmailLink)
501+ return $ mconcat $ intersperse B.space inls
503502
504503lineInl :: PandocMonad m => ManParser m Inlines
505504lineInl = do
@@ -605,6 +604,26 @@ definitionListItem = try $ do
605604parseDefinitionList :: PandocMonad m => ManParser m Blocks
606605parseDefinitionList = definitionList <$> many1 definitionListItem
607606
607+parseLink :: PandocMonad m => ManParser m Inlines
608+parseLink = try $ do
609+ MMacro _ args <- mmacro "UR"
610+ contents <- mconcat <$> many1 (lineInl <|> comment)
611+ mmacro "UE"
612+ let url = case args of
613+ [] -> ""
614+ (x:_) -> linePartsToString x
615+ return $ link url "" contents
616+
617+parseEmailLink :: PandocMonad m => ManParser m Inlines
618+parseEmailLink = do
619+ MMacro _ args <- mmacro "MT"
620+ contents <- mconcat <$> many1 (lineInl <|> comment)
621+ mmacro "ME"
622+ let url = case args of
623+ [] -> ""
624+ (x:_) -> "mailto:" ++ linePartsToString x
625+ return $ link url "" contents
626+
608627parseMacroDef :: PandocMonad m => ManParser m Blocks
609628parseMacroDef = do
610629 MMacro _ args <- mmacro "de"