The graph page
Every pagers build writes graph.html at the site root — an
interactive, dependency-free force-directed map of how pages link to each
other. It's linked from the site header on every page.
What it shows
- One node per content page, sized/labelled by title.
- Directed edges for internal Markdown links (
[x](other.md)and resolved clean-URL links). - Drag nodes to rearrange; click a node for its title, URL and outgoing links; "Open page" jumps to the page.
- Dark/light theming follows the site toggle.
The renderer (crates/pagers-graph) extracts edges during the build from
the same link-resolution pass that rewrites URLs, so the graph always
matches what readers can actually click.
Standalone graph
pagers graph scans a directory and writes the same data without building
the site — useful for auditing link structure or embedding elsewhere:
pagers graph ./docs
# → graph.html, graph.json, graph.dot
graph.html— self-contained viewer (open directly in a browser).graph.json—{ nodes: [...], edges: [...], stats: {...} }for tooling.graph.dot— Graphviz DOT if you preferdot -Tsvg.
Reading the JSON
{
"nodes": [{ "id": "/guide/install/", "title": "Installation", "source": "guide/install.md" }],
"edges": [{ "from": "/", "to": "/guide/install/" }],
"stats": { "pages": 12, "edges": 30, "orphaned": 1 }
}
Orphaned pages (no inbound links) and dangling references are the usual actionable findings.