aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2019-01-04 21:47:24 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2019-01-04 21:47:24 -0800
commita5f5002eefd43820b1f54191b0cf3cbd743eca0a (patch)
tree1c9c89cb735856b8a4d007248749cc2a4fad9eb0
parent571fede73252138891bbf7eefddbd47947f7eb16 (diff)
downloadpandoc-a5f5002eefd43820b1f54191b0cf3cbd743eca0a.tar.gz
Use toTableOfContents in Powerpoint writer....
instead of duplicating code.
-rw-r--r--src/Text/Pandoc/Writers/Powerpoint/Presentation.hs19
1 files changed, 3 insertions, 16 deletions
diff --git a/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs b/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs
index 7787e991b..7897f2b11 100644
--- a/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs
+++ b/src/Text/Pandoc/Writers/Powerpoint/Presentation.hs
@@ -72,7 +72,7 @@ import Text.Pandoc.Logging
import Text.Pandoc.Walk
import Data.Time (UTCTime)
import qualified Text.Pandoc.Shared as Shared -- so we don't overlap "Element"
-import Text.Pandoc.Writers.Shared (lookupMetaInlines)
+import Text.Pandoc.Writers.Shared (lookupMetaInlines, toTableOfContents)
import qualified Data.Map as M
import qualified Data.Set as S
import Data.Maybe (maybeToList, fromMaybe)
@@ -770,23 +770,10 @@ getMetaSlide = do
}
mempty
--- adapted from the markdown writer
-elementToListItem :: Shared.Element -> Pres [Block]
-elementToListItem (Shared.Sec lev _nums (ident,_,_) headerText subsecs) = do
- opts <- asks envOpts
- let headerLink = if null ident
- then walk Shared.deNote headerText
- else [Link nullAttr (walk Shared.deNote headerText)
- ('#':ident, "")]
- listContents <- if null subsecs || lev >= writerTOCDepth opts
- then return []
- else mapM elementToListItem subsecs
- return [Plain headerLink, BulletList listContents]
-elementToListItem (Shared.Blk _) = return []
-
makeTOCSlide :: [Block] -> Pres Slide
makeTOCSlide blks = local (\env -> env{envCurSlideId = tocSlideId}) $ do
- contents <- BulletList <$> mapM elementToListItem (Shared.hierarchicalize blks)
+ opts <- asks envOpts
+ let contents = toTableOfContents opts blks
meta <- asks envMetadata
slideLevel <- asks envSlideLevel
let tocTitle = case lookupMetaInlines "toc-title" meta of