git.iko.soy/typeable/pandoc
on master help sign in
Use toTableOfContents in Powerpoint writer....

instead of duplicating code.

commita5f5002eefd43820b1f54191b0cf3cbd743eca0a authorJohn MacFarlane <jgm@berkeley.edu> dateFri 4 Jan 2019, 21:47 (8 years ago) parent571fede
1 file changed+3−16
src/Text/Pandoc/Writers/Powerpoint/Presentation.hs+3−16
src/Text/Pandoc/Writers/Powerpoint/Presentation.hs+3−16
@@ -72,7 +72,7 @@ import Text.Pandoc.Logging
7272import Text.Pandoc.Walk
7373import Data.Time (UTCTime)
7474import qualified Text.Pandoc.Shared as Shared -- so we don't overlap "Element"
75−import Text.Pandoc.Writers.Shared (lookupMetaInlines)
75+import Text.Pandoc.Writers.Shared (lookupMetaInlines, toTableOfContents)
7676import qualified Data.Map as M
7777import qualified Data.Set as S
7878import Data.Maybe (maybeToList, fromMaybe)
@@ -770,23 +770,10 @@ getMetaSlide = do
770770 }
771771 mempty
772772
773−-- adapted from the markdown writer
774−elementToListItem :: Shared.Element -> Pres [Block]
775−elementToListItem (Shared.Sec lev _nums (ident,_,_) headerText subsecs) = do
776− opts <- asks envOpts
777− let headerLink = if null ident
778− then walk Shared.deNote headerText
779− else [Link nullAttr (walk Shared.deNote headerText)
780− ('#':ident, "")]
781− listContents <- if null subsecs || lev >= writerTOCDepth opts
782− then return []
783− else mapM elementToListItem subsecs
784− return [Plain headerLink, BulletList listContents]
785−elementToListItem (Shared.Blk _) = return []
786−
787773makeTOCSlide :: [Block] -> Pres Slide
788774makeTOCSlide blks = local (\env -> env{envCurSlideId = tocSlideId}) $ do
789− contents <- BulletList <$> mapM elementToListItem (Shared.hierarchicalize blks)
775+ opts <- asks envOpts
776+ let contents = toTableOfContents opts blks
790777 meta <- asks envMetadata
791778 slideLevel <- asks envSlideLevel
792779 let tocTitle = case lookupMetaInlines "toc-title" meta of