git.iko.soy/typeable/pandoc
on master help sign in
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).

commit6562863ef1eae9796b89b9b995e63ad4e75359fb authorJesse Rosenthal <jrosenthal@jhu.edu> dateSun 18 Feb 2018, 16:06 (9 years ago) parent07f3aa1
1 file changed+8−4
src/Text/Pandoc/Writers/Powerpoint/Output.hs+8−4
src/Text/Pandoc/Writers/Powerpoint/Output.hs+8−4
@@ -39,7 +39,7 @@ import Control.Monad.Reader
3939import Control.Monad.State
4040import Codec.Archive.Zip
4141import Data.Char (toUpper)
42−import Data.List (intercalate, stripPrefix, nub, union, isPrefixOf)
42+import Data.List (intercalate, stripPrefix, nub, union, isPrefixOf, intersperse)
4343import Data.Default
4444import Text.Pandoc.Compat.Time (formatTime, defaultTimeLocale)
4545import Data.Time.Clock (UTCTime)
@@ -1205,14 +1205,18 @@ speakerNotesSlideImage =
12051205-- we want to wipe links from the speaker notes in the
12061206-- paragraphs. Powerpoint doesn't allow you to input them, and it
12071207-- would provide extra complications.
1208−removeLinks :: Paragraph -> Paragraph
1209−removeLinks paragraph = paragraph{paraElems = map f (paraElems paragraph)}
1208+removeParaLinks :: Paragraph -> Paragraph
1209+removeParaLinks paragraph = paragraph{paraElems = map f (paraElems paragraph)}
12101210 where f (Run rProps s) = Run rProps{rLink=Nothing} s
12111211 f pe = pe
12121212
1213+-- put an empty paragraph between paragraphs for more expected spacing.
1214+spaceParas :: [Paragraph] -> [Paragraph]
1215+spaceParas = intersperse (Paragraph def [])
1216+
12131217speakerNotesBody :: PandocMonad m => [Paragraph] -> P m Element
12141218speakerNotesBody paras = do
1215− elements <- mapM paragraphToElement $ map removeLinks paras
1219+ elements <- mapM paragraphToElement $ spaceParas $ map removeParaLinks paras
12161220 let txBody = mknode "p:txBody" [] $
12171221 [mknode "a:bodyPr" [] (), mknode "a:lstStyle" [] ()] ++ elements
12181222 return $