git.iko.soy/typeable/pandoc
on master help sign in
PowerPoint writer code style fix

I had been using record syntax in an ADT, is bad style, since it means that each record produces a partial function. Fortunately we weren't using the partial functions anywhere, so this changes it to positional syntax.

commitba7898bb3dae98c14ae824eab3129f22a70e6bd3 authorJesse Rosenthal <jrosenthal@jhu.edu> dateFri 5 Apr 2019, 12:05 (8 years ago) parentb99188c
1 file changed+14−30
src/Text/Pandoc/Writers/Powerpoint/Presentation.hs+14−30
src/Text/Pandoc/Writers/Powerpoint/Presentation.hs+14−30
@@ -183,20 +183,15 @@ newtype SlideId = SlideId String
183183newtype SpeakerNotes = SpeakerNotes {fromSpeakerNotes :: [Paragraph]}
184184 deriving (Show, Eq, Monoid, Semigroup)
185185
186−data Layout = MetadataSlide { metadataSlideTitle :: [ParaElem]
187− , metadataSlideSubtitle :: [ParaElem]
188− , metadataSlideAuthors :: [[ParaElem]]
189− , metadataSlideDate :: [ParaElem]
190− }
191− | TitleSlide { titleSlideHeader :: [ParaElem]}
192− | ContentSlide { contentSlideHeader :: [ParaElem]
193− , contentSlideContent :: [Shape]
194− }
195− | TwoColumnSlide { twoColumnSlideHeader :: [ParaElem]
196− , twoColumnSlideLeft :: [Shape]
197− , twoColumnSlideRight :: [Shape]
198− }
199− deriving (Show, Eq)
186+data Layout = MetadataSlide [ParaElem] [ParaElem] [[ParaElem]] [ParaElem]
187+ -- title subtitle authors date
188+ | TitleSlide [ParaElem]
189+ -- heading
190+ | ContentSlide [ParaElem] [Shape]
191+ -- heading content
192+ | TwoColumnSlide [ParaElem] [Shape] [Shape]
193+ -- heading left right
194+ deriving (Show, Eq)
200195
201196data Shape = Pic PicProps FilePath [ParaElem]
202197 | GraphicFrame [Graphic] [ParaElem]
@@ -621,7 +616,7 @@ blocksToSlide' lvl (Header n (ident, _, _) ils : blks) spkNotes
621616 registerAnchorId ident
622617 sldId <- asks envCurSlideId
623618 hdr <- inlinesToParElems ils
624− return $ Slide sldId TitleSlide {titleSlideHeader = hdr} spkNotes
619+ return $ Slide sldId (TitleSlide hdr) spkNotes
625620 | n == lvl = do
626621 registerAnchorId ident
627622 hdr <- inlinesToParElems ils
@@ -652,10 +647,7 @@ blocksToSlide' _ (blk : blks) spkNotes
652647 sldId <- asks envCurSlideId
653648 return $ Slide
654649 sldId
655− TwoColumnSlide { twoColumnSlideHeader = []
656− , twoColumnSlideLeft = shapesL
657− , twoColumnSlideRight = shapesR
658− }
650+ (TwoColumnSlide [] shapesL shapesR)
659651 spkNotes
660652blocksToSlide' _ (blk : blks) spkNotes = do
661653 inNoteSlide <- asks envInNoteSlide
@@ -666,18 +658,14 @@ blocksToSlide' _ (blk : blks) spkNotes = do
666658 return $
667659 Slide
668660 sldId
669− ContentSlide { contentSlideHeader = []
670− , contentSlideContent = shapes
671− }
661+ (ContentSlide [] shapes)
672662 spkNotes
673663blocksToSlide' _ [] spkNotes = do
674664 sldId <- asks envCurSlideId
675665 return $
676666 Slide
677667 sldId
678− ContentSlide { contentSlideHeader = []
679− , contentSlideContent = []
680− }
668+ (ContentSlide [] [])
681669 spkNotes
682670
683671blockToSpeakerNotes :: Block -> Pres SpeakerNotes
@@ -756,11 +744,7 @@ getMetaSlide = do
756744 Just $
757745 Slide
758746 metadataSlideId
759− MetadataSlide { metadataSlideTitle = title
760− , metadataSlideSubtitle = subtitle
761− , metadataSlideAuthors = authors
762− , metadataSlideDate = date
763− }
747+ (MetadataSlide title subtitle authors date)
764748 mempty
765749
766750addSpeakerNotesToMetaSlide :: Slide -> [Block] -> Pres (Slide, [Block])