Hexo 博客的一些功能,比如评论,阅读数等,可能需要文章的唯一标识。Hexo 默认下没有 id,在之前,一般是用 url 作为这个标识。但是 url 是可能被改变的,所以就想增加一个 id 字段。使用 hexo-incremental-id
插件可以解决这个问题,但是这个插件为以前的文章添加 id 时不是按时间顺序的,有些微强迫症的我难免不大愿意,于是就想自己解决,为以前的文章按其时间顺序添加 id。
思路很简单,写一个 shell 脚本,把文章按时间顺序列出来,然后调用这个脚本为文章添加 id,并把 id 更新到脚本中。脚本如下:
1 | !env sh |
然后 source
一下这个脚本,加载我们所定义的 addPostId
函数。接下来在文章源目录运行如下命令:
1 | for file in `ls -tr `; do head -n 10 $file |grep "id: [0-9]\+" || addPostId $file; done; |
简要解释一下, ls -tr
是按从旧到新的时间顺序列出文件,然后判断前 10 行中是否有 id: 数字
这一项,如果没有,就调用 addPostId
函数添加 id
。
添加完成之后,再安装 hexo-incremental-id
插件,之后创建新文章时都会有 id 了。