git.iko.soy/typeable/pandoc
on master help sign in
Org reader: respect `creator` export option
88313c0Albert Krewinkel
src/Text/Pandoc/Readers/Org/ExportSettings.hs+3−1
@@ -56,7 +56,9 @@ exportSetting = choice
56 , archivedTreeSetting "arch" (\val es -> es { exportArchivedTrees = val })
56 , archivedTreeSetting "arch" (\val es -> es { exportArchivedTrees = val })
57 , booleanSetting "author" (\val es -> es { exportWithAuthor = val })
57 , booleanSetting "author" (\val es -> es { exportWithAuthor = val })
58 , ignoredSetting "c"
58 , ignoredSetting "c"
59− , ignoredSetting "creator"
59+ -- org-mode allows the special value `comment` for creator, which we'll
60+ -- interpret as true as it doesn't make sense in the context of Pandoc.
61+ , booleanSetting "creator" (\val es -> es { exportWithCreator = val })
60 , complementableListSetting "d" (\val es -> es { exportDrawers = val })
62 , complementableListSetting "d" (\val es -> es { exportDrawers = val })
61 , ignoredSetting "date"
63 , ignoredSetting "date"
62 , ignoredSetting "e"
64 , ignoredSetting "e"
src/Text/Pandoc/Readers/Org/Meta.hs+3−4
@@ -54,10 +54,9 @@ metaExport :: OrgParser (F Meta)
54metaExport = do
54metaExport = do
55 st <- getState
55 st <- getState
56 let settings = orgStateExportSettings st
56 let settings = orgStateExportSettings st
57− let withAuthor = exportWithAuthor settings
58− let withEmail = exportWithEmail settings
59− return $ (if withAuthor then id else removeMeta "author")
57+ return $ (if exportWithAuthor settings then id else removeMeta "author")
58+ . (if exportWithCreator settings then id else removeMeta "creator")
60− . (if withEmail then id else removeMeta "email")
59+ . (if exportWithEmail settings then id else removeMeta "email")
61 <$> orgStateMeta st
60 <$> orgStateMeta st
62
61
63removeMeta :: String -> Meta -> Meta
62removeMeta :: String -> Meta -> Meta
src/Text/Pandoc/Readers/Org/ParserState.hs+2
@@ -164,6 +164,7 @@ data ExportSettings = ExportSettings
164 , exportSpecialStrings :: Bool -- ^ Parse ellipses and dashes smartly
164 , exportSpecialStrings :: Bool -- ^ Parse ellipses and dashes smartly
165 , exportSubSuperscripts :: Bool -- ^ TeX-like syntax for sub- and superscripts
165 , exportSubSuperscripts :: Bool -- ^ TeX-like syntax for sub- and superscripts
166 , exportWithAuthor :: Bool -- ^ Include author in final meta-data
166 , exportWithAuthor :: Bool -- ^ Include author in final meta-data
167+ , exportWithCreator :: Bool -- ^ Include creator in final meta-data
167 , exportWithEmail :: Bool -- ^ Include email in final meta-data
168 , exportWithEmail :: Bool -- ^ Include email in final meta-data
168 }
169 }
169
170
@@ -180,6 +181,7 @@ defaultExportSettings = ExportSettings
180 , exportSpecialStrings = True
181 , exportSpecialStrings = True
181 , exportSubSuperscripts = True
182 , exportSubSuperscripts = True
182 , exportWithAuthor = True
183 , exportWithAuthor = True
184+ , exportWithCreator = True
183 , exportWithEmail = True
185 , exportWithEmail = True
184 }
186 }
185
187
tests/Tests/Readers/Org.hs+6
@@ -675,6 +675,12 @@ tests =
675 ] =?>
675 ] =?>
676 Pandoc nullMeta mempty
676 Pandoc nullMeta mempty
677
677
678+ , "disable creator export" =:
679+ unlines [ "#+OPTIONS: creator:nil"
680+ , "#+creator: The Architect"
681+ ] =?>
682+ Pandoc nullMeta mempty
683+
678 , "disable email export" =:
684 , "disable email export" =:
679 unlines [ "#+OPTIONS: email:nil"
685 unlines [ "#+OPTIONS: email:nil"
680 , "#+email: no-mail-please@example.com"
686 , "#+email: no-mail-please@example.com"