Documentation
¶
Overview ¶
Package toc generates and renders tables of contents. It builds a hierarchical structure from headings and renders HTML navigation.
Index ¶
Constants ¶
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 ¶
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
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 ¶
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.