Skip to content

设置版本控制

MkDocs 的 Material 插件让您可以轻松地部署项目文档的多个版本,它通过整合外部工具(如mike)来为 MkDocs 添加这些功能。当部署新版本时,旧版本的文档将保持不变。

配置

版本控制

mike使得部署项目文档的多个版本变得简单。它可以与 MkDocs 的 Material 插件原生集成,并可以通过mkdocs.yml启用:

extra:
  version:
    provider: mike

这将在头部渲染一个版本选择器:

为什么使用 mike?

mike的构建理念是,一旦你为特定版本生成了文档,就再也不需要触碰那个版本。这意味着你无需担心MkDocs的破坏性更改,因为你的旧文档(用旧版本的MkDocs构建的)已经生成并存在你的gh-pages分支中。

虽然mike很灵活,但它主要是围绕将你的文档放在<major>.<minor>目录中进行优化,可选的别名(如latestdev)指向特别重要的版本。这使得创建到你想指向的文档版本的永久链接变得简单。

版本警告

如果你正在使用版本控制,你可能希望在用户访问最新版本以外的任何其他版本时显示警告。使用主题扩展,你可以覆盖outdated

{% extends "base.html" %} {% block outdated %} 你没有查看最新版本。
<a href="{{ '../' ~ base_url }}">
  <!-- (1)! -->
  <strong>点击这里跳转到最新版本。</strong>
</a>
{% endblock %}
  1. 对于href属性的这个值,链接将始终重定向到你的站点的根目录,然后再重定向到最新版本。这确保了你的站点的旧版本不依赖于特定的别名,例如latest,以便在不破坏早期版本的情况下稍后更改别名。

这将在头部上方渲染一个版本警告:

版本警告预览

默认版本由latest别名标识。如果你希望设置另一个别名作为最新版本,例如stable,请在mkdocs.yml中添加以下行:

extra:
  version:
    default: stable # (1)!

定义多个别名

你也可以定义多个别名作为默认版本,例如stabledevelopment

extra:
  version:
    default:
      - stable
      - development

现在,每个版本都有stabledevelopment别名,都不会显示版本警告。

确保一个别名匹配默认版本,因为这是用户被重定向的地方。

使用

虽然本节概述了发布新版本的基本工作流程,但最好查看mike 的文档,以熟悉其运作方式。

发布新版本

如果你想发布项目文档的新版本,选择一个版本标识符,并使用以下命令更新设置为默认版本的别名:

mike deploy --push --update-aliases 0.1 latest

请注意,每个版本都将作为你的site_url的一个子目录被部署,例如:

  • docs.example.com/0.1/
  • docs.example.com/0.2/
  • ...

设置默认版本

开始使用mike时,一个好主意是将一个别名设置为默认版本,例如latest,并在发布新版本时,始终更新别名以指向最新版本:

mike set-default --push latest

在发布新版本时,mike将在你的项目文档的根目录中创建一个重定向,指向与别名关联的版本:

_docs.example.com_ :arrow*right: \_docs.example.com/0.1*