我正在使用狮身人面像和ReadTheDocs主题进行文档项目。源文件位于gitlab上的git仓库中,我使用自动测试来检查每次合并到master分支后文档是否正确构建。我能够将成功构建的html文件存储在gitlab上,并将它们同步到我的私有服务器。但是,由于文档始终是在自动测试期间从头开始构建的,因此页面上的“上次修改时间”标志始终位于页面的上次构建时。我想避免这种情况,并保持“ Last Modified”标志为真,即我希望它显示源.rst文件的实际上次修改时间。有没有办法做到这一点?
答案 0 :(得分:2)
我知道我来晚了一些,但我刚刚创建了一个小的Sphinx扩展名,它从Git中获取了“最后修改时间”:
答案 1 :(得分:1)
我过去设法做到这一点的唯一方法是使用Git Attributes之类的东西。阅读此页面:
https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes
特别是看看标题为“关键字扩展”的部分。
答案 2 :(得分:0)
基于Kevin Horn的回答,我在gitlab服务器上自动执行的构建脚本中添加了以下内容,以实现持续集成:
bigQueryReadOnly.json
这将添加或更新将任何.rst文件更改为最后一次提交的日期至.rst文件的末尾。如果自分支偏离master分支以来文件已更改且没有修改,则所做的更改将被安静地添加到提交中。提交将在gitlab的自动测试过程中失败,但这没关系,因为正确的日期已经存在于文件中,并且可以使用cronjob从服务器端将正确的html页面构建并同步到服务器。通过手动运行脚本以快速进行清理和重建,它将可以正常工作。
凯文·霍恩(Kevin Horn)提出的解决方案的问题在于,它仅在本地运行,因为您设置了git config以便每次提交时都会自动扩展变量; Hoewer,我必须强迫我的所有协作者做完全一样的事情,这就是为什么我选择这个选项。
答案 3 :(得分:0)
您可以使用rst的Date指令。
在第一个文件的顶部或底部,添加以下文本
.. |date| date::
Last Updated on |date|
在最终版本中,仅当源rst已更新时,此日期才会更新。