Man reader: Handle optional argument in ME, UE macros.

Closes #4995.
This commit is contained in:
John MacFarlane
2018-10-22 23:56:02 -07:00
parent 261cbad0ef
commit bda1c0da81
3 changed files with 15 additions and 9 deletions
+10 -4
View File
@@ -765,20 +765,26 @@ parseDefinitionList = definitionList <$> many1 definitionListItem
parseLink :: PandocMonad m => [Arg] -> ManParser m Inlines
parseLink args = do
contents <- mconcat <$> many lineInl
mmacro "UE"
MMacro _ endargs _ <- mmacro "UE"
let url = case args of
[] -> ""
(x:_) -> linePartsToString x
return $ link url "" contents
return $ link url "" contents <>
case endargs of
[] -> mempty
(x:_) -> linePartsToInlines x
parseEmailLink :: PandocMonad m => [Arg] -> ManParser m Inlines
parseEmailLink args = do
contents <- mconcat <$> many lineInl
mmacro "ME"
MMacro _ endargs _ <- mmacro "ME"
let url = case args of
[] -> ""
(x:_) -> "mailto:" ++ linePartsToString x
return $ link url "" contents
return $ link url "" contents <>
case endargs of
[] -> mempty
(x:_) -> linePartsToInlines x
skipUnkownMacro :: PandocMonad m => ManParser m Blocks
skipUnkownMacro = do
+3 -3
View File
@@ -202,11 +202,11 @@ Minus: \-
.UR http://\:example.com
some random
site
.UE
.UE .
.PP
.MT me@example.com
my email address.
.ME
my email address
.ME .
.SH Macros
.de au
.B
+2 -2
View File
@@ -100,7 +100,7 @@ Pandoc (Meta {unMeta = fromList [("date",MetaInlines [Str "Oct",Space,Str "17,",
,Para [Str "Plus:",Space,Str "+"]
,Para [Str "Minus:",Space,Str "-"]
,Header 1 ("",[],[]) [Str "Links"]
,Para [Link ("",[],[]) [Str "some",Space,Str "randomsite"] ("http://example.com","")]
,Para [Link ("",[],[]) [Str "my",Space,Str "email",Space,Str "address."] ("mailto:me@example.com","")]
,Para [Link ("",[],[]) [Str "some",Space,Str "randomsite"] ("http://example.com",""),Str "."]
,Para [Link ("",[],[]) [Str "my",Space,Str "email",Space,Str "address"] ("mailto:me@example.com",""),Str "."]
,Header 1 ("",[],[]) [Str "Macros"]
,Para [Strong [Str "Me",Space,Str "Myself"],Space,Str "and",Space,Str "I.",Space,Emph [Str "The",Space,Str "author",Space,Str "is",Space,Str "John",Space,Str "Jones."],Space,Str "It's",Space,Str "The",Space,Strong [Str "Author"],Str "."]]