Jan-Erik Rediger
c9484d562e
CRLF lineendings will happen on Windows, but they shouldn't matter for Markdown content. pulldown-cmark will parse them _nearly_ the same. `<!-- toc -->\r\n` will actually be 2 HTML elements: the `<!-- toc -->` part and a `\n` part, whereas `<!-- toc -->\n` will be just one: `<!-- toc -->\n`. That throws off our marker parser because we're looking for the latter only. So by stripping our the CR (`\r`) we don't need to special-case anything. The rendering will be the same. Closes #35 |
||
---|---|---|
.github/workflows | ||
src | ||
tests | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
LICENSE | ||
README.md | ||
release.toml |
mdbook-toc
A preprocessor for mdbook to add inline Table of Contents support.
It turns this:
<!-- toc -->
into a Table of Contents based on all top- and second-level headings of the chapter.
Installation
If you want to use only this preprocessor, install the tool:
cargo install mdbook-toc
Add it as a preprocessor to your book.toml
:
[preprocessor.toc]
command = "mdbook-toc"
renderer = ["html"]
Finally, build your book as normal:
mdbook path/to/book
Configuration
Custom TOC marker
The default marker is:
<!-- toc -->
If you wish to use a different marker, such as the GitLab marker [[_TOC_]]
, you must add the following settings to your book.toml
.
[preprocessor.toc]
marker = "[[_TOC_]]"
You can also use multi-line markers such as the GitHub marker, which is:
* auto-gen TOC;
{:toc}
Configure the string with a newline:
[preprocessor.toc]
marker = "* auto-gen TOC;\n{:toc}"
or with multi-line strings:
[preprocessor.toc]
marker = """* auto-gen TOC;
{:toc}"""
Maximum header level
By default the ToC will include headings up to level 4 (####
).
This can be configured in your book.toml
as follows:
[preprocessor.toc]
max-level = 4
License
MPL. See LICENSE.
Copyright (c) 2018-2020 Jan-Erik Rediger janerik@fnordig.de