Hexo 和 Next主题,如何添加标签和分类
如果在Hexo中遇到下面这个问题:
1 | Cannot GET /tags/ |
那可能是没创建标签相关的页面。
以Hexo+Next为例,创建标签页面很简单,只有四步:
- 创建对应的页面。
- 修改页面的
Front-matter
属性。 - 新增Next主题的菜单入口。
- 在文章中添加对应的
Front-matter
属性。
下面我先以标签(tags)
页面为例,分类(categories)
页面同理。
一、创建对应的页面
使用下面命令创建一个标签页面:
1 | hexo new page tags |
默认设置的情况下,会在路径source\tags\index.md
创建出index.md
文件:
二、修改页面的Front-matter
属性
刚才创建出来的文件是这样的,默认会给一个标题title
和创建文件的时间date
:
1 | # source\tags\index.md |
在Front-matter
中,我删掉了时间(因为用不到),并添加额外的属性type
:
1 | # source\tags\index.md |
三、新增Next主题的菜单入口。
如果不是使用Next主题的,可以掠过这步。这步其实是在Next主题下,可以新增一个标签的菜单入口。
如果博客使用的是Next主题,可以在主题配置文件中打开以下属性:
1 | # themes\scallop\_config.yml |
后续就可以看到Next主题提供的标签菜单入口了。
四、在文章中添加对应的Front-matter
属性
在文章中新增代表标签的tags
属性,分类categories
同理:
1 | source\_posts\hello-world.md |
总结
至此,完成上面四步,博客的标签功能就算搭好了。分类功能也是类似的修改。
若是要创建分类页面则第一步执行的是下面命令:
1 | hexo new page categories |
后续步骤也是做出相似的修改即可。
题外话
标签相对好理解,标签与标签之间都是相对独立的。并没有A标签属于B标签
,或者B标签是A标签的一部分
这种说法。
但分类和标签并不一样。例如某一篇文章属于日记这个分类,并且有PS3和Games标签:
1 | categories: |
并且对于Hexo来说,不支持指定多个同级分类:
1 | categories: |
上面这样的分类代表:Life 是 Diary 的一部分。也就是说 Life 成为了 Diary 的子分类,而不是并列分类。
如果你需要为文章添加多个分类,可以尝试以下方法:
1 | categories: |
这样的属性代表这篇文章同时包括三个分类。PlayStation 和 Games 分别都是父分类 Diary 的子分类。而同时 Life 是一个没有子分类的分类。