Navigation
Reorder sections, rename pages, hide them, and add pages the planner never wrote.
DeepDoc decides your sidebar structure by analysing your code. It is usually close, and occasionally wrong — a section you want first ends up third, or a page has a name that made sense to the planner and not to your team.
Every override here is read from the saved plan, so none of it costs an LLM call or a repository scan. Reordering your sidebar is free and instant.
Reorder sections
site:
nav:
sections:
- "Getting Started"
- "API Reference"
- "Architecture"Sections you list appear first, in that order. Anything unlisted keeps its computed position after them — so you can pin the two that matter and ignore the rest.
Match on the section title as it appears in the sidebar.
Hoist a page above the sections
site:
nav:
pin:
- getting-started
- faqPinned pages move above every section, in the order listed. Use it for the one or two pages every reader needs first.
Rename
site:
nav:
rename:
auth-service: "Authentication"
billing-webhooks-handler: "Billing Webhooks"
"API": "API Reference"Keys match a page slug or a section title. Handy when the planner named a page after a module rather than after the thing it does.
Hide
site:
nav:
hide:
- internal-notes
- scratchHidden is not private
hide removes a page from the sidebar. The page is still built and still
reachable at its URL. It is for tidying navigation, not for keeping anything
secret. If a page should not be published, keep it out of your docs directory.
Add your own pages
The gap this closes: drop a hand-written Markdown file into your docs directory and it renders and is reachable — but the sidebar comes from the plan, and the plan does not know it exists.
site:
nav:
extra:
- { slug: runbook, title: "Deployment Runbook", section: "Guides" }
- { url: "https://github.com/acme/widgets/releases", title: "Releases" }slug— a Markdown file in your docs directory, without the extension.url— an external link instead.section— which section to file it under. Names a section that does not exist and it is created. Omit it and the entry sits at the top level.
DeepDoc tells you when pages are in this state:
2 page(s) are not in the sidebar: runbook, faq. Add them under site.nav.extra.Stale entries warn, never break
Rename a page in your code and your override no longer matches. Rather than failing, DeepDoc reports it and carries on:
site.nav.hide: no page named 'internal-notes'
site.nav.rename: no page or section named 'auth-service'
site.nav.sections: no section named 'Getting Started'Your site still builds. Nothing in this file can break a deploy.
Order of application
This is why renaming a section and then ordering by its new name works.