mdbook-pagetoc

Crates.iomdbook-pagetoc
lib.rsmdbook-pagetoc
version0.3.0
created_at2022-04-05 17:09:53.136578+00
updated_at2025-11-27 14:19:07.745282+00
descriptionA mdbook plugin that provides a table of contents for each page.
homepagehttps://github.com/slowsage/mdbook-pagetoc
repositoryhttps://github.com/slowsage/mdbook-pagetoc
max_upload_size
id562696
size193,574
(slowsage)

documentation

https://github.com/slowsage/mdbook-pagetoc#readme

README

mdbook-pagetoc

A mdbook plugin that provides a table of contents for each page. Uses css/js from mdBook-pagetoc.

Show me

mdbook-pagetoc screenshot

Notes:

  • Only supports the html renderer.

  • On the first run of mdbook build, it creates two files pagetoc.css and pagetoc.js.

  • You can customize any of them after the first run.

  • mdbook 0.5 now ships with built-in support for showing the page table of contents in the sidebar, see PR 2822

Configuration:

  • Add to book.toml config:

    [preprocessor.pagetoc]
    scroll_offset = 10  # pixels added to scroll position for active header detection (default: 10)
    
    [output.html]
    additional-css = ["theme/pagetoc.css"]
    additional-js  = ["theme/pagetoc.js"]
    
  • The place marker <div class="sidetoc"><nav class="pagetoc"></nav></div> will be inserted inside the <main> tag. ie. This replaces

    <main>
      {{{content}}}
    </main>
    

    with:

    <main><div class="sidetoc"><nav class="pagetoc"></nav></div>
      {{{content}}}
    </main>
    
  • If not customizing, you may want to add entries as appropriate to .gitignore to keep your repo clean:

    theme/pagetoc.css
    theme/pagetoc.js
    
  • Customization: To autohide when only single header, add this snippet to pagetoc.css:

    a[class^="pagetoc-H"]:only-child {
      display: none;
    }
    
  • Customization: To hide a header from the table of content:

    ## Hidden from TOC {.toc-ignore}
    

Acknowledgments

Alternative

Commit count: 24

cargo fmt