序本文是hexo-enchancer插件的中文版文档.英文版:https://github.com/sisyphsu/h…博文链接: https://sulin.me/2019/Z726F8….介绍hexo-enhancer是一个Hexo功能增强插件。此插件支持的功能较多,并且未来会继续增加,可以理解为插件包。到目前为止,此插件支持的功能如下:自动生成title:根据文件名自动生成标题。自动生成date:根据文件名自动生成日期,具体策略类似Jekyll。自动生成abbrlink:根据标题进行base32和crc32生成短链接。自动生成categories:根据文件的路径解析文章所属分类。自动生成tags:根据配置在_config.yml中的可用tags和keywords自动扫描文章中出现的标签。正常情况下编写的Hexo文章需要在markdown头部手动指定许多属性,例如:—title: Titledate: 2019-03-05categories: [A, B]tags: [tag1, tag2]—# TitleThis is a markdown file, in categories [A, B], with tags [tag1, tag2]. 使用hexo-enhancer插件之后,以上Front-matter完全不需要手动指定:# TitleThis is a markdown file, in categories [A, B], with tags [tag1, tag2].消失的Front-matter完全按照约定规则由hexo-enhancer自动生成,让你可以更加惬意简单地撰写博文。安装npm install hexo-enhancer –save或yarn add hexo-enhancer用法 — date 和title我在使用Hexo之前,曾经用过一段时间Jekyll,抛开整体不谈,个人感觉Jekyll的文件名整合日期和标题的策略挺不错的,使用Hexo之后为了维护Front-matter真的很烦。因此本插件中也实现了类似的文件名策略,即直接将 date + title放在文件名里面,由插件在Hexo编译时动态解析这些属性,整个过程非常简单方便。hexo-enhancer解析文件名的正则表达式如下:/^.?(\d{4})[-]?(\d{2})[-]?(\d{2}).?[-_.@# ](.)$/如果你熟悉正则表达式的话,就知道具体格式多么灵活了,以下所有格式都可以被正确解析:20091010-Title.md2009-10-10_Title.md2009-10-10-Title.md2009/10/10#Title.md2009/10/10@Title.md[20091010]-Title.md【20091010】Title.md「20091010」-Title.mdhexo-enhancer 会将以上文件名全部解析为(最终结果不会回写入.md文件中):—title: Titledate: 2009-10-10—用法 — categorieshexo-enhancer 会将.md文件所在目录及父目录的名称添加入categories属性中,因此你应该按照文章分类放置.md文件,事实上大多数人一直都这么做的。比如 _posts/区块链/比特币/20091010-比特币简介.md 文章将自动获得下面的categories属性:—title: 比特币简介date: 2009-10-10categories: [区块链, 比特币]—用法 — tags我一直认为,文章标签不应该手动维护,因为这样做太麻烦且容易遗漏,最终导致标签非常混乱。正确的做法应该是,将常见的标签关键词全局配置好,然后根据配置好的标签关键词,自动扫描每篇文章包括哪些关键词并生成tags属性。hexo-enhancer的做法就是这样,启动后扫描_config.yml中的keywords与tags属性收集全局标签候选词,然后给每一篇文章自动扫描tags。例如,_config.yml配置的标签可以是这样的:keywords: HTML, JavaScript, Hexotags: Java, Golang, React, Vuehexo-enhancer会扫描您的.md文章,如果文章内出现以上关键词,则自动将其分配如文章的tags属性中。需要特别指出的是,keywords是标准配置,它最终会出现在网页meta中,而tags是自定义的属性,只会被本插件使用。用法 — abbrlinkhexo-enhancer使用 base32(crc32(title)) 算法为每一篇文章分配abbrlink属性,您可以在permlink中使用它们:permalink: :year/:abbrlink.html# permalink: :year/:abbrlink# permalink: posts/:abbrlink.html# permalink: :year/:month/:day/:abbrlink.html使用abbrlink之后,文章的url就会变得非常简洁,例如 https://sulin.me/2018/3055NXV.html有一些插件会根据标题的拼音、翻译生成permlink,但是我感觉这些都不是好的做法。事实上url不宜太长,将一句话放在url中并不一定增强所谓的seo优化,反倒导致其使用起来相当不便。就像许多博客平台一样,为每篇文章分配短小且唯一的url即可,无论是看起来还是用起来都很方便。LicenseMIT
...