Skip to content

Unpretentious, functional and darkmode featured theme for Hexo.

License

Notifications You must be signed in to change notification settings

sshwy/hexo-theme-essence

Repository files navigation

Essence

npm FOSSA Status

NOTICE: for hexo version >=6 < 7, please use the older hexo-theme-essence@v1.9.12.

Essence is a functional and darkmode featured theme for Hexo.

Visit Sshwy's Notes for preview.

[TOC]

Features Quick View 🔨

  • 🌓 Dark mode.
  • 🔒 Encrypt tag for paragraphs of your post.
  • 📦 Iconfont instead of font awesome. So if you need more icons you have to collect them yourself.
  • 📂 Folder categorized instead of manually writing it into frontmatter.
  • ☁️ Leancloud storage project for Valine.
  • 📱 Responsive layout.
  • 🔍 Local search.

Installation 📥

You can simply install it as a node module:

npm install hexo-theme-essence --save
# or
yarn install hexo-theme-essence --save

On another hand, the traditional way is still working, which means you clone this repository under <YourBlog>/themes/essence/:

cd <YourBlog>
mkdir --parents themes
git clone --depth 1 https://github.com/sshwy/hexo-theme-essence.git themes/essence

Whatever way you choose, please install these peer dependencies as well:

npm install hexo-renderer-stylus hexo-renderer-ejs --save
# or
yarn install hexo-renderer-stylus hexo-renderer-ejs --save

It's worth reminding that hexo-renderer-stylus and hexo-renderer-ejs is hexo's default render engine.

Configuration ⚙️

First of all, create a copy of default configuration under <YourBlog>/, renaming it to _config.essence.yml.

Then you can follow the comments to modify it just as you want 😄.

If you use traditional way to install, Modifying <YourBlog>/themes/essence/_config.yml directly is also a way, but not recommended.

Builtin Tag Plugins

Essence prepared some useful hexo tag plugins for you.

Codeforces User ID

Inserts a user handle with Codeforces-like color style.

{% codeforces rating_label @ username %}
{% cf rating_label @ username %}

rating_label insensitively can be:

  • lgm for legendary grand master
  • igm for international grand master
  • gm for grand master
  • im for international master
  • m for master
  • cm for candidate master
  • e for expert
  • s for specialist
  • p for pupil
  • unr for unrated

Examples:

{% codeforces im @ sshwyR %}
{% cf im @ sshwyR %}

Details Block

Produce a HTML details block:

{% details [open] [@ title] %}
[content]
{% enddetails %}

Examples:

{% details open @ Default set to open %}

Details **Content**

{% enddetails %}
{% details @ Default set to close %}

Details **Content**

{% enddetails %}
{% details %}

No title

{% enddetails %}

Post Content Encrypt

Encrypt part of your post with custom password.

{% enc password [hint] %}
[content]
{% endenc %}

Examples:

{% enc 123456 password: 123456 (space is not allowed in password but allowed in hint) %}
test
{% enc 123456 123456 %}
Hi, there!
{% endenc %}
{% endenc %}

known issue: Can't work with markdown code fence block inside. solution: hexo code block tag plugin

Contributing 🖋️

Pull requests are welcome. For major changes and feature requests, please open an issue first to discuss what you would like to change or request.

License 📄

View LICENSE.md for detailed information.

FOSSA Status