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

Asciidoc中如何让{docdatetime}返回被包含章节文件的修改时间?

解决Asciidoc章节文件获取自身最后修改时间的问题

默认情况下,{docdatetime}属性返回的是顶层文件(比如你的top.adoc)的最后修改时间,要让每个章节文件显示自身的修改时间,可以用以下几种可行方案:

方案1:使用Asciidoctor内置包含文件属性

Asciidoctor会为被包含的文件自动生成上下文属性,直接在章节文件中使用{included-file-last-modified}即可获取该文件的最后修改时间,还能通过格式化语法调整显示样式:

在章节文件(如chapter1.adoc)末尾添加:

[small]
最后更新:{included-file-last-modified?date=yyyy-MM-dd HH:mm}

该属性仅在被包含的文件上下文内有效,顶层文件调用会返回空值,完全适配多章节独立文件的场景。

方案2:手动传递自定义属性(统一格式控制)

如果需要在顶层文件统一控制所有章节的日期显示格式,可以在include章节时手动传递修改时间属性:

  1. 在top.adoc中include章节时,传递自定义属性:
include::chapter1.adoc[last-updated={include-file-last-modified?date=yyyy-MM-dd}]
  1. 在对应的章节文件中引用该属性:
[small]
最后更新:{last-updated}

这种方式可以避免在每个章节文件中重复设置日期格式,适合需要统一规范的场景。

方案3:结合Git获取最后提交时间(协作场景首选)

如果文档托管在Git仓库中,想要显示章节文件最后一次被提交的时间(而非本地修改时间),可以借助Asciidoctor的Git扩展:

在章节文件中添加:

[small]
最后更新:{git-rev-time($included-file)?date=yyyy-MM-dd HH:mm}

需要提前安装asciidoctor-git gem(gem install asciidoctor-git),且当前工作目录处于Git仓库内。

注意事项

  • 以上方案均基于Asciidoctor工具,原生Asciidoc功能有限,建议使用Asciidoctor作为渲染引擎。
  • 日期格式化语法支持常见的格式符,如yyyy(四位年份)、MM(两位月份)、dd(两位日期)等。

内容的提问来源于stack exchange,提问作者David Davó

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.02 02:52:32