aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Writers/Powerpoint
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text/Pandoc/Writers/Powerpoint')
-rw-r--r--src/Text/Pandoc/Writers/Powerpoint/Presentation.hs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs b/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs
index e3d31d099..1680bc7ac 100644
--- a/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs
+++ b/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs
@@ -348,7 +348,15 @@ instance Default PicProps where
--------------------------------------------------
inlinesToParElems :: [Inline] -> Pres [ParaElem]
-inlinesToParElems ils = concatMapM inlineToParElems ils
+inlinesToParElems = concatMapM inlineToParElems . consolidateStrs
+ where
+ -- we combine Str + Space combinations, because this makes
+ -- the resulting ooxml much more compact, with fewer independent
+ -- text run elements
+ consolidateStrs [] = []
+ consolidateStrs (Str t : Space : ils) = consolidateStrs (Str (t <> " ") : ils)
+ consolidateStrs (Space : Str t : ils) = consolidateStrs (Str (" " <> t) : ils)
+ consolidateStrs (il : ils) = il : consolidateStrs ils
inlineToParElems :: Inline -> Pres [ParaElem]
inlineToParElems (Str s) = do