前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动更新文件中的修改时间

自动更新文件中的修改时间

作者头像
飞驰的西瓜
发布2022-07-26 16:42:13
8820
发布2022-07-26 16:42:13
举报
文章被收录于专栏:EmacsTalk

写博客多年,除了 EmacsTalk[3] 这个网站,我还有个 Keep Coding[4] 的个人博客。写博客的好处这里不想多说,可以参考这篇文章:

•[BetterExplained]为什么你应该(从现在开始就)写博客 – 刘未鹏 | Mind Hacks[5]

一般来说,文章发布后,后续经常会有更新,因为观点可能随着时间会变,而且也很难保证之前的内容准确无误。我看其他人的文章时,也会留意这个文章最近是不是有更新过。如果很久没更新了,那文章的参考价值将大打折扣。

对于使用 hugo 建站的文章来说,主要就是 date、lastmod 两个字段:

•date 是指文件的创建时间,这个一般不用改

•lastmod 是指文件最后一次更新时间,很明显每次改动文件时都需要改动

hugo 提供了非常方便的配置[6],来动态获取文件的更新时间,比如以下配置:

代码语言:javascript
复制
enableGitInfo = true

[frontmatter]
  lastmod = [':git', 'lastmod', ':fileModTime', ':default']

frontmatter 里面的 lastmod 字段表示『更新时间』的获取方式,依次为:

:git 从文件的 git 提交记录获取

lastmod 从文件中的 lastmod 字段获取

:fileModTime' 从文件修改时间获取

我个人比较倾向 :git ,读者可根据自身情况调整配置顺序。

最近逛 Managing your life and work with Emacs[7] 时发现,Emacs 默认就提供了修改文件更新时间的功能,配置如下:

代码语言:javascript
复制
(setq time-stamp-start "#\\+LASTMOD:[ \t]*"
      time-stamp-end  "$"
      time-stamp-format "%Y-%m-%dT%02H:%02m:%02S%5z")

;; 然后在博客根目录的 .dir-locals 中添加如下代码即可
((org-mode . ((eval . (add-hook 'before-save-hook 'time-stamp nil t)))))

time-stamp 函数会根据 time-stamp-start 指定的模式进行匹配,之后换成 time-stamp-format 指定的时间格式。比如有个页面[8]配置如下:

代码语言:javascript
复制
#+TITLE: 关于
#+DATE: 2021-06-26T13:06:19+0800
#+LASTMOD: 2021-12-28T23:12:23+0800

那么在每次保存 org 时,都会自动去更新 #+LASTMOD: 的值。

其实,time-stamp[9] 这个函数可以作用在任何文件中,定义好匹配的模式就好了,是不是很强大呢?

引用链接

[1] Podcast 嘉宾: https://github.com/emacstalk/joinus [2] 投稿: https://github.com/EmacsTalk/emacstalk.github.io/issues/new [3] EmacsTalk: https://emacstalk.github.io/ [4] Keep Coding: https://liujiacai.net/ [5] [BetterExplained]为什么你应该(从现在开始就)写博客 – 刘未鹏 | Mind Hacks: http://mindhacks.cn/2009/02/15/why-you-should-start-blogging-now/ [6] 配置: https://gohugo.io/getting-started/configuration/#configure-front-matter [7] Managing your life and work with Emacs: https://github.com/pprevos/EmacsLife [8] 页面: https://github.com/EmacsTalk/emacstalk.github.io/blob/master/content/about.org [9] time-stamp: https://www.gnu.org/software/emacs/manual/html_node/emacs/Time-Stamps.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 EmacsTalk 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引用链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档