From 6562863ef1eae9796b89b9b995e63ad4e75359fb Mon Sep 17 00:00:00 2001 From: Jesse Rosenthal Date: Sun, 18 Feb 2018 16:06:58 -0500 Subject: Powerpoint writer: separate SpeakerNotes paragraphs with empy par This will add a space between notes paragraphs, which seems more like what most users would do by hand (press "enter" twice). --- src/Text/Pandoc/Writers/Powerpoint/Output.hs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/Text/Pandoc') diff --git a/src/Text/Pandoc/Writers/Powerpoint/Output.hs b/src/Text/Pandoc/Writers/Powerpoint/Output.hs index 93d511dce..bc9c3193a 100644 --- a/src/Text/Pandoc/Writers/Powerpoint/Output.hs +++ b/src/Text/Pandoc/Writers/Powerpoint/Output.hs @@ -39,7 +39,7 @@ import Control.Monad.Reader import Control.Monad.State import Codec.Archive.Zip import Data.Char (toUpper) -import Data.List (intercalate, stripPrefix, nub, union, isPrefixOf) +import Data.List (intercalate, stripPrefix, nub, union, isPrefixOf, intersperse) import Data.Default import Text.Pandoc.Compat.Time (formatTime, defaultTimeLocale) import Data.Time.Clock (UTCTime) @@ -1205,14 +1205,18 @@ speakerNotesSlideImage = -- we want to wipe links from the speaker notes in the -- paragraphs. Powerpoint doesn't allow you to input them, and it -- would provide extra complications. -removeLinks :: Paragraph -> Paragraph -removeLinks paragraph = paragraph{paraElems = map f (paraElems paragraph)} +removeParaLinks :: Paragraph -> Paragraph +removeParaLinks paragraph = paragraph{paraElems = map f (paraElems paragraph)} where f (Run rProps s) = Run rProps{rLink=Nothing} s f pe = pe +-- put an empty paragraph between paragraphs for more expected spacing. +spaceParas :: [Paragraph] -> [Paragraph] +spaceParas = intersperse (Paragraph def []) + speakerNotesBody :: PandocMonad m => [Paragraph] -> P m Element speakerNotesBody paras = do - elements <- mapM paragraphToElement $ map removeLinks paras + elements <- mapM paragraphToElement $ spaceParas $ map removeParaLinks paras let txBody = mknode "p:txBody" [] $ [mknode "a:bodyPr" [] (), mknode "a:lstStyle" [] ()] ++ elements return $ -- cgit v1.2.3