发布文档站¶
开源项目主页上那种带搜索、左侧目录、深色主题的网站,几乎都不是手写 HTML。套路是:
Python 项目(FastAPI、Pydantic、httpx、Textual)普遍用 MkDocs + Material 主题。JavaScript 项目常用 Docusaurus / VitePress。更老的 Python 库用 Sphinx。本仓库走第一条。
本地看¶
改 docs/ 下的 Markdown,浏览器 http://127.0.0.1:8000 会热更新。site/ 是生成结果,不要提交(已在 .gitignore)。
只生成、不启动服务:
别人怎么看到:GitHub Pages¶
- 把这个仓库推到 GitHub(公开仓库 Pages 免费)。
- 打开仓库 Settings → Pages:
- Source 选 GitHub Actions(本仓库已带 workflow),或
- 等第一次
mkdocs gh-deploy推送gh-pages分支后,Source 选 Deploy from a branch →gh-pages// (root)。 - 推送到
main(或master)后,.github/workflows/docs.yml会执行mkdocs gh-deploy --force。 - 几分钟后打开:
https://<你的用户名>.github.io/<仓库名>/
本仓库是 https://ferbylv.github.io/harness/。
第一次发布前,改 mkdocs.yml 里这三行,和真实仓库一致:
repo_url: https://github.com/<user>/<repo>
repo_name: <user>/<repo>
site_url: https://<user>.github.io/<repo>/
项目站(user.github.io/repo/)必须带仓库名那段路径,否则 CSS / 链接会 404。
手动发一次(不经过 Actions)¶
仓库已经 git push 到 GitHub 之后:
它会构建站点、提交到 gh-pages 分支并推上去。日常还是让 Actions 在每次 push 时自动发。
和「只写 README」的差别¶
| README | 文档站 | |
|---|---|---|
| 别人打开仓库时看到 | GitHub 渲染的这一页 | 独立域名/Pages 上的多页网站 |
| 搜索、目录、主题 | 没有 | 有 |
| 怎么更新 | 改 Markdown,push | 同样改 Markdown,push 后 CI 重建 HTML |
README 继续当仓库封面;详细指南放 docs/,由本站承载。
其它托管(可选)¶
- Read the Docs:连上 GitHub,选 MkDocs,它帮你构建。URL 形如
harness.readthedocs.io。 - Cloudflare Pages / Netlify:构建命令
mkdocs build,发布目录site。
本项目默认只用 GitHub Pages,零额外账号。