Python中如何实现Mkdocs目录折叠功能

刚开始用 Mkdocs 不太会用,请教下 Mkdocs 目录怎么配置成折叠的,主题是 readthedocs。


Python中如何实现Mkdocs目录折叠功能
1 回复

在MkDocs中实现目录折叠功能,通常需要借助特定的主题插件。最直接和推荐的方法是使用 mkdocs-material 主题,它内置了强大的目录导航功能,包括可折叠的目录树。

首先,确保你安装了 mkdocs-material

pip install mkdocs-material

然后,在你的 mkdocs.yml 配置文件中启用它,并进行相关设置:

site_name: My Docs
theme:
  name: material
  features:
    - navigation.expand # 默认展开当前活动的目录分支
    # - navigation.sections # 此功能在较新版本中可启用章节式折叠侧边栏
    - navigation.instant # 无刷新即时跳转
    - navigation.tracking # 高亮当前阅读位置
    - navigation.top # 返回顶部按钮
    # 更精细的折叠控制通常通过`navigation.indexes`或`navigation.instant`等特性组合实现

mkdocs-material 的侧边栏导航默认就是可折叠的。当你有一个嵌套的文档结构时,父级目录旁边会出现一个可点击的三角图标,点击即可展开或折叠其下的所有子页面。

如果你的目录结构没有自动折叠/展开,请检查你的文档组织结构。一个典型的、能正确触发折叠功能的 nav 配置如下:

nav:
  - Home: index.md
  - User Guide:
    - Introduction: user-guide/intro.md
    - Installation: user-guide/install.md
    - Configuration:
      - Basic: user-guide/config/basic.md
      - Advanced: user-guide/config/advanced.md
  - API Reference:
    - Overview: api/overview.md
    - Functions: api/functions.md

在这个结构中,“User Guide”和其下的“Configuration”都是可折叠的章节。

核心要点:使用 mkdocs-material 主题并正确组织 nav 配置是实现目录折叠最标准的方法。无需自己写JavaScript或CSS。

如果因为某些原因不能使用 mkdocs-material,而必须使用其他主题(如 readthedocs),那么实现折叠会非常麻烦,通常需要自己编写并注入JavaScript代码来操作DOM,这超出了MkDocs的标准支持范围,也不建议这么做。

总结:用 mkdocs-material 主题。

回到顶部