L
O
A
D
I
N
G

解决自定义模板不能生成abbrlink


解决自定义模板不能生成abbrlink

hexo博客可以在站点目录的scaffolds下自定义文章模版,为文章撰写提供方便。

scaffolds下默认有三种模版:

  • draft
  • post
  • page

但是站主在使用自定义的模版新建文章时,却发现了一个问题:使用自定义模板新建文章不能自动生成abbrlink短链。

这里补充一下短链相关知识,以及为什么要使用短链。

Hexo默认的静态URL格式是 :year/:month/:day/:title,即按年、月、日、标题的形式生成固定链接。例如:http://www.xxx.com/2022/11/11/hello-world

默认URL的格式会产生很多斜杠,百度蜘蛛在抓取网页时会根据网页权重抓取网页,比如最先抓取的首页(一般都是自己的域名,比较简短),因此在链接里不宜出现过多的斜杠,最好不要超过两个。还有一个问题就是,如果文章的标题使用了中文,经过转码后,URL会变得特别长。

使用hexo-abbrlinkhexo-abbrlink2插件便可解决以上问题,以往修改标题会导致原始链接失效,使用这个插件后只要不更改文章中的abbrlink值,文章的链接就会是持久的。

相较于hexo-abbrlinkhexo-abbrlink2可以从1开始依次增长。

回归正题,上网查找资料后发现:一些插件默认只针对post模版,如hexo-abbrlink,而我使用的是自定义模板essay创建文章,不被hexo-abbrlink所支持,所以不会自动生成abbrlink。

本想自己试试基于hexo-abbrlink插件修改原代码逻辑,使之支持更多的模版,但是上网看到已经有大佬遇到了这个问题并给出解决方法,大佬已经基于原插件开发了[hexo-abbrlink3](JunKuangKuang/hexo-abbrlink3: create one and only link for every post for hexo (github.com)),所以就不重复造轮子了。

后续就是跟着大佬的博客操作就行。

注意:在新建文章时,hexo-abbrlink插件不会立即给文章自动填充abbrlink,只有在你使用hexo g命令后,就会发现文章的abbrlink已经被自动填充了。

升级:

  1. 新建文章好像不能包含front-matter的关键词,否则会出问题?
  2. 能否设置插件代码自动识别scaffolds下的所有模版?

文章作者: loyeh
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 loyeh !
评论
  目录