用 Material for MkDocs 来生成专业的技术文档
1. 概述
对于程序员来说,写技术文档是一项必备的技能。由于GitHub和Markdown格式的普及,很多时候我们可以用markdown来简便地写出技术文档,并且 通过GitHub Pages等工具快速地进行技术文档的部署。
虽然GItHub Pages默认支持静态文档框架Jekyll,也包含一些简单的主题,但对于文档和教程比较多的项目来说,使用GitHub Pages的默认部署工具还不够用,主要体现在下面几个方面:
- Markdown本身支持的语法比较简单,一些复杂的像Warning等提示没法直接用Pages的默认主题来实现
- Pages 默认显示的是单页文档,没有侧边栏、导航栏等工具
- Pages 默认主题无法搜索文档内容
- Pages 不支持选择
Linux
或Windows
后显示不同执行语句的功能 - …
Material for MkDocs 是 MkDocs的一个主题配置,同时也是一个功能齐全的静态网站生成工具,能够解决上面提到的GitHub Pages的问题。
Material for MkDocs 使用广泛,下面是一些大公司和知名开源项目的使用例子:
- AWS Copilot CLI
- Google Accompanist
- MicroSoft Code With Engineering Playbook
- Mozilla Foundation Engineering Handbook
- Netflix Titus
- CentOS Infra docs
- electron-builder
- Kubernetes
虽然我还没有比较复杂的开源项目需要用mkdocs-material来管理文档,但看到GitHub Pages的一些限制,最近有空还是学了一下这个工具,以备后续项目中使用。这里做一些简单记录,方便以后查找。
需要说明的是,Material for MkDocs 是一个比较复杂的工具,很多配置项这里没有提到,根据需要在官方Setup文档中查看使用说明。
另外一种学习配置的方式是直接查看上面提到的开源项目源码根目录下的mkdocs.yml
文件,复制这个文件过去,就能得到类似的布局效果。
这个教程里面的示例页面:https://vra.github.io/mkdocs-material-example/
示例页面的配置文件:https://github.com/vra/mkdocs-material-example/blob/main/mkdocs.yml