# 文档版本管理

> 为多个文档版本自定义导航与提示横幅。

---

LLMS index: [llms.txt](/llms.txt)

---

<!-- markdownlint-disable blanks-around-headings no-bare-urls single-h1 -->

根据项目的发布和版本管理方式，你可能需要让用户访问旧版文档。旧版本的具体部署方式由你决定。本页介绍 OINK 提供的功能：在各个文档版本之间导航，并在归档站点上显示信息横幅。

## 添加版本下拉菜单 {#adding-a-version-drop-down-menu}

如果在 `hugo.toml`、`hugo.yaml` 或 `hugo.json` 中添加
`[params.versions]`，OINK 会在顶部导航栏加入版本下拉选择器。请为每个需要加入菜单的版本指定 URL 和名称，例如：

<!-- markdownlint-disable no-shortcut-ref-link -->
<!-- prettier-ignore-start -->





<ul class="nav nav-tabs" id="tabs-0" role="tablist"><li class="nav-item"><button class="nav-link disabled" id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab" aria-controls="tabs-00-00" aria-selected="false" disabled aria-disabled="true">配置文件：</button></li><li class="nav-item"><button class="nav-link active" id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab" data-td-tp-persist="toml" aria-controls="tabs-00-01" aria-selected="true">hugo.toml</button></li><li class="nav-item"><button class="nav-link" id="tabs-00-02-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-02" role="tab" data-td-tp-persist="yaml" aria-controls="tabs-00-02" aria-selected="false">hugo.yaml</button></li><li class="nav-item"><button class="nav-link" id="tabs-00-03-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-03" role="tab" data-td-tp-persist="json" aria-controls="tabs-00-03" aria-selected="false">hugo.json</button></li></ul>

<div class="tab-content" id="tabs-0-content"><div class="tab-pane fade" id="tabs-00-00" role="tabpanel" aria-labelledby="tabs-00-00-tab" tabindex="0"><pre tabindex="0"><code></code></pre></div><div class="tab-pane fade show active" id="tabs-00-01" role="tabpanel" aria-labelledby="tabs-00-01-tab" tabindex="0"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="c"># Add your release versions here</span>
</span></span><span class="line"><span class="cl"><span class="p">[[</span><span class="nx">params</span><span class="p">.</span><span class="nx">versions</span><span class="p">]]</span>
</span></span><span class="line"><span class="cl">  <span class="nx">version</span> <span class="p">=</span> <span class="s2">&#34;master&#34;</span>
</span></span><span class="line"><span class="cl">  <span class="nx">url</span> <span class="p">=</span> <span class="s2">&#34;https://master.kubeflow.org&#34;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">[[</span><span class="nx">params</span><span class="p">.</span><span class="nx">versions</span><span class="p">]]</span>
</span></span><span class="line"><span class="cl">  <span class="nx">version</span> <span class="p">=</span> <span class="s2">&#34;v0.2&#34;</span>
</span></span><span class="line"><span class="cl">  <span class="nx">url</span> <span class="p">=</span> <span class="s2">&#34;https://v0-2.kubeflow.org&#34;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">[[</span><span class="nx">params</span><span class="p">.</span><span class="nx">versions</span><span class="p">]]</span>
</span></span><span class="line"><span class="cl">  <span class="nx">version</span> <span class="p">=</span> <span class="s2">&#34;v0.3&#34;</span>
</span></span><span class="line"><span class="cl">  <span class="nx">url</span> <span class="p">=</span> <span class="s2">&#34;https://v0-3.kubeflow.org&#34;</span></span></span></code></pre></div></div><div class="tab-pane fade" id="tabs-00-02" role="tabpanel" aria-labelledby="tabs-00-02-tab" tabindex="0"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">params</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">versions</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span>- <span class="nt">version</span><span class="p">:</span><span class="w"> </span><span class="l">master</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">url</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;https://master.kubeflow.org&#39;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span>- <span class="nt">version</span><span class="p">:</span><span class="w"> </span><span class="l">v0.2</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">url</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;https://v0-2.kubeflow.org&#39;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span>- <span class="nt">version</span><span class="p">:</span><span class="w"> </span><span class="l">v0.3</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">url</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;https://v0-3.kubeflow.org&#39;</span></span></span></code></pre></div></div><div class="tab-pane fade" id="tabs-00-03" role="tabpanel" aria-labelledby="tabs-00-03-tab" tabindex="0"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;params&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;versions&#34;</span><span class="p">:</span> <span class="p">[</span>
</span></span><span class="line"><span class="cl">      <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="nt">&#34;version&#34;</span><span class="p">:</span> <span class="s2">&#34;master&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">        <span class="nt">&#34;url&#34;</span><span class="p">:</span> <span class="s2">&#34;https://master.kubeflow.org&#34;</span>
</span></span><span class="line"><span class="cl">      <span class="p">},</span>
</span></span><span class="line"><span class="cl">      <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="nt">&#34;version&#34;</span><span class="p">:</span> <span class="s2">&#34;v0.2&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">        <span class="nt">&#34;url&#34;</span><span class="p">:</span> <span class="s2">&#34;https://v0-2.kubeflow.org&#34;</span>
</span></span><span class="line"><span class="cl">      <span class="p">},</span>
</span></span><span class="line"><span class="cl">      <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="nt">&#34;version&#34;</span><span class="p">:</span> <span class="s2">&#34;v0.3&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">        <span class="nt">&#34;url&#34;</span><span class="p">:</span> <span class="s2">&#34;https://v0-3.kubeflow.org&#34;</span>
</span></span><span class="line"><span class="cl">      <span class="p">}</span>
</span></span><span class="line"><span class="cl">    <span class="p">]</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div></div>
</div>

<!-- prettier-ignore-end -->
<!-- markdownlint-enable no-shortcut-ref-link -->

别忘了加入当前版本，这样用户才能返回！

版本下拉菜单的默认标题是 **Releases**。要修改标题，请在 `hugo.toml`、`hugo.yaml`
或 `hugo.json` 中调整站点参数 `version_menu`：

<!-- markdownlint-disable no-shortcut-ref-link -->
<!-- prettier-ignore-start -->





<ul class="nav nav-tabs" id="tabs-1" role="tablist"><li class="nav-item"><button class="nav-link disabled" id="tabs-01-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-00" role="tab" aria-controls="tabs-01-00" aria-selected="false" disabled aria-disabled="true">配置文件：</button></li><li class="nav-item"><button class="nav-link active" id="tabs-01-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-01" role="tab" data-td-tp-persist="toml" aria-controls="tabs-01-01" aria-selected="true">hugo.toml</button></li><li class="nav-item"><button class="nav-link" id="tabs-01-02-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-02" role="tab" data-td-tp-persist="yaml" aria-controls="tabs-01-02" aria-selected="false">hugo.yaml</button></li><li class="nav-item"><button class="nav-link" id="tabs-01-03-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-03" role="tab" data-td-tp-persist="json" aria-controls="tabs-01-03" aria-selected="false">hugo.json</button></li></ul>

<div class="tab-content" id="tabs-1-content"><div class="tab-pane fade" id="tabs-01-00" role="tabpanel" aria-labelledby="tabs-01-00-tab" tabindex="0"><pre tabindex="0"><code></code></pre></div><div class="tab-pane fade show active" id="tabs-01-01" role="tabpanel" aria-labelledby="tabs-01-01-tab" tabindex="0"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="p">[</span><span class="nx">params</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="nx">version_menu</span> <span class="p">=</span> <span class="s2">&#34;Releases&#34;</span></span></span></code></pre></div></div><div class="tab-pane fade" id="tabs-01-02" role="tabpanel" aria-labelledby="tabs-01-02-tab" tabindex="0"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">params</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">version_menu</span><span class="p">:</span><span class="w"> </span><span class="l">Releases</span></span></span></code></pre></div></div><div class="tab-pane fade" id="tabs-01-03" role="tabpanel" aria-labelledby="tabs-01-03-tab" tabindex="0"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;params&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;version_menu&#34;</span><span class="p">:</span> <span class="s2">&#34;Releases&#34;</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div></div>
</div>

<!-- prettier-ignore-end -->
<!-- markdownlint-enable no-shortcut-ref-link -->

如果把 `version_menu_pagelinks` 参数设为
`true`，版本下拉菜单会链接到其他版本中的当前页面，而不是它们的首页。如果文档在不同版本之间变化不大，这项功能会很有用。请注意：如果当前页面在另一版本中不存在，链接就会失效。

还可以分别配置每个菜单项：

- 如果菜单标签不是版本号，使用 `name` 代替 `version`。
- 将 `name` 设为 `---` 可添加菜单分隔线。
- 省略 `url` 可渲染禁用的文本项，例如分组标题。
- 设置 `kind` 可添加与类型对应的 CSS 类。详情请参阅[导航与菜单][]。
- 即使全局 `version_menu_pagelinks` 参数为 `true`，仍可在某个菜单项上设置
  `pagelinks: false`，让它始终链接到该版本首页。

例如：

```yaml
params:
  version_menu: v1.2
  version_menu_pagelinks: true
  versions:
    - name: '**Versions**'
    - version: v1.3-dev
      kind: next
      url: https://next.example.com
    - version: v1.2
      kind: latest
      url: https://docs.example.com
    - name: ---
    - name: Preview variant
      kind: home
      pagelinks: false
      url: https://preview.example.com
```

要进一步了解 OINK 菜单，请参阅[导航与菜单][]。

[导航与菜单]: /zh/docs/content/navigation/#version-menu

## 在归档文档站点显示横幅 {#displaying-a-banner-on-archived-doc-sites}

如果为旧版文档创建归档快照，可以在归档文档的每个页面顶部添加提示，告诉读者他们正在查看不再维护的快照，并提供指向最新版本的链接。

例如，可以查看 [Kubeflow v0.6 归档文档](https://v0-6.kubeflow.org/docs/)：

<figure>
  <img src="/images/version-banner.png"
       alt="一个文本框，说明当前页面是不再维护的文档快照。"
       class="mt-3 mb-3 border border-info rounded" />
  <figcaption>图 1：Kubeflow v0.6 归档文档中的横幅</figcaption>
</figure>

要在文档站点加入横幅，请在 `hugo.toml`、`hugo.yaml` 或 `hugo.json`
中完成以下修改：

<!-- markdownlint-disable no-shortcut-ref-link -->
<!-- prettier-ignore-start -->

1. 将站点参数 `archived_version` 设为 `true`：

    




    <ul class="nav nav-tabs" id="tabs-2" role="tablist"><li class="nav-item"><button class="nav-link disabled" id="tabs-02-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-02-00" role="tab" aria-controls="tabs-02-00" aria-selected="false" disabled aria-disabled="true">配置文件：</button></li><li class="nav-item"><button class="nav-link active" id="tabs-02-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-02-01" role="tab" data-td-tp-persist="toml" aria-controls="tabs-02-01" aria-selected="true">hugo.toml</button></li><li class="nav-item"><button class="nav-link" id="tabs-02-02-tab" data-bs-toggle="tab" data-bs-target="#tabs-02-02" role="tab" data-td-tp-persist="yaml" aria-controls="tabs-02-02" aria-selected="false">hugo.yaml</button></li><li class="nav-item"><button class="nav-link" id="tabs-02-03-tab" data-bs-toggle="tab" data-bs-target="#tabs-02-03" role="tab" data-td-tp-persist="json" aria-controls="tabs-02-03" aria-selected="false">hugo.json</button></li></ul>

<div class="tab-content" id="tabs-2-content"><div class="tab-pane fade" id="tabs-02-00" role="tabpanel" aria-labelledby="tabs-02-00-tab" tabindex="0"><pre tabindex="0"><code></code></pre></div><div class="tab-pane fade show active" id="tabs-02-01" role="tabpanel" aria-labelledby="tabs-02-01-tab" tabindex="0"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="p">[</span><span class="nx">params</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="nx">archived_version</span> <span class="p">=</span> <span class="kc">true</span></span></span></code></pre></div></div><div class="tab-pane fade" id="tabs-02-02" role="tabpanel" aria-labelledby="tabs-02-02-tab" tabindex="0"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">params</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">archived_version</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span></span></span></code></pre></div></div><div class="tab-pane fade" id="tabs-02-03" role="tabpanel" aria-labelledby="tabs-02-03-tab" tabindex="0"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;params&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;archived_version&#34;</span><span class="p">:</span> <span class="kc">true</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div></div>
</div>


1. 将站点参数 `version` 设为归档文档集的版本。例如，如果归档文档对应 0.1 版：

    




    <ul class="nav nav-tabs" id="tabs-3" role="tablist"><li class="nav-item"><button class="nav-link disabled" id="tabs-03-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-03-00" role="tab" aria-controls="tabs-03-00" aria-selected="false" disabled aria-disabled="true">配置文件：</button></li><li class="nav-item"><button class="nav-link active" id="tabs-03-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-03-01" role="tab" data-td-tp-persist="toml" aria-controls="tabs-03-01" aria-selected="true">hugo.toml</button></li><li class="nav-item"><button class="nav-link" id="tabs-03-02-tab" data-bs-toggle="tab" data-bs-target="#tabs-03-02" role="tab" data-td-tp-persist="yaml" aria-controls="tabs-03-02" aria-selected="false">hugo.yaml</button></li><li class="nav-item"><button class="nav-link" id="tabs-03-03-tab" data-bs-toggle="tab" data-bs-target="#tabs-03-03" role="tab" data-td-tp-persist="json" aria-controls="tabs-03-03" aria-selected="false">hugo.json</button></li></ul>

<div class="tab-content" id="tabs-3-content"><div class="tab-pane fade" id="tabs-03-00" role="tabpanel" aria-labelledby="tabs-03-00-tab" tabindex="0"><pre tabindex="0"><code></code></pre></div><div class="tab-pane fade show active" id="tabs-03-01" role="tabpanel" aria-labelledby="tabs-03-01-tab" tabindex="0"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="p">[</span><span class="nx">params</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="nx">version</span> <span class="p">=</span> <span class="s2">&#34;0.1&#34;</span></span></span></code></pre></div></div><div class="tab-pane fade" id="tabs-03-02" role="tabpanel" aria-labelledby="tabs-03-02-tab" tabindex="0"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">params</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">version</span><span class="p">:</span><span class="w"> </span><span class="m">0.1</span></span></span></code></pre></div></div><div class="tab-pane fade" id="tabs-03-03" role="tabpanel" aria-labelledby="tabs-03-03-tab" tabindex="0"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;params&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;version&#34;</span><span class="p">:</span> <span class="s2">&#34;0.1&#34;</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div></div>
</div>


1. 确认站点参数 `url_latest_version` 包含希望读者前往的网站 URL。大多数情况下，它应该是最新版文档的 URL：

    




    <ul class="nav nav-tabs" id="tabs-4" role="tablist"><li class="nav-item"><button class="nav-link disabled" id="tabs-04-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-04-00" role="tab" aria-controls="tabs-04-00" aria-selected="false" disabled aria-disabled="true">配置文件：</button></li><li class="nav-item"><button class="nav-link active" id="tabs-04-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-04-01" role="tab" data-td-tp-persist="toml" aria-controls="tabs-04-01" aria-selected="true">hugo.toml</button></li><li class="nav-item"><button class="nav-link" id="tabs-04-02-tab" data-bs-toggle="tab" data-bs-target="#tabs-04-02" role="tab" data-td-tp-persist="yaml" aria-controls="tabs-04-02" aria-selected="false">hugo.yaml</button></li><li class="nav-item"><button class="nav-link" id="tabs-04-03-tab" data-bs-toggle="tab" data-bs-target="#tabs-04-03" role="tab" data-td-tp-persist="json" aria-controls="tabs-04-03" aria-selected="false">hugo.json</button></li></ul>

<div class="tab-content" id="tabs-4-content"><div class="tab-pane fade" id="tabs-04-00" role="tabpanel" aria-labelledby="tabs-04-00-tab" tabindex="0"><pre tabindex="0"><code></code></pre></div><div class="tab-pane fade show active" id="tabs-04-01" role="tabpanel" aria-labelledby="tabs-04-01-tab" tabindex="0"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="p">[</span><span class="nx">params</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="nx">url_latest_version</span> <span class="p">=</span> <span class="s2">&#34;https://your-latest-doc-site.com&#34;</span></span></span></code></pre></div></div><div class="tab-pane fade" id="tabs-04-02" role="tabpanel" aria-labelledby="tabs-04-02-tab" tabindex="0"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">params</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">url_latest_version</span><span class="p">:</span><span class="w"> </span><span class="l">https://your-latest-doc-site.com</span></span></span></code></pre></div></div><div class="tab-pane fade" id="tabs-04-03" role="tabpanel" aria-labelledby="tabs-04-03-tab" tabindex="0"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&#34;params&#34;</span><span class="p">:</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&#34;url_latest_version&#34;</span><span class="p">:</span> <span class="s2">&#34;https://your-latest-doc-site.com&#34;</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div></div>
</div>


<!-- prettier-ignore-end -->
<!-- markdownlint-enable no-shortcut-ref-link -->
