git.iko.soy/typeable/pandoc
on master help sign in
Use toTableOfContents in Powerpoint writer....
a5f5002John MacFarlane
src/Text/Pandoc/Writers/Powerpoint/Presentation.hs+3−16
@@ -72,7 +72,7 @@ import Text.Pandoc.Logging
72import Text.Pandoc.Walk
72import Text.Pandoc.Walk
73import Data.Time (UTCTime)
73import Data.Time (UTCTime)
74import qualified Text.Pandoc.Shared as Shared -- so we don't overlap "Element"
74import 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)
76import qualified Data.Map as M
76import qualified Data.Map as M
77import qualified Data.Set as S
77import qualified Data.Set as S
78import Data.Maybe (maybeToList, fromMaybe)
78import Data.Maybe (maybeToList, fromMaybe)
@@ -770,23 +770,10 @@ getMetaSlide = do
770 }
770 }
771 mempty
771 mempty
772
772
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−
787makeTOCSlide :: [Block] -> Pres Slide
773makeTOCSlide :: [Block] -> Pres Slide
788makeTOCSlide blks = local (\env -> env{envCurSlideId = tocSlideId}) $ do
774makeTOCSlide 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
790 meta <- asks envMetadata
777 meta <- asks envMetadata
791 slideLevel <- asks envSlideLevel
778 slideLevel <- asks envSlideLevel
792 let tocTitle = case lookupMetaInlines "toc-title" meta of
779 let tocTitle = case lookupMetaInlines "toc-title" meta of