git.iko.soy/typeable/pandoc
on master help sign in
OpenDocument writer: add custom-style "Abstract" in metadata abstract.
bde3d76John MacFarlane
src/Text/Pandoc/Writers/OpenDocument.hs+8−1
@@ -28,6 +28,7 @@ import Text.Pandoc.BCP47 (Lang (..), parseBCP47)
28import Text.Pandoc.Class.PandocMonad (PandocMonad, report, translateTerm,
28import Text.Pandoc.Class.PandocMonad (PandocMonad, report, translateTerm,
29 setTranslations, toLang)
29 setTranslations, toLang)
30import Text.Pandoc.Definition
30import Text.Pandoc.Definition
31+import qualified Text.Pandoc.Builder as B
31import Text.Pandoc.Logging
32import Text.Pandoc.Logging
32import Text.Pandoc.Options
33import Text.Pandoc.Options
33import Text.DocLayout
34import Text.DocLayout
@@ -223,12 +224,18 @@ writeOpenDocument opts (Pandoc meta blocks) = do
223 let colwidth = if writerWrapText opts == WrapAuto
224 let colwidth = if writerWrapText opts == WrapAuto
224 then Just $ writerColumns opts
225 then Just $ writerColumns opts
225 else Nothing
226 else Nothing
227+ let meta' = case lookupMetaBlocks "abstract" meta of
228+ [] -> meta
229+ xs -> B.setMeta "abstract"
230+ (B.divWith ("",[],[("custom-style","Abstract")])
231+ (B.fromList xs))
232+ meta
226 ((body, metadata),s) <- flip runStateT
233 ((body, metadata),s) <- flip runStateT
227 defaultWriterState $ do
234 defaultWriterState $ do
228 m <- metaToContext opts
235 m <- metaToContext opts
229 (blocksToOpenDocument opts)
236 (blocksToOpenDocument opts)
230 (fmap chomp . inlinesToOpenDocument opts)
237 (fmap chomp . inlinesToOpenDocument opts)
231− meta
238+ meta'
232 b <- blocksToOpenDocument opts blocks
239 b <- blocksToOpenDocument opts blocks
233 return (b, m)
240 return (b, m)
234 let styles = stTableStyles s ++ stParaStyles s ++ formulaStyles ++
241 let styles = stTableStyles s ++ stParaStyles s ++ formulaStyles ++