如何在mkdocs-material文档主题下设置多版本文档系统?
1|0引言
前一段时间,参与了PaddleOCR开源项目的文档站点搭建工作,基于mkdocs工具,采用mkdocs-material主题,基于Github Pages来搭建整个文档站点。目前该站点已经搭建完毕, 支持多语言、文档搜索等诸多功能。
最近得知,PaddleOCR文档站点需要支持多版本文档功能。这个需求是可以实现的,因为当时调研各个文档工具时,mkdocs-material是支持部署多版本的文档需求的。
经过查看mkdocs-material使用文档以及查看网上其他小伙伴教程,总算将该部分实现了。在查找相关资料过程中,我发现没有一个较为完整清晰的文章来具体说明如何部署使用多版本文档站点的。因此,就有了本篇文章。
2|0最终效果
- 文档站点默认为main分支下对应的文档内容
- 如果release代码时,会自动根据tag名称为当前文档生成tag对应的文档站点版本。类似如下(来源link):
3|0部署步骤
3|1Step1: 配置mkdocs.yml文件
具体源码可参见PaddleOCR中mkdocs.yml
中写法 → link
3|2Step2: 编写对应的workflow配置文件
该部分分为了2个workflow,一个是日常更新main分支,自动发布到对应文档版本下;另外一个是release tag时,自动发版到对应tag的文档站点。
build_publish_develop_docs.yml
- 注意上述配置文件中的
pip install mike
。整个多版本的文档站点功能支持得益于mike这个库。这个是必不可少的。 git fetch origin gh-pages --depth=1
这一步是为了先同步原有gh-pages
分支代码。如果不存在gh--pages
分支,需要先注释掉这行代码,等自动创建该分支后,再取消该行注释即可。mike deploy --push --update-aliases main latest
: mike命令包含了原有的mkdocs的命令,因此这里可以只写mike deploy
即可
build_publish_release_docs.yml
- 该配置文件与上一个区别在于:更改了触发条件。改为了打tag时,tag名称是以v开头时自动触发。这一点体现在代码:
- 发布对应的tag号的文档站点功能,体现在倒数第二行中
mike deploy --push "${{ github.ref_name }}" latest
下。其中${{ github.ref_name }}
会获得tag名称
3|3Step3: 提交到仓库,自动生成文档站点即可
具体相关源码,请参考PaddleOCR项目,有不明白的问题可以在评论区指出。
__EOF__

本文作者:Danno
本文链接:https://www.cnblogs.com/shiwanghualuo/p/18464464.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/shiwanghualuo/p/18464464.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
-----------------------------------------
你驻足于春色中,于那独一无二的春色之中。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理