JingBin's Home

hexo permalink设置技巧

背景

之前的文章有幸被鸿洋的公众号收录,文章内引用了博客中的一篇文章链接:https://jingbin.me/2017/11/23/%E5%BC%80%E5%8F%91%E4%B8%AD%E6%89%80%E9%81%87%E9%97%AE%E9%A2%98%E5%BD%92%E7%BA%B3/;着实尴尬,因为默认生成的文章链接是:year/:month/:day/:title/,里面的汉字经过转义,导致了这样的结局。

永久链接

看一下永久链接(Permalinks)的解释,在站点的_config.yml中,生成的文章链接默认为:

1
2
permalink: :year/:month/:day/:title/
permalink_defaults:

因为title可能为中文,那生成的链接就可能为上面的情况,这时候我们希望自己在每篇文章的Front-matter中指定一个字段,然后替换title,这样就可以显示我们自己定义的url了,例如:

  • permalink: :year/:month/:day/:urlname/
  • permalink: post/:urlname/
1
2
3
4
permalink: :year/:month/:day/:urlname/
# 当没有urlname时显示什么,写上 :title 也没有用,会作为字符串处理
permalink_defaults:
urlname: index

因为之前文章的形式是:year/:month/:day/:title/,为了保留以前的文章阅读数,这里我使用第一种形式,然后在以前每篇文章的Front-matter中加上urlname,保持和以前的文章链接一致就可以了,例子:

1
2
3
4
5
6
7
8
9
10
---
title: 《Android群英传 神兵利器》读书笔记
urlname: 《Android群英传-神兵利器》读书笔记
date: 2018-02-04 23:16:31
tags:
- Android
- Books
- 工具
categories: Android
---

注意:标题上的空格,有时候转义为“%20”,有时候则为“-”。其他的特殊字符也要注意,不然和以前的文章就不是一个链接了!

为了每次hexo new “my new blog title”时就有urlname字段,我们可以在scaffolds/post.md里配上这个字段,例如:

1
2
3
4
5
6
7
---
title: {{ title }}
urlname:
date: {{ date }}
tags:
categories:
---

这样生成的链接形式就是这样了:https://jingbin.me/2018/06/06/set-hexo-permalink/

总结一下

  • 修改站点文件_config.yml中的permalink
    1
    2
    3
    permalink: :year/:month/:day/:urlname/
    permalink_defaults:
    urlname: index
  • scaffolds/post.md里配上urlname字段:
    1
    2
    3
    4
    5
    6
    7
    ---
    title: {{ title }}
    urlname:
    date: {{ date }}
    tags:
    categories:
    ---

hexo遇到的问题

hexo d卡很久

之前遇到的一个问题,折磨了几天,和这篇文章无关,现记录在这里:
hexo d命令部署的时候总是会卡住很久,只用hexo d -debug查看日志发现信息一直在循环:

1
2
3
4
5
6
7
8
9
10
11
12
▶ hexo d -debug
INFO Start processing
INFO Files loaded in 620 ms
INFO Start processing
INFO Files loaded in 342 ms
...
INFO Start processing
INFO Files loaded in 274 ms
INFO 0 files generated in 381 ms
INFO Start processing
^C
Bye!

这里和另一个使用hexo的人情况一致,hexo deploy 命令卡住的奇怪问题,参考他的解决方法还是没有解决,估计每个人产生的原因可能不一致,最后删除db.json 文件才好了。

debug预览错误提示

TypeError: The header content contains invalid characters

网上有说是链接上有中文的原因,不过是2016年的了。

我的是使用了![图片](图片)这样的文本,本想做一个占位然后后期补上的,不过加上这个会导致错误!

相关文章