From d0918627cafff1ce96c51df9963e3a25ce149cce Mon Sep 17 00:00:00 2001
From: John MacFarlane <jgm@berkeley.edu>
Date: Tue, 17 Dec 2019 11:59:29 -0800
Subject: Improved --toc generation.

---
 src/Text/Pandoc/Writers/CommonMark.hs | 8 +++-----
 src/Text/Pandoc/Writers/Markdown.hs   | 3 +--
 src/Text/Pandoc/Writers/RTF.hs        | 3 +--
 3 files changed, 5 insertions(+), 9 deletions(-)

(limited to 'src')

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
-- 
cgit v1.2.3