From 33a051d00d01974f3cdc3942e647bdd85979e96c Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Tue, 29 Jul 2014 20:39:59 -0700 Subject: [PATCH] Docx writer: Print subtitle from metadata if present. Use Subtitle style. See #1451. --- README | 6 +++--- data/reference.docx | Bin 8553 -> 8592 bytes src/Text/Pandoc/Writers/Docx.hs | 12 +++++++++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/README b/README index 40d638f92900..2dfd5bb3d9ec 100644 --- a/README +++ b/README @@ -541,9 +541,9 @@ Options affecting specific writers for a file `reference.docx` in the user data directory (see `--data-dir`). If this is not found either, sensible defaults will be used. The following styles are used by pandoc: [paragraph] - Normal, Compact, Title, Authors, Date, Abstract, Heading 1, Heading 2, - Heading 3, Heading 4, Heading 5, Block Quote, Definition Term, Definition, - Body Text, Table Caption, Image Caption; [character] Default + Normal, Compact, Title, Subtitle, Authors, Date, Abstract, Heading 1, + Heading 2, Heading 3, Heading 4, Heading 5, Block Quote, Definition Term, + Definition, Body Text, Table Caption, Image Caption; [character] Default Paragraph Font, Body Text Char, Verbatim Char, Footnote Ref, Link. diff --git a/data/reference.docx b/data/reference.docx index d61eadf99045b32e7c9bcd30999c3fcfa6be5c84..08059eb3c8cf27f54c27f5eabfe24b6d601c20bf 100644 GIT binary patch delta 1715 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 bs Just (MetaInlines ils) -> [Plain ils] _ -> [] + let subtitle' = case lookupMeta "subtitle" meta of + Just (MetaBlocks [Plain xs]) -> xs + Just (MetaBlocks [Para xs]) -> xs + Just (MetaInlines xs) -> xs + _ -> [] title <- withParaProp (pStyle "Title") $ blocksToOpenXML opts [Para tit | not (null tit)] - authors <- withParaProp (pStyle "Authors") $ blocksToOpenXML opts - [Para (intercalate [LineBreak] auths) | not (null auths)] + subtitle <- withParaProp (pStyle "Subtitle") $ blocksToOpenXML opts [Para subtitle' | not (null subtitle')] + authors <- withParaProp (pStyle "Author") $ blocksToOpenXML opts $ + map Para auths date <- withParaProp (pStyle "Date") $ blocksToOpenXML opts [Para dat | not (null dat)] abstract <- if null abstract' then return [] @@ -498,7 +504,7 @@ writeOpenXML opts (Pandoc meta blocks) = do let blocks' = bottomUp convertSpace $ blocks doc' <- blocksToOpenXML opts blocks' notes' <- reverse `fmap` gets stFootnotes - let meta' = title ++ authors ++ date ++ abstract + let meta' = title ++ subtitle ++ authors ++ date ++ abstract return (meta' ++ doc', notes') -- | Convert a list of Pandoc blocks to OpenXML.