From 2610de0159cb73948d8972a59bbdcbb8ebc6f468 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Sat, 26 Jul 2014 22:55:31 -0700 Subject: [PATCH] Docx writer: include abstract with Abstract style. Addresses docx part of #1451. --- README | 4 ++-- data/reference.docx | Bin 8473 -> 8553 bytes src/Text/Pandoc/Writers/Docx.hs | 9 ++++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/README b/README index edb490a57848..40d638f92900 100644 --- a/README +++ b/README @@ -541,8 +541,8 @@ 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, Heading 1, Heading 2, Heading 3, - Heading 4, Heading 5, Block Quote, Definition Term, Definition, + 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 Paragraph Font, Body Text Char, Verbatim Char, Footnote Ref, Link. diff --git a/data/reference.docx b/data/reference.docx index 7efc62458ea938076c1331748095ce255c3975e8..d61eadf99045b32e7c9bcd30999c3fcfa6be5c84 100644 GIT binary patch delta 1741 zcmV;;1~U1XLg_-Vpa*{d00;o;wfaOOgOyd^1pok6FaQ7#02}~!Z*pWWb98xZWpgfg zZERIk2>=6VlGIaZlGIamcnbgl1oZ&`00a~O008Y;U3c0z5Pi?D@bP<#F(jcmr9Fg{ z)0|Dy4@mngYym2^w%VPM^2E(oK2 zyZzd+ElfS;6FTqPH+TE*kB|vaz=*u^y!q)5!t! z?}S0ll1qPYA-PiwlL0uidokHG*YQ)UkX)VBn9=qyGU7uPLTA#U56>y@6^p zZgQwFC~KYyww;;B3*SqqtBo34k{sV(a)XszFfPoZ)8MaA)h;60C*TVx z%;sog}ohf^K4PTyq-}H7Q`BlV znD&1a(Yp)n^X30{#62N{UavsX)&I<}JUjSk-?=c#K<#!}AxZ;ncIBy!OstslT@NmBjSa zpUfl1B!v;5z#y7sp*^hFWnW*C_TX1B59Kr{%pZ8Zq(1a|mtK-2{QZA> zR1`4y4RH{BLdClw$)YXq#%=+g$;7Yi^lCk)OiC8+(k3VK#r8(kFqOHdwgb*W@r+QS zZaF8Ihm}%GeXQ7N-?_JL$F3}=d#(8!i+p{doit-s7E}X6C|}j%wlNrOx3Sy4xN?6CQBa7IS-uP0!yj~UJsGl=dIo49bjH~sQ^zAg$ca7yc=2Ij|SRIS@*cM9F z=+& zfh3y18z%aB>=6EMfPM0r+$4W-?0rXpk#>e0Lb~f9NPEMi&weIwn+Ycjr3X~frJeC|bRVK=7}2LbFzOq4U=5X!Teqlm delta 1668 zcmV-~27CGGLYYFapa*{f2nYbH9KuAUpNLt*1polwE&u=z0001YZ*pWWb98xZWpgfg zZEWpYU31zx5Pk2j@c6yO5R%YLNr#X!&D?%N+Gk-4P_ZRnN#vuy{;p)p*hV%4eABd( zr=UG+>FnxgCChp9_AUyY8_We^wC}cGd9H)0&jLc{efN4Ydf9(--=4pCb9*M_eTanv z?o^!dzPpezK5MmvzrYa^uUL#JU^B)eB%#UYEjF7GA73(m6=5n{9nU*yaU3EELx}~6 zg`4(vyGw7kj0Z7iJ{AJFMPbrkga~!dUpNjh448k3XJ{2lp)A_Qzwp$Sn2gc1lJR{!G-!^MSLN1<_i*lwN)5f`~tTd6!zUt zcM}_mYBWT2Zct2LUXSxUbEYYb+IJCuIUeM?c+<+|A#D^g1tY|^B@V_CfWCk0xry=m>I)}~6M4V3jd4WY zlOVt}=SLSLz&{q4UJD$o?O#V)U#Y=oD+<3mrza_WBYME(eGKEqh@&}2@gjX*QHC|6 zTH5gn`u?Q44Bae;6h+v~Qi_@60QzsjAZN*?w~*W^hQ$CJ+C5D+&9!c|3duED)r_`> zkr5xV2nK(XcIF1m5uGB)7-JbpQ4KE)S59YS?mCIjc@k2jrik|}CrM8XwS9o$=|CG5@ z|5Un*tzj_*J_{K)K^=9E2fcynRChU47?d?%1>1kl%;NjV(!z z?=QK*N-h`|cF`H|cc^L?k?a%jB@||Rv>N%FLVb^sIvus`;ijn5Zm_DXh}q|i&+Fe* zbV?G3$2pTy-9&>ZIE1)GM>|c*)$5?foy6hki_~)eR#0Bs`!im6N@B{1!mAO5*OVwm zj7bVJK7mQJ%ffg#+GSs16vk;<9`%9y3y6Q**Vhb{cf;u|_ZO2RC5ehllf=`>TpjJ3 zqb9O@?k$1T)0SweEz!F_erROrJiCLE5I z`5sgULnvR>^R_V=?M`Fgopj|GqPRNK+QTs}j}@ue@C)0$J#32#Nkb~UiqO11JKE!~ z&rV@`^;ZIFul_t--meOA)UO$*9BY3mVbAS}A9rG!YB&v?Zcx(%$YIf_6 zsOqCH6)Z#|JA39$701avt_pWehdJDR!?P`CNab;8GHx)JgOJR#$HXeeT=<;C^8bqw z_Q9n+IE@?{)E+O9_7LlXYH1yK29}k_ z#@6aWGU2mrIp4RsMY000yK z0tg5Is~o~arJsmd!vz2U-!1?E4*&oF0000000000005c?004Jya%3-aba`xLb1ryo zY?G27Dgla [] let auths = docAuthors meta let dat = docDate meta + let abstract' = case lookupMeta "abstract" meta of + Just (MetaBlocks bs) -> bs + Just (MetaInlines ils) -> [Plain ils] + Nothing -> [] title <- withParaProp (pStyle "Title") $ blocksToOpenXML opts [Para tit | not (null tit)] authors <- withParaProp (pStyle "Authors") $ blocksToOpenXML opts [Para (intercalate [LineBreak] auths) | not (null auths)] date <- withParaProp (pStyle "Date") $ blocksToOpenXML opts [Para dat | not (null dat)] + abstract <- if null abstract' + then return [] + else withParaProp (pStyle "Abstract") $ blocksToOpenXML opts abstract' let convertSpace (Str x : Space : Str y : xs) = Str (x ++ " " ++ y) : xs convertSpace (Str x : Str y : xs) = Str (x ++ y) : xs convertSpace xs = xs let blocks' = bottomUp convertSpace $ blocks doc' <- blocksToOpenXML opts blocks' notes' <- reverse `fmap` gets stFootnotes - let meta' = title ++ authors ++ date + let meta' = title ++ authors ++ date ++ abstract return (meta' ++ doc', notes') -- | Convert a list of Pandoc blocks to OpenXML.