aboutsummaryrefslogtreecommitdiff
path: root/src/Text
diff options
context:
space:
mode:
authorTuong Nguyen Manh <[email protected]>2025-09-07 22:45:51 +0200
committerJohn MacFarlane <[email protected]>2025-09-08 09:22:56 +0200
commit6ba552232a3637f2251c7fc97dac013467a21187 (patch)
tree5bc3e93b5e7e37329cc5f0d02948bb23b773a4c1 /src/Text
parent347fbb1ab28ace21c988aa2b0cc6285feb64795f (diff)
pptx writer: Handle single column
Add an additional guard for a single column to be able to process it.
Diffstat (limited to 'src/Text')
-rw-r--r--src/Text/Pandoc/Writers/Powerpoint/Presentation.hs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs b/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs
index b3b61d51c..7345d319a 100644
--- a/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs
+++ b/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs
@@ -727,6 +727,7 @@ bodyBlocksToSlide _ (blk : blks) spkNotes
, "columns" `elem` classes
, Div (_, clsL, _) blksL : Div (_, clsR, _) blksR : remaining <- divBlks
, "column" `elem` clsL, "column" `elem` clsR = do
+ -- At least 2 column elements
mapM_ (addLogMessage . BlockNotRendered) (blks ++ remaining)
let mkTwoColumn left right = do
blksL' <- join . take 1 <$> splitBlocks left
@@ -755,6 +756,16 @@ bodyBlocksToSlide _ (blk : blks) spkNotes
if (any null [blksL1, blksL2]) && (any null [blksR1, blksR2])
then mkTwoColumn blksL blksR
else mkComparison blksL1 blksL2 blksR1 blksR2
+ | Div (_, classes, _) divBlks <- blk
+ , "columns" `elem` classes
+ , Div (_, cls, _) columnBlks : remaining <- divBlks
+ , "column" `elem` cls = do
+ -- Only 1 column element.
+ mapM_ (addLogMessage . BlockNotRendered) (blks ++ remaining)
+ clBlks' <- join . take 1 <$> splitBlocks columnBlks
+ shapes <- blocksToShapes clBlks'
+ sldId <- asks envCurSlideId
+ return $ Slide sldId (ContentSlide [] shapes) spkNotes Nothing
bodyBlocksToSlide _ (blk : blks) spkNotes = do
sldId <- asks envCurSlideId
inNoteSlide <- asks envInNoteSlide