解决自定义模板不能生成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-abbrlink
或hexo-abbrlink2
插件便可解决以上问题,以往修改标题会导致原始链接失效,使用这个插件后只要不更改文章中的abbrlink值,文章的链接就会是持久的。
相较于hexo-abbrlink
,hexo-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已经被自动填充了。
升级:
- 新建文章好像不能包含front-matter的关键词,否则会出问题?
- 能否设置插件代码自动识别scaffolds下的所有模版?