toc

package
v0.8.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 24, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package toc generates and renders tables of contents. It builds a hierarchical structure from headings and renders HTML navigation.

Index

Constants

View Source
const PageSlotAttr = "data-toc-page"

PageSlotAttr marks the element that holds an entry's printed page number. The PDF generator prints the document once to learn which page each anchor landed on, then fills these slots in and prints again — the slot is left empty and reserved on the first pass so that filling it in cannot change the layout, and therefore cannot invalidate the very page numbers being written.

Variables

This section is empty.

Functions

func CountEntries

func CountEntries(entries []TOCEntry) int

CountEntries returns the total number of TOC entries, including descendants.

Types

type Generator

type Generator struct {
	// contains filtered or unexported fields
}

Generator builds hierarchical TOC trees from flat heading lists.

func NewGenerator

func NewGenerator() *Generator

NewGenerator creates a new TOC generator that renders an English heading.

func NewGeneratorForLanguage added in v0.8.0

func NewGeneratorForLanguage(language string) *Generator

NewGeneratorForLanguage creates a TOC generator whose rendered heading is written in the book's language.

func (*Generator) Generate

func (g *Generator) Generate(headings []HeadingInfo) []TOCEntry

Generate builds a hierarchical TOC tree from document-order headings.

func (*Generator) RenderHTML

func (g *Generator) RenderHTML(entries []TOCEntry) string

RenderHTML renders the TOC tree as nested HTML navigation.

type HeadingInfo

type HeadingInfo struct {
	Level int    // Heading level from 1 to 6.
	Text  string // Heading text.
	ID    string // Unique heading identifier, typically used as an anchor.
}

HeadingInfo stores heading metadata parsed from Markdown.

type TOCEntry

type TOCEntry struct {
	Level    int        // Heading level from 1 to 6.
	Title    string     // Heading text.
	ID       string     // Unique identifier used for anchor links.
	PageNum  int        // Optional page number for print-oriented output.
	Children []TOCEntry // Child entries.
}

TOCEntry represents one node in the TOC tree.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL