/hexo-enhancer

hexo enhance plugin

Primary LanguageJavaScriptMIT LicenseMIT

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:

---
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.

# 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:

/^.?(\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:

---
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:

---
categories: [problom-record, Java]
---

Usage - tags

For tags, you can prepare all candidate-tag in _config.yml, like this:

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.

Usage - abbrlink

hexo-enhancer will use base32(crc32(title)) generate a short link for your post, you can use it in the permlink:

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

License

MIT