Hexo下的永久链接

December 09, 2023
测试
测试
测试
测试
1 分钟阅读

最近在写Hexo主题的时候和在使用中,发现hexo默认生成以后的永久链接有点反人类,是根据文章标题生成的,这里也许就会出现大量中文,日文,韩文,颜文字,emoji啥的一些比较奇怪的内容,担心会出现什么灵异事件

在网上搜索了一下,有使用翻译的把文章标题翻译为单词,还有直接转拼音的,但是这样做了以后文章链接会非常的长,也感觉比较繁琐,个人感觉不是很喜欢

所以最后就自己在主题里写了一个小脚本来创建我比较喜欢的永久链接,其内容为文章的创建时间,格式为YYYY-MM-DD-HH-mm-ss,因为是个人博客,所以感觉用时间是完全足够用了,也简单明了

解决思路也很简单,给Hexo添加一个渲染之前的过滤器,在里面替换文章的slug内容为格式化以后的时间

代码如下:

hexo.extend.filter.register('before_post_render', function(data) {
  if (!hexo.theme.config.permalink) return data
  if (data.layout === "post") {
    data.slug = data.date.format("YYYY-MM-DD-HH-mm-ss");
    return data
  }
});

使用:

修改主题目录下的_config.yml设置permalinktrue

permalink: true

修改Hexo根目录下的_config.yml设置permalink,添加:slug

permalink: :year/:month/:day/:slug/
# 生成以后为: 2019/03/20/2019-03-20-19-44-16

问题:

使用以后发现使用:title以会一样生成为时间,目前还不知道为什么,嘛~我也不需要标题,所以问题不大。。。

继续阅读

更多来自我们博客的帖子

如何安装 BuddyPress
由 测试 December 17, 2023
经过差不多一年的开发,BuddyPress 这个基于 WordPress Mu 的 SNS 插件正式版终于发布了。BuddyPress...
阅读更多
Filter如何工作
由 测试 December 17, 2023
在 web.xml...
阅读更多
如何理解CGAffineTransform
由 测试 December 17, 2023
CGAffineTransform A structure for holding an affine transformation matrix. ...
阅读更多