Use table-of-contents
for contents of toc, make toc
a boolean.
Changed markdown, rtf, and HTML-based templates accordingly. This allows you to set `toc: true` in the metadata; this previously produced strange results in some output formats. Closes #2872. For backwards compatibility, `toc` is still set to the toc contents. But it is recommended that you update templates to use `table-of-contents` for the toc contents and `toc` for a boolean flag.
This commit is contained in:
parent
fa515e46f3
commit
75f4e41d7d
14 changed files with 29 additions and 17 deletions
|
@ -11,7 +11,7 @@ $include-before$
|
|||
|
||||
$endfor$
|
||||
$if(toc)$
|
||||
$toc$
|
||||
$table-of-contents$
|
||||
|
||||
$endif$
|
||||
$body$
|
||||
|
|
|
@ -186,7 +186,7 @@ $endif$
|
|||
$endif$
|
||||
$if(toc)$
|
||||
<section id="$idprefix$TOC">
|
||||
$toc$
|
||||
$table-of-contents$
|
||||
</section>
|
||||
$endif$
|
||||
$for(include-before)$
|
||||
|
|
|
@ -57,7 +57,7 @@ $endif$
|
|||
$endif$
|
||||
$if(toc)$
|
||||
<div id="$idprefix$TOC">
|
||||
$toc$
|
||||
$table-of-contents$
|
||||
</div>
|
||||
$endif$
|
||||
$body$
|
||||
|
|
|
@ -60,7 +60,7 @@ $endif$
|
|||
$endif$
|
||||
$if(toc)$
|
||||
<nav id="$idprefix$TOC">
|
||||
$toc$
|
||||
$table-of-contents$
|
||||
</nav>
|
||||
$endif$
|
||||
$body$
|
||||
|
|
|
@ -11,7 +11,7 @@ $include-before$
|
|||
|
||||
$endfor$
|
||||
$if(toc)$
|
||||
$toc$
|
||||
$table-of-contents$
|
||||
|
||||
$endif$
|
||||
$body$
|
||||
|
|
|
@ -11,7 +11,7 @@ $include-before$
|
|||
|
||||
$endfor$
|
||||
$if(toc)$
|
||||
$toc$
|
||||
$table-of-contents$
|
||||
|
||||
$endif$
|
||||
$body$
|
||||
|
|
|
@ -79,7 +79,7 @@ $endif$
|
|||
$endif$
|
||||
$if(toc)$
|
||||
<section id="$idprefix$TOC">
|
||||
$toc$
|
||||
$table-of-contents$
|
||||
</section>
|
||||
$endif$
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ $if(spacer)$
|
|||
{\pard \ql \f0 \sa180 \li0 \fi0 \par}
|
||||
$endif$
|
||||
$if(toc)$
|
||||
$toc$
|
||||
$table-of-contents$
|
||||
$endif$
|
||||
$for(include-before)$
|
||||
$include-before$
|
||||
|
|
|
@ -78,7 +78,7 @@ $endif$
|
|||
$endif$
|
||||
$if(toc)$
|
||||
<div class="slide" id="$idprefix$TOC">
|
||||
$toc$
|
||||
$table-of-contents$
|
||||
</div>
|
||||
$endif$
|
||||
$body$
|
||||
|
|
|
@ -83,7 +83,7 @@ $endif$
|
|||
$endif$
|
||||
$if(toc)$
|
||||
<div class="slide" id="$idprefix$TOC">
|
||||
$toc$
|
||||
$table-of-contents$
|
||||
</div>
|
||||
$endif$
|
||||
$body$
|
||||
|
|
|
@ -69,7 +69,7 @@ $endif$
|
|||
$endif$
|
||||
$if(toc)$
|
||||
<div class="slide" id="$idprefix$TOC">
|
||||
$toc$
|
||||
$table-of-contents$
|
||||
</div>
|
||||
$endif$
|
||||
$body$
|
||||
|
|
|
@ -241,7 +241,7 @@ pandocToHtml opts (Pandoc meta blocks) = do
|
|||
then blocks
|
||||
else prepSlides slideLevel blocks
|
||||
toc <- if writerTableOfContents opts && slideVariant /= S5Slides
|
||||
then tableOfContents opts sects
|
||||
then fmap renderHtml' <$> tableOfContents opts sects
|
||||
else return Nothing
|
||||
blocks' <- liftM (mconcat . intersperse (nl opts)) $
|
||||
mapM (elementToHtml slideLevel opts) sects
|
||||
|
@ -292,7 +292,11 @@ pandocToHtml opts (Pandoc meta blocks) = do
|
|||
MathJax _ -> True
|
||||
_ -> False) $
|
||||
defField "quotes" (stQuotes st) $
|
||||
maybe id (defField "toc" . renderHtml') toc $
|
||||
-- for backwards compatibility we populate toc
|
||||
-- with the contents of the toc, rather than a
|
||||
-- boolean:
|
||||
maybe id (defField "toc") toc $
|
||||
maybe id (defField "table-of-contents") toc $
|
||||
defField "author-meta" authsMeta $
|
||||
maybe id (defField "date-meta") (normalizeDate dateMeta) $
|
||||
defField "pagetitle" (stringifyHTML (docTitle meta)) $
|
||||
|
|
|
@ -209,8 +209,8 @@ pandocToMarkdown opts (Pandoc meta blocks) = do
|
|||
Nothing -> empty
|
||||
let headerBlocks = filter isHeaderBlock blocks
|
||||
toc <- if writerTableOfContents opts
|
||||
then tableOfContents opts headerBlocks
|
||||
else return empty
|
||||
then render' <$> tableOfContents opts headerBlocks
|
||||
else return ""
|
||||
-- Strip off final 'references' header if markdown citations enabled
|
||||
let blocks' = if isEnabled Ext_citations opts
|
||||
then case reverse blocks of
|
||||
|
@ -220,7 +220,11 @@ pandocToMarkdown opts (Pandoc meta blocks) = do
|
|||
body <- blockListToMarkdown opts blocks'
|
||||
notesAndRefs' <- notesAndRefs opts
|
||||
let main = render' $ body <> notesAndRefs'
|
||||
let context = defField "toc" (render' toc)
|
||||
let context = -- for backwards compatibility we populate toc
|
||||
-- with the contents of the toc, rather than a
|
||||
-- boolean:
|
||||
defField "toc" toc
|
||||
$ defField "table-of-contents" toc
|
||||
$ defField "body" main
|
||||
$ (if isNullMeta meta
|
||||
then id
|
||||
|
|
|
@ -122,7 +122,11 @@ writeRTF options doc = do
|
|||
let context = defField "body" body
|
||||
$ defField "spacer" spacer
|
||||
$ (if writerTableOfContents options
|
||||
then defField "toc" toc
|
||||
then defField "table-of-contents" toc
|
||||
-- for backwards compatibility,
|
||||
-- we populate toc with the contents
|
||||
-- of the toc rather than a boolean:
|
||||
. defField "toc" toc
|
||||
else id)
|
||||
$ metadata
|
||||
T.pack <$>
|
||||
|
|
Loading…
Reference in a new issue