aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Writers
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2019-12-17 11:59:29 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2019-12-17 11:59:52 -0800
commitd0918627cafff1ce96c51df9963e3a25ce149cce (patch)
tree844221f3fe361c640388ee8f1976f889031f698c /src/Text/Pandoc/Writers
parent80728c8b3122db1d7caedcce66310fb1924f5a91 (diff)
downloadpandoc-d0918627cafff1ce96c51df9963e3a25ce149cce.tar.gz
Improved --toc generation.
Diffstat (limited to 'src/Text/Pandoc/Writers')
-rw-r--r--src/Text/Pandoc/Writers/CommonMark.hs8
-rw-r--r--src/Text/Pandoc/Writers/Markdown.hs3
-rw-r--r--src/Text/Pandoc/Writers/RTF.hs3
3 files changed, 5 insertions, 9 deletions
diff --git a/src/Text/Pandoc/Writers/CommonMark.hs b/src/Text/Pandoc/Writers/CommonMark.hs
index e2d2b8e4d..e189336b2 100644
--- a/src/Text/Pandoc/Writers/CommonMark.hs
+++ b/src/Text/Pandoc/Writers/CommonMark.hs
@@ -28,7 +28,7 @@ import Network.HTTP (urlEncode)
import Text.Pandoc.Class (PandocMonad)
import Text.Pandoc.Definition
import Text.Pandoc.Options
-import Text.Pandoc.Shared (capitalize, isHeaderBlock, isTightList,
+import Text.Pandoc.Shared (capitalize, isTightList,
linesToPara, onlySimpleTableCells, taskListItemToAscii, tshow)
import Text.Pandoc.Templates (renderTemplate)
import Text.Pandoc.Walk (walk, walkM)
@@ -40,12 +40,10 @@ import Text.DocLayout (literal, render)
-- | Convert Pandoc to CommonMark.
writeCommonMark :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeCommonMark opts (Pandoc meta blocks) = do
- let headerBlocks = filter isHeaderBlock blocks
toc <- if writerTableOfContents opts
- then blocksToCommonMark opts
- [ toTableOfContents opts headerBlocks ]
+ then blocksToCommonMark opts [ toTableOfContents opts blocks ]
else return mempty
-
+
let (blocks', notes) = runState (walkM processNotes blocks) []
notes' = if null notes
then []
diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs
index 2b6084255..e6d7579d3 100644
--- a/src/Text/Pandoc/Writers/Markdown.hs
+++ b/src/Text/Pandoc/Writers/Markdown.hs
@@ -208,9 +208,8 @@ pandocToMarkdown opts (Pandoc meta blocks) = do
mmdTitleBlock metadata
| otherwise -> empty
Nothing -> empty
- let headerBlocks = filter isHeaderBlock blocks
toc <- if writerTableOfContents opts
- then blockToMarkdown opts ( toTableOfContents opts headerBlocks )
+ then blockToMarkdown opts ( toTableOfContents opts blocks )
else return mempty
-- Strip off final 'references' header if markdown citations enabled
let blocks' = if isEnabled Ext_citations opts
diff --git a/src/Text/Pandoc/Writers/RTF.hs b/src/Text/Pandoc/Writers/RTF.hs
index 08f0df0f8..6a40f75e2 100644
--- a/src/Text/Pandoc/Writers/RTF.hs
+++ b/src/Text/Pandoc/Writers/RTF.hs
@@ -103,8 +103,7 @@ writeRTF options doc = do
(fmap literal . inlinesToRTF)
meta'
body <- blocksToRTF 0 AlignDefault blocks
- toc <- blocksToRTF 0 AlignDefault
- [toTableOfContents options $ filter isHeaderBlock blocks]
+ toc <- blocksToRTF 0 AlignDefault [toTableOfContents options blocks]
let context = defField "body" body
$ defField "spacer" spacer
$(if writerTableOfContents options