git.iko.soy/typeable/pandoc
on master help sign in
Markdown & RST writers: Omit 'references' from metadata block at top.

Otherwise we get references repeated in two places.

commit51dafe19c33bce9f3ec80f3bc99e25b04d539372 authorJohn MacFarlane <jgm@berkeley.edu> dateFri 2 Aug 2013, 17:16 (13 years ago) parent8c8e182
2 files changed+11−3
src/Text/Pandoc/Writers/Markdown.hs+8−2 src/Text/Pandoc/Writers/RST.hs+3−1
src/Text/Pandoc/Writers/Markdown.hs+8−2
@@ -32,6 +32,7 @@ Markdown: <http://daringfireball.net/projects/markdown/>
3232-}
3333module Text.Pandoc.Writers.Markdown (writeMarkdown, writePlain) where
3434import Text.Pandoc.Definition
35+import Text.Pandoc.Builder (deleteMeta)
3536import Text.Pandoc.Generic
3637import Text.Pandoc.Templates (renderTemplate')
3738import Text.Pandoc.Shared
@@ -132,6 +133,7 @@ plainTitleBlock tit auths dat =
132133 dat <> cr
133134
134135yamlMetadataBlock :: Value -> Doc
136+yamlMetadataBlock (Object h) | H.null h = empty
135137yamlMetadataBlock v = "---" $$ (jsonToYaml v) $$ "..."
136138
137139jsonToYaml :: Value -> Doc
@@ -168,6 +170,10 @@ pandocToMarkdown opts (Pandoc meta blocks) = do
168170 (fmap (render colwidth) . blockListToMarkdown opts)
169171 (fmap (render colwidth) . inlineListToMarkdown opts)
170172 meta
173+ topMeta <- metaToJSON opts{ writerVariables = [] }
174+ (fmap (render colwidth) . blockListToMarkdown opts)
175+ (fmap (render colwidth) . inlineListToMarkdown opts)
176+ (deleteMeta "references" meta)
171177 let title' = maybe empty text $ getField "title" metadata
172178 let authors' = maybe [] (map text) $ getField "author" metadata
173179 let date' = maybe empty text $ getField "date" metadata
@@ -175,11 +181,11 @@ pandocToMarkdown opts (Pandoc meta blocks) = do
175181 True | isPlain ->
176182 plainTitleBlock title' authors' date'
177183 | isEnabled Ext_yaml_metadata_block opts ->
178− yamlMetadataBlock metadata
184+ yamlMetadataBlock topMeta
179185 | isEnabled Ext_pandoc_title_block opts ->
180186 pandocTitleBlock title' authors' date'
181187 | isEnabled Ext_mmd_title_block opts ->
182− mmdTitleBlock metadata
188+ mmdTitleBlock topMeta
183189 | otherwise -> empty
184190 False -> empty
185191 let headerBlocks = filter isHeaderBlock blocks
src/Text/Pandoc/Writers/RST.hs+3−1
@@ -76,7 +76,9 @@ pandocToRST (Pandoc meta blocks) = do
7676 metadata <- metaToJSON opts
7777 (fmap (render colwidth) . blockListToRST)
7878 (fmap (trimr . render colwidth) . inlineListToRST)
79− $ deleteMeta "title" $ deleteMeta "subtitle" meta
79+ $ deleteMeta "references"
80+ $ deleteMeta "title"
81+ $ deleteMeta "subtitle" meta
8082 body <- blockListToRST blocks
8183 notes <- liftM (reverse . stNotes) get >>= notesToRST
8284 -- note that the notes may contain refs, so we do them first