UNPKG

hexo-enhancer

Version:

a feature enhancer for hexo, support abbrlink, auto-title, auto-date, auto-categories, auto-tags...

130 lines (89 loc) 2.79 kB
# hexo-enhancer This is an feature enhancement plugin for `Hexo`. 中文文档:https://sulin.me/2019/Z726F8.html ## Introduction This plugin support multiple helpful features as blow (**by now**): - Auto generate `title` by filename. - Auto generate `abbrlink` by filename, with `base32` and `crc32` arithmetic. - Auto generate `date` by filename, like `Jekyll`. - Auto generate `categories` by filepath. - Auto generate `tags` by global pre-configured `tags` and `keywords` in the `_config.yml`. For example, without this plugin, you need write MarkDown like this: ```markdown --- title: Title date: 2019-03-05 12:54:57 categories: [A, B] tags: [tag1, tag2] --- # Title This is a markdown file, in categories [A, B], with tags [tag1, tag2]. ``` With this graceful plugin, you don't need write boring `Front-matter` anymore. ```markdown # Title This is a markdown file, in categories [A, B], with tags [tag1, tag2]. ``` ## Installation ``` npm install hexo-enhancer --save ``` OR ``` yarn add hexo-enhancer ``` ## Usage - `date` and `title` Like `Jekyll`, you need use formatted `filename`, which is `date + title`, `hexo-enhancer` will parse them from your filename. The format is really flexible: ```regexp /^.?(\d{4})[-_]?(\d{2})[-_]?(\d{2}).?[-_.@# ]*(.*)$/ ``` If you are familiar with `Regexp`, you will know how flexible it is: ``` 20091010-Title.md 2009-10-10_Title.md 2009-10-10-Title.md 2009/10/10#Title.md 2009/10/10@Title.md [20091010]-Title.md 【20091010】Title.md 「20091010」-Title.md ``` All filenames above is fine, `hexo-enhancer` will parse it into: ```markdown --- title: Title date: 2009-10-10 --- ``` ## Usage - `categories` For `categories`, you should put your `.md` file in right directory with right name, `hexo-enhancer` will use the directory name as `categories`, which means `_posts/problom-record/Java/20091010-Title.md` will has: ```markdown --- categories: [problom-record, Java] --- ``` ## Usage - `tags` For `tags`, you can prepare all `candidate-tag` in `_config.yml`, like this: ```yaml keywords: HTML, JavaScript, Hexo tags: Java, Golang, React, Vue ``` `hexo-enhancer` will scan your post file, auto allocate all tags which appreared in the markdown source. Tags are case insensitive. ## Usage - `abbrlink` `hexo-enhancer` will use `base32(crc32(title))` generate a short link for your post, you can use it in the `permlink`: ```yaml permalink: :year/:abbrlink.html # permalink: :year/:abbrlink # permalink: posts/:abbrlink.html # permalink: :year/:month/:day/:abbrlink.html ``` With abbrlink, your post's url will really clean, like `https://sulin.me/2019/Z726F8.html` ## New Features ### 2020-04-22 1. Tag searching case insensitive 2. Automaticly add "mathjax: true" if src contains $ ## License MIT