You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在mkdocs.yml中使用build_date_utc设置版权年份

问题原因

build_date_utc 是Mkdocs构建时注入到主题模板Jinja上下文的变量,只能在主题的HTML模板文件中被解析渲染,直接写在mkdocs.yml的copyright配置项中的Jinja语法不会被识别,会原样输出到最终HTML中,因此你之前的配置无法生效。

正确实现步骤(以常用的mkdocs-material主题为例,其他主题逻辑一致,仅模板路径略有差异)

  1. 新建自定义模板目录
    在项目的docs目录下创建层级目录 overrides/partials,用于存放自定义的主题模板文件。
  2. 配置自定义模板路径
    在mkdocs.yml中添加配置,指定自定义模板的根目录:
theme:
  name: material # 替换为你实际使用的主题名称
  custom_dir: docs/overrides
  1. 覆盖版权渲染模板
    从你使用的主题源码中找到版权对应的模板文件(mkdocs-material中为partials/copyright.html),将其复制到刚才创建的overrides/partials目录下,修改该文件的内容为你需要的版权格式,直接调用build_date_utc.year变量即可:
<div class="copyright">
  &copy; 2017 - {{ build_date_utc.year }} <a href='https://example.org' target='_blank'>Example</a>
</div>

如果不想把版权内容硬写在模板里,也可以用占位符替换的方式实现:

  • 先在mkdocs.yml中配置版权,用自定义占位符代替年份:
copyright: "&copy; 2017 - {current_year} <a href='https://example.org' target='_blank'>Example</a>"
  • 再修改copyright.html模板,用Jinja过滤器替换占位符:
<div class="copyright">
  {{ config.copyright.replace("{current_year}", build_date_utc.year) }}
</div>

重新执行mkdocs build后,生成的页面就会自动渲染构建时的年份了。

内容的提问来源于stack exchange,提问作者Irina S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 22:45:04