git.iko.soy/typeable/pandoc
on master help sign in
Man reader: Handle optional argument in ME, UE macros.

Closes #4995.

commitbda1c0da81ac5f251ca7958fb0c20b4ea39eea70 authorJohn MacFarlane <jgm@berkeley.edu> dateMon 22 Oct 2018, 23:56 (8 years ago) parent261cbad
3 files changed+15−9
src/Text/Pandoc/Readers/Man.hs+10−4 test/man-reader.man+3−3 test/man-reader.native+2−2
src/Text/Pandoc/Readers/Man.hs+10−4
@@ -765,20 +765,26 @@ parseDefinitionList = definitionList <$> many1 definitionListItem
765765parseLink :: PandocMonad m => [Arg] -> ManParser m Inlines
766766parseLink args = do
767767 contents <- mconcat <$> many lineInl
768− mmacro "UE"
768+ MMacro _ endargs _ <- mmacro "UE"
769769 let url = case args of
770770 [] -> ""
771771 (x:_) -> linePartsToString x
772− return $ link url "" contents
772+ return $ link url "" contents <>
773+ case endargs of
774+ [] -> mempty
775+ (x:_) -> linePartsToInlines x
773776
774777parseEmailLink :: PandocMonad m => [Arg] -> ManParser m Inlines
775778parseEmailLink args = do
776779 contents <- mconcat <$> many lineInl
777− mmacro "ME"
780+ MMacro _ endargs _ <- mmacro "ME"
778781 let url = case args of
779782 [] -> ""
780783 (x:_) -> "mailto:" ++ linePartsToString x
781− return $ link url "" contents
784+ return $ link url "" contents <>
785+ case endargs of
786+ [] -> mempty
787+ (x:_) -> linePartsToInlines x
782788
783789skipUnkownMacro :: PandocMonad m => ManParser m Blocks
784790skipUnkownMacro = do
test/man-reader.man+3−3
@@ -202,11 +202,11 @@ Minus: \-
202202.UR http://\:example.com
203203some random
204204site
205−.UE
205+.UE .
206206.PP
207207.MT me@example.com
208−my email address.
209−.ME
208+my email address
209+.ME .
210210.SH Macros
211211.de au
212212.B
test/man-reader.native+2−2
@@ -100,7 +100,7 @@ Pandoc (Meta {unMeta = fromList [("date",MetaInlines [Str "Oct",Space,Str "17,",
100100,Para [Str "Plus:",Space,Str "+"]
101101,Para [Str "Minus:",Space,Str "-"]
102102,Header 1 ("",[],[]) [Str "Links"]
103−,Para [Link ("",[],[]) [Str "some",Space,Str "randomsite"] ("http://example.com","")]
104−,Para [Link ("",[],[]) [Str "my",Space,Str "email",Space,Str "address."] ("mailto:me@example.com","")]
103+,Para [Link ("",[],[]) [Str "some",Space,Str "randomsite"] ("http://example.com",""),Str "."]
104+,Para [Link ("",[],[]) [Str "my",Space,Str "email",Space,Str "address"] ("mailto:me@example.com",""),Str "."]
105105,Header 1 ("",[],[]) [Str "Macros"]
106106,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 "."]]