aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Readers/Man.hs20
-rw-r--r--test/man-reader.native5
2 files changed, 10 insertions, 15 deletions
diff --git a/src/Text/Pandoc/Readers/Man.hs b/src/Text/Pandoc/Readers/Man.hs
index 0898b3c6a..e4bf58081 100644
--- a/src/Text/Pandoc/Readers/Man.hs
+++ b/src/Text/Pandoc/Readers/Man.hs
@@ -396,18 +396,14 @@ mcomment = msatisfy isMComment where
parseTitle :: PandocMonad m => ManParser m Blocks
parseTitle = do
(MMacro _ args) <- mmacro "TH"
- if null args
- then return mempty
- else do
- let mantitle = fst $ head args
- modifyState (changeTitle mantitle)
- return $ header 1 $ text mantitle
- where
- changeTitle title pst =
- let meta = stateMeta pst
- metaUp = Meta $ M.insert "title" (MetaString title) (unMeta meta)
- in
- pst {stateMeta = metaUp}
+ let adjustMeta =
+ case map fst args of
+ (x:y:z:_) -> setMeta "title" x . setMeta "section" y . setMeta "date" z
+ [x,y] -> setMeta "title" x . setMeta "section" y
+ [x] -> setMeta "title" x
+ [] -> id
+ modifyState $ \st -> st{ stateMeta = adjustMeta $ stateMeta st }
+ return mempty
parseSkippedContent :: PandocMonad m => ManParser m Blocks
parseSkippedContent = mempty <$ (mcomment <|> memptyLine)
diff --git a/test/man-reader.native b/test/man-reader.native
index 2f45a60f3..811c7c5c8 100644
--- a/test/man-reader.native
+++ b/test/man-reader.native
@@ -1,6 +1,5 @@
-Pandoc (Meta {unMeta = fromList [("title",MetaString "Pandoc Man tests")]})
-[Header 1 ("",[],[]) [Str "Pandoc",Space,Str "Man",Space,Str "tests"]
-,Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc."]
+Pandoc (Meta {unMeta = fromList [("date",MetaString "Oct 17, 2018"),("section",MetaString ""),("title",MetaString "Pandoc Man tests")]})
+[Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc."]
,Para [Str "*",Space,Str "*",Space,Str "*",Space,Str "*",Space,Str "*"]
,Header 1 ("",[],[]) [Str "Headers"]
,Header 1 ("",[],[]) [Str "Level",Space,Str "1"]