Skip to content

Philosophy

Granular Control

With MkDocs, if you want to diverge in any way from the automatically generated navigation, you have to define the entire structure in mkdocs.yml by hand. You have to pick between the maintainability of the generated navigation and the flexibility of a custom one.

With the awesome-nav plugin, you get the best of both worlds. The navigation is generated based on your file structure, but you can make granular adjustments where needed. To do so, you create a .nav.yml file anywhere in your docs directory and use the various features to customize your navigation.

To achieve this, awesome-nav completely discards the navigation that MkDocs and other plugins generate.

File Structure First

While you absolutely can write out the entire navigation in docs/.nav.yml independently of the file structure, awesome-nav really shines when you align your file structure with the intended navigation and use a .nav.yml file here and there to augment it.

Inheritance

Many settings in .nav.yml are inherited by child directories. This allows you to affect a large section of your docs or even the entire site by placing the configuration at the root in docs/.nav.yml.

Limitations

The awesome-nav plugin allows you to customize the navigation structure. It can't influence how the links are rendered. Such customizations are usually handled by themes.