If you have any questions or suggestions, feel free to submit an Issue.
1.11.0
Unreleased
Features
- Added support for the Disqus comment system
1
2
3
4disqus:
enable: true
shortname: "your shortname"
count: true # Enable comment count display - Added the Tabs tag plugin, inspired by the next, volantis, and stellar themes, which supports creating tabbed content switches within articles.
1
2
3
4
5
6{% tabs [activeTab] ["center"] %}
<!-- tabName -->
Tab content
<!-- tabName -->
Tab content
{% endtabs %}- activeTab: Optional parameter, specifies the index of the default active tab (counting starts from 1). Default is 1.
- “center”: Optional parameter, specifies center alignment for tab titles. Default is left-aligned.
- tabName: The title of each tab, must be wrapped in
. Supports displaying icons using@+ the icon’s hexadecimal code. Example:- Title: <!-- Title -->
- Icon: <!-- @e60c -->
- Icon + Title: <!-- Title@e60c -->
- Added the Gallery tag plugin, which displays multiple images in a photo wall format, supporting automatic arrangement and responsive layout.
1
2
3
4
5{% gallery %}


...
{% endgallery %} - Optimized the code block styling, now using the Github Theme color scheme.
1.10.4
2025-11-01
Fixes
- Fixed incorrect display of hyperlinks in Markdown subheadings.
Features
- Added
keywordsmeta tag to improve SEO optimization. Customize via thekeywordsfield in front-matter, supporting both string and array formats:1
2
3
4
5
6
7
keywords: keyword1, keyword2, keyword3 # Article keywords as a comma-separated string
keywords:
- keyword1
- keyword2
- keyword3 # Article keywords as an array - Added
layout.max_widthconfiguration to control the maximum width of blog content. The default value is1350px:1
2layout:
max_width: 1350px # Maximum width of blog content
v1.10.3
2025-10-26
Fixes
- Fixed the issue of Valine comment system loading multiple times in pjax mode.
Features
- Optimized styles
- Improved animation effects for the language dropdown, share cards, and sponsorship.
- Removed the hover zoom effect on the sidebar.
- Optimized the archive page layout on mobile devices.
- Improved the back-to-top button style on mobile devices; it will now always display an upward arrow icon.
- Added
disable_on_mobileconfiguration forfireworkandplayerto control whether they are disabled on mobile devices. Default isfalse.1
2
3
4firework:
disable_on_mobile: false # true | false
player:
disable_on_mobile: false # true | false
v1.10.2
2025-10-19
Features
- Gradually added support for
text-autospace. Browsers with Chrome 140+ will now automatically add spacing between CJK and Latin characters, eliminating the need for manual configuration. - Optimized the WeChat share card popup. Clicking outside the share icon will now automatically close the card.
- Improved the clickable area of the top navigation menu. Clicking the icon will now also trigger menu navigation.
- Added an
authorfield in the Front-matter to mark the article author (for share cards and article copyright), with the highest priority.1
2
3
author: D-Sketon # Article author - Added a
triangle_badgeconfiguration to display a triangular badge in the upper right corner, supporting custom links and icons.1
2
3
4triangle_badge:
enable: false # true | false
icon: github # Same as the icon in the social configuration
link:
Miscellaneous
- Updated Mermaid to v11.12.0
- Updated Quicklink to v3.0.1
- Updated KaTeX to v0.16.24
- Updated Snapdom to v1.9.14
- Updated FontAwesome to v7.1.0
v1.10.1
2025-10-05
Fixes
- Fixed a critical regression issue that prevented multilingual posts from being generated.
- Fixed an issue where the bottom navigation bar would not display correctly when the page height flickered during loading.
Features
- Word count now excludes content within
script,style, andsvgtags. Additionally, CJK characters (e.g., Japanese, Korean) are now correctly counted. - Removed the
markdown.containerconfiguration; it is now enabled by default. - Optimized the style of the outdated post notice to match the WARNING container.
- Added an
outdatedfield in the Front-matter to mark a post as outdated. It has the highest priority and overrides the global configuration.When this field is set to1
2
3
outdated: true # true | falsetrue, an outdated notice will be displayed at the top of the post.
Performance
- Optimized blog generation speed.
v1.10.0
2025-09-25
Fixes
- Fixed copy button in folded code blocks failing to copy content
- Fixed incorrect internal link generation when multilingual mode is enabled with more than 2 languages
- Fixed article generation failure for some languages when multilingual mode is enabled with more than 2 languages
- Fix incorrect theme display on first render of mermaid during automatic theme switching
Features
- Added
zoomconfiguration for mermaid to control whether zoom is enabled, defaults to false1
2mermaid:
zoom: false # true | false
Refactor
- Refactored styles to improve consistency and aesthetics
- Adjusted padding and margins for cards, comments, and containers to optimize whitespace
- Improved widget and sidebar styles for better alignment and spacing
- Unified border-radius values for enhanced visual consistency
- Optimized responsive layout for friend links, footer, and header
- Updated heatmap styles for better readability and clarity
- Standardized button and notification styles for consistent interaction and states
- Adjusted font sizes and line heights to improve reading experience
- Optimized scrollbar styles for mobile and desktop
- Enhanced code block styles for better readability and consistency
- Added fade-in blur animation for headings
- Optimized article padding on mobile for improved reading experience
- Enhanced accessibility (a11y)
- Added aria-labels for layout, navigation, and interactive controls
- Added title hints for potentially truncated content
- Improved accessibility and interaction of the search modal, enhancing keyboard navigation and close logic
Performance
- Streamlined HTML, reducing total blog size by approximately 8%
- Removed unnecessary external attributes from links
- Externalized pjax-related JavaScript logic
- Simplified after-footer and loader logic
- Dynamically generated comment system configurations on-demand to reduce invalid code output
v1.9.2
2025-09-06
Fixes
- Fixed the issue where the summary feature was not working after the v1.9.1 update.
- Fixed the issue where the
meting_apiconfiguration was not being properly escaped.
Features
- Added
summaryconfiguration to control whether to display the article summary. Disabled by default.1
2
3summary:
enable: false # true | false
style: 'subtitle' # 'subtitle' or 'blockquote'
Performance
- Continuous CSS optimization.
v1.9.1
2025-08-24
Fixes
- Fixed the issue where future dates were incorrectly processed in the heatmap, ensuring that only past article data is counted.
- Fixed the issue of overlapping date labels in the heatmap.
Features
- Added
player.positionconfiguration to control the player’s position, which can be placed before the sidebar, after the sidebar, or after the widget. Defaults to after the sidebar.1
2player:
position: before_sidebar # before_sidebar / after_sidebar / after_widget - Added
show_update_timeconfiguration to control whether to display the article update time. Disabled by default.1
show_update_time: true # true | false
- Added
moe_icpconfiguration to control whether to display Moe ICP filing information. Disabled by default.1
2moe_icp:
icpnumber: # Moe ICP filing number - Added
importanttype to custom containers for marking important information (supported in @reimujs/hexo-renderer-markdown-it-plus 1.2.2+)1
2
3::: important
This is an important box.
::: - Added support for Portuguese (Brazil) in multilingual settings.
- Replaced html2image with snapdom for generating screenshots.
Miscellaneous
- Updated mermaid to v11.10.1
- Updated qrcode to v1.5.1
- Updated dompurify to v3.2.6
- Updated fontawesome to v7.0.0
v1.9.0
2025-07-06
Fixes
- Improved the giscus multilingual fallback logic
Features
- Unified CSS shadow styles and added the following tokens:
--shadow-meta--shadow-meta-hover--shadow-card--shadow-card-hover--shadow-red-6-shadow
- Added custom tooltip content for the
heatMapCardheatmap, supporting click-to-show article lists. - Added the
tagRouletteshortcode to display a tag roulette, providing a random tag display feature. Clicking the button randomly selects and displays a tag from a predefined tag pool.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40{{< tagRoulette tags="?" icon="?" >}}
```
- `tags`: Optional parameter specifying the tag pool, with multiple tags separated by commas (`,`). If not provided, default example tags are used, e.g., `tags="memory decline,lost desire to express,more lazy,indifferent,want to sleep"`.
- `icon`: Optional parameter for customizing the trigger button icon. Defaults to 🕹️ (gamepad emoji), which can be replaced with any emoji or text, such as 🎲, 🎯, 🔄, etc.
### Performance
- Continuous CSS tree-shaking; comment-related styles are now bundled on-demand.
- Replaced `instantsearch.js` with `@reimujs/instantsearch.js` to reduce bundle size.
## v1.8.5
**2025-05-31**
### Fixes
- Fixed an issue where the Twikoo comment system could not be used properly
### Features
- `anchor_icon` now supports passing `false` to hide the anchor icon
### Miscellaneous
- Updated Mermaid to v11.6.0
- Updated KaTeX to v0.16.22
- Updated Twikoo to v1.6.44
## v1.8.4
**2025-05-11**
### Features
- Added `menu.icon` configuration to support image paths, such as `/avatar/avatar.webp`
```yaml
menu:
- name: home
url: /
icon: /avatar/avatar.webp - Vendor CSS now supports SRI
v1.8.3
2025-05-02
Fixes
- Fixed the issue where AOS was running abnormally when the
expandconfiguration was enabled, causing some elements to not display properly - Optimized Aplayer styles
v1.8.1/1.8.2
2025-04-28
Fixes
- Fixed the issue where the mobile navigation bar couldn’t scroll when overflowing
- Fixed the incorrect Gitalk ID issue
- Fixed the display logic for
only_show_capsule_in_index
Features
- Added new TOC configuration options to control numbering, minimum depth, and maximum depth:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32toc_options:
list_number: true
min_depth: 1
max_depth: 6
```
- Adapted and optimized styles for Valine, Waline, and Gitalk
- Valine now supports `serverURLs` configuration to specify server addresses:
```yaml
valine:
serverURLs: # Valine server URL
```
- Valine, Waline, Twikoo, Gitalk, and Giscus now support multilingual configurations. The deprecated configurations are `valine.lang`, `waline.lang`, and `giscus.lang`.
- `comment.title`, `preloader.text`, `clipboard.success`, `clipboard.fail`, and `outdate.message` now support multilingual settings while remaining backward-compatible with the old string format:
```yaml
# Example
comment:
# Comment system title
title:
en: Leave a comment
zh-CN: 说些什么吧!
zh-TW: 說些什麼吧!
ja: コメントを残す
```
- The `algolia_search.label` and `clipboard.copyright.license` configurations are **deprecated** and replaced with i18n support for multilingual use.
- Added `license_type` configuration to `clipboard.copyright` and `article_copyright.content` to specify the copyright license type. For details, refer to [Creative Commons](https://creativecommons.org/licenses). The default is `by-nc-sa`:
```yaml
article_copyright:
content:
license_type: by-nc-sa
clipboard:
copyright:
license_type: by-nc-sa
v1.8.0
2025-04-13
Fixes
- Unified cursor style
- Fixed gradient colors not working when
material_themeis enabled - Fixed MathJax content overflowing the screen
- Fixed the issue where the font of the preloader animation couldn’t be customized
- Optimized the display logic of APlayer on mobile: Now, if the player is enabled, mobile devices will forcefully display a fixed-type player and it will not be obscured by Live2D.
Features
-
Enhanced link styling in Markdown
-
Theme tokens can now be directly modified via the
internal_themeconfiguration:1
2
3
4
5
6
7internal_theme:
light:
--red-0: '#ff0000'
# ...
dark:
--red-4: 'rgba(255, 208, 208, 0.5)'
# ... -
Added
custom_fontconfiguration for custom fonts, which takes the highest priority. Defaults to empty. Usage:1
2
3
4
5
6
7
8custom_font:
enable: true # true | false
article:
- css: https://fontsapi.zeoseven.com/292/main/result.css # Font CSS, supports local and remote
name: LXGW WenKai # Font name
code:
# - css: # Font CSS, supports local and remote
# - name: # Font name -
Preloader now supports a
rotateconfiguration to control whether the loading animation spins (enabled by default).1
2preloader:
rotate: true
v1.7.0
2025-04-04
Fixes
- Optimized the display of the year in the footer.
- Fixed a bug where i18n was undefined.
Features
-
Added the
heatMapCardshortcode to display an article heatmap1
{% heatMapCard levelStandard %}
The first parameter is the level standard for the heatmap (graded based on the word count of the articles), with the default value being
"1000,5000,10000". -
Added the
material_themeconfiguration, which dynamically generates theme colors based on the dominant color of the article’s banner image, following Google’s Material You design guidelines when enabled1
2material_theme:
enable: false # true | falseNote: When this feature is enabled, the
crossorigin="anonymous"attribute will be added to theimgelement of the banner to fetch the dominant color of the image. Please ensure your image server supports cross-origin access or use a third-party image proxy. -
Support for multiple comment systems simultaneously
Global comment system configuration:1
2
3comment:
title: Say something! # Title of the comment box
default: waline # Default comment system used when multiple are enabled
v1.6.0
2025.03.16
Features
- Added
panguconfiguration to enable/disable spaces between Chinese and English text. Default isfalse.1
2pangu:
enable: false # true | false - Added
coverconfiguration for global control of post covers. It has lower priority than front-matter and supportsfalse,url, andrgbtypes.1
cover: # https://example.com / false / rgb(255,117,117)
- Added
tocfield in front-matter to control the Table of Contents (TOC) for posts. It has higher priority than global configuration.1
2
3
toc: true # true | false - Added
tocconfiguration for global control of post TOC. It has lower priority than front-matter.1
toc: true # true | false
- Added
only_show_capsule_in_indexconfiguration to control whether to display all categories and tags’ capsule lists only on the archive index page. Default isfalse. Enabling this option can significantly improve compilation speed when posts contain a large number of categories and tags.1
only_show_capsule_in_index: false # true | false
Performance
- Improved compilation speed.
27 categories + 100 tags
| 500 posts | 1.6.0 | 1.5.2 | 1.5.1 |
|---|---|---|---|
| Default | 6.3s | 9.85s | 4.33min |
| With i18n | 9.92s | 16.97s | 9.4min |
| With relative_link | 9.12s | 11.54s | 5.1min |
| 1000 posts | 1.6.0 | 1.5.2 | 1.5.1 |
|---|---|---|---|
| Default | 11.01s | 18.9s | 15min |
| With i18n | 16.69s | 33.95s | >15min |
| With relative_link | 14.58s | 20.89s | >15min |
| 2000 posts | 1.6.0 | 1.5.2 | 1.5.1 |
|---|---|---|---|
| Default | 19.95s | 36.66s | >30min |
| With i18n | 31s | 40.76s | >30min |
| With relative_link | 27.76s | 65.99s | >30min |
500 categories + 2500 tags
| 500 posts | 1.6.0 only_show_capsule_in_index=true | 1.6.0 | 1.5.2 | 1.5.1 |
|---|---|---|---|---|
| Default | 25.57s | 55.53s | 2.7min | >10min |
- @reimujs/hexo-renderer-markdown-it-plus 1.2.1 improved preprocessing speed.
| @reimujs/hexo-renderer-markdown-it-plus | 1.2.1 | 1.2.0 |
|---|---|---|
| 500 posts preprocessing | 2.98s | 5.98s |
| 1000 posts preprocessing | 4.96s | 11s |
| 2000 posts preprocessing | 7.85s | 20s |
v1.5.2
2025.03.08
Fixes
- Fixed performance regression caused by the introduction of multilingual support.
| 1.5.1 | 1.5.2 | |
|---|---|---|
| 500 Articles, i18n Off | 7.15min | 9.63s |
| 500 Articles, i18n On | 10min | 16.74s |
Features
- Added
tag_limitsandtagcloud_limitsconfigurations to limit the number of tags in widgets and tag clouds.1
2tag_limits: # Limits the number of tags
tagcloud_limits: # Limits the number of tags in the tag cloud
v1.5.1
2025.03.01
Fixes
- Fixed incorrect Japanese multilingual translation errors.
- Resolved footer caching bugs under multilingual mode.
- Optimized styles: Improved text contrast and enhanced shadow effects.
Features
- Added
injectorconfiguration to inject custom code snippets, with functionality similar to Hexo#Injector. It supports injection intohead,body, andsidebarareas:1
2
3
4
5
6
7injector:
head_begin: # Inject code snippet right after <head>
head_end: # Inject code snippet right before </head>
body_begin: # Inject code snippet right after <body>
body_end: # Inject code snippet right before </body>
sidebar_begin: # Inject code snippet right after <aside>
sidebar_end: # Inject code snippet right before </aside>
v1.5.0
2025.02.23
Fixes
- Fixed a bug where menu jump links were abnormal when
languagewas set toen. - Fixed a bug where the homepage/archive/category/tag/recent posts pages could not correctly display titles and summaries of multilingual articles.
- Fixed a bug where the article copyright statement displayed incorrect article links in multilingual mode.
- Fixed a bug where the page language would not update when switching languages under pjax.
Features
- Article copyright now supports multiple languages.
Refactor
- Released the
@reimujs/hexo-algoliasearchplugin to support searching for multilingual articles. Its usage is identical tohexo-algoliasearch. - Built-in
hexo-generator-searchplugin to support searching for multilingual articles, so there’s no need to installhexo-generator-searchseparately. Its configuration is mostly the same ashexo-generator-search:1
2
3
4generator_search:
enable: true # true | false
field: post
content: true
v1.4.0
2025.02.16
Fixes
- Fixed a bug where
<video></video>tags were not visible.
Features
-
Aplayer now has a
lrcTypeconfiguration to control lyric types. -
dark_modenow supports anautomode, which automatically switches based on the user’s system settings. The default mode is nowauto.1
2dark_mode:
enable: auto # true | false | auto -
Experimental introduction of
hexo-generator-i18nwith multilingual switching functionality. You can configurei18nin the inner_config.ymlto add custom languages. Refer to hexo-generator-i18n for configuration:1
2
3
4
5i18n:
enable: false # false | true
type: [page, post]
generator: [archive, category, tag, index]
languages: [zh-CN, en] # List of languages, the first one is the default language.For multilingual support in posts, you can add
langin the Front-matter to specify languages other than the default (the default language does not need to be added).1
lang: en
This will generate a page at
/en/:permalink.For multilingual support in pages, you can directly create a folder for the corresponding language in the
sourcefolder and placeindex.mdinside it, such assource/en/about/index.md. This will generate a page at/en/about. -
Added a custom container feature similar to vitepress. Before using it, you need to install the latest (v1.2.0+) @reimujs/hexo-renderer-markdown-it-plus and set
markdown.containertotruein the inner_config.yml.1
2markdown:
container: trueUsage is as follows:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23::: info
This is an info box.
:::
::: tip
This is a tip.
:::
::: warning
This is a warning.
:::
::: danger
This is a dangerous warning.
:::
::: danger Custom Title
Danger zone, do not proceed.
:::
::: details
This is a details block.
:::
v1.3.2
2025.02.09
Fixes
- Fixed a bug where
KaTeXclient-side rendering caused errors inWalineand other comments in PJAX mode. - Fixed a bug where
Valine,Gitalk, andTwikoocomment systems threw exceptions in PJAX mode. - Optimized the styles of
WalineandGitalkcomment systems. - Optimized the style of sticky tags.
- Optimized the execution logic of script tags in PJAX mode.
Features
- Vendor now supports using links. The following configurations are now valid:
1
2
3
4
5vendor:
js:
katex: webcache|katex@0.16.11/dist/katex.min.css # Use a specific CDN
katex: https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css # Use a link
katex: /vendor/katex.min.css # Use a local file
v1.3.1
2025.02.02
Fixes
- Fixed a bug where line numbers and code blocks were misaligned when horizontal scrollbars were present.
- Fixed a bug where the sidebar could not scroll when overflowing.
Features
- Added
theme_version_checkconfiguration to check the theme version. A warning will be output in the console if the theme version is too low.1
theme_version_check: true # true | false
- Added
theme_config_checkconfiguration to check theme configurations. A warning will be output in the console if there are conflicts in the theme configuration.1
theme_config_check: true # true | false
- Gradually supported
interpolate-size. Now code block folding and TOC anchor points will have animation effects in Chrome 129+.
Miscellaneous
- Upgraded the mouse-firework dependency to reduce memory usage.
v1.3.0
2025.01.05
Fixes
- Fixed a bug where pjax failed when using a custom cover.
- Fixed a bug where pjax failed when jumping by clicking the sidebar button.
- Fixed a bug where TOC could not display correctly when the title started with a number.
- Adjusted styles.
Features
- Added
shareconfiguration to enable sharing features. Currently supportsfacebook,twitter,linkedin,reddit,weibo,qq, andweixin.In the1
2
3
4
5
6
7
8share:
- facebook
- twitter
- linkedin
- reddit
- weibo
- qq
- weixinweixinstate, a share card with a QR code will be generated, which can be saved locally and shared on WeChat Moments (Note: If the article cover has cross-origin issues, the card with images cannot be generated correctly using html-to-image!). - Supported configuring the
sidebarfield in the articlefront-matterto control whether the sidebar is displayed for the article. This has higher priority than the global configuration.1
2
3
sidebar: left # left | right | false - The
reimu_cursorconfiguration structure has changed. Addedcursorconfiguration to customize the mouse path. (Still compatible with old configurations.)1
2
3
4
5
6reimu_cursor:
enable: true
cursor:
default: ../images/cursor/reimu-cursor-default.png
pointer: ../images/cursor/reimu-cursor-pointer.png
text: ../images/cursor/reimu-cursor-text.png
v1.2.0
2024.12.28
Fixes
- Fixed a bug where
home_categoriescould only be filled with one or more categories.
Features
-
Added
live2d_widgetsconfiguration to enable/disable live2d-widgets.1
2
3live2d_widgets:
enable: true # true | false
position: left # left | right -
Added
positionconfiguration fortopandlive2dto control their positions.1
2
3
4
5
6
7top:
enable: true # true | false
position: right # left | right
live2d:
enable: true # true | false
position: left # left | right -
Added
playerconfiguration to configure Aplayer / Meting music players. It is recommended to enable pjax before using.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21player:
aplayer:
enable: false
options:
audio: []
fixed:
autoplay:
loop:
order:
preload:
volume:
mutex:
listFolded:
meting:
enable: false
meting_api: # custom api
options:
id:
server:
type:
auto:
v1.1.1
2024.12.15
Fixes
- Fixed a bug where KaTeX inline formulas could not be displayed in client-side rendering.
Features/Optimizations
Now, whether using client-side or server-side rendering for mathematical formulas, you need to install @reimujs/hexo-renderer-markdown-it-plus.
For both KaTeX and MathJax3 client-side rendering, it is strongly recommended to add the following configuration in the outer _config.yml:
1 | markdown_it_plus: |
This way, you can use native LaTeX multi-line block formulas without adding raw tags.
v1.1.0
2024.12.07
Fixes
- Fixed an issue where some CSS tokens were not unified.
Features
- Added configuration to control the default expansion state of code blocks.
expandcan be set totrue,false, or a number. A number indicates that the code block will be collapsed by default if the number of lines exceeds that number.1
2code_block:
expand: true # true | false | number - Added
local_fontconfiguration to define fallback fonts for the local machine. These have lower priority than Google Fonts:1
2
3
4
5
6
7
8
9
10
11local_font:
article:
- "-apple-system"
- PingFang SC
- Microsoft YaHei
- sans-serif
code:
- Menlo
- Monaco
- Consolas
- monospace
Miscellaneous
- Added “Custom Theme” and “Built-in Card Tags” sections to the README.
v1.0.0
🎉🎉🎉 The first official version of hexo-theme-reimu is released! 🎉🎉🎉
2024.12.01
Fixes
- Fixed a bug where
KaTeXwith tags had extra scrollbars. - Fixed a bug where
KaTeXwith tags and small width overlapped with the left formula. - Fixed a bug where
giscuscomments did not change themes with day/night mode switching. Nowgiscus’scommentThemeconfiguration is invalid.1
2giscus:
commentTheme: # Invalid configuration, now the theme is hosted by reimu. - Fixed a bug where the
postLinkCardtag did not escapeexcerpt. - Fixed an issue where the Github icon was not clearly visible in dark mode.
- Synchronized some transition animations to make them more consistent.
Features
- Now
KaTeXserver-side rendering recommends using the@reimujs/hexo-renderer-markdown-it-plusplugin to support the latestKaTeX. - The configuration structure for mathematical formulas has changed (incompatible with old configurations). Now both
MathJax3andKaTeXare supported, andKaTeXalso supports client-side rendering (no need to install a hexo plugin, but it will increase page load time).1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29math:
enable: false
katex:
enable: false # KaTeX
autoRender: false # true for client-side rendering, false for server-side rendering, requires `@reimujs/hexo-renderer-markdown-it-plus` plugin.
mathjax:
enable: false # MathJax3, client-side rendering, no plugin required.
options: # MathJax3 configuration
{
tex:
{
tags: "ams",
useLabelIds: true,
inlineMath: [["$", "$"], ['\\(', '\\)']],
displayMath: [["$$", "$$"], ['\\[', '\\]']],
processEscapes: true,
processEnvironments: true,
autoload: { color: [], colorv2: ["color"] },
packages: { "[+]": ["noerrors"] },
},
options:
{
skipHtmlTags:
["script", "noscript", "style", "textarea", "pre", "code"],
ignoreHtmlClass: "tex2jax_ignore",
processHtmlClass: "tex2jax_process",
},
loader: { load: ["input/asciimath", "[tex]/noerrors"] },
} - Now supports displaying category cards on the homepage to replace the
categorieswidget. Disabled by default.1
2
3
4
5home_categories:
enable: false # true | false
content:
- categories: # Directory name, format consistent with categories in front-matter, can be a string (single-level category) or an array (multi-level category).
cover: # Card cover, if not filled, a random cover will be used.
Performance
- CSS continuous tree-shaking, now only the icons used in
socialare packaged. - CSS continuous tree-shaking, now
KaTeXstyles are packaged on-demand.
⚠️ Refactoring ⚠️
-
Now search and mobile sidebar share a mask, reducing code volume.
-
Unified CSS token colors, now you can replace theme colors by modifying certain tokens.
-
Refactored
menuconfiguration, now supports custom icons.1
2
3
4
5
6
7
8
9
10
11
12
13menu:
- name: home
url: /
icon: # If not filled, the default Tai Chi icon is used.
- name: archives
url: /archives
icon: f0c1 # You can fill in a hexadecimal number to customize the icon, supports fontawesome and icon font.
- name: about
url: /about
icon:
- name: friend
url: /friend
icon: -
Refactored
footer,top,sponsorconfigurations, now supports custom icons.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18footer:
icon:
url: "../images/taichi.png" # Relative path to css/style.css, so you need to go up one level to find the images folder.
rotate: true
mask: true
top: # This is a new configuration.
enable: true # true | false
icon:
url: "../images/taichi.png"
rotate: true
mask: true
sponsor:
icon:
url: "../images/taichi.png"
rotate: true
mask: true -
Refactored
preloaderconfiguration, now supports custom loading animation icons.1
2
3
4preloader:
enable: true
text: Praying...
icon: # If not filled, the default inline SVG is used (ensures first-screen loading speed). You can fill in a link to customize the loading icon, such as '/images/taichi.png'. -
Added
anchor_iconconfiguration, now supports custom anchor icons.1
anchor_icon: # If not filled, the default # icon is used.
v0.3.5
2024.11.23
Fixes
- Fixed a bug where photoswipe might load abnormally for galleries.
- Fixed a bug where photoswipe might load abnormally for regular images.
- Fixed a bug where static resources could not load correctly when
basePathcontained subdirectories. - Fixed a bug where
externalLinkCardlinks were missingnoopenner noreferrer. - Fixed a bug where the homepage card did not escape
excerpt.
v0.3.4
2024.11.16
Fixes
- Various miscellaneous fixes.
- Optimized the display logic of excerpts.
- When the
excerptfield is used alone, it only serves as a summary and does not display as article content, only appearing on the homepage. - When the
excerptfield is used together with thelinkfield, it will display as article content, and the article will have aRead Morebutton for redirection.
- When the
Features
-
Now quicklink is disabled by default.
-
Code highlighting now supports the patch language type.
-
Vendor now supports SRI verification:
1
2
3
4js:
clipboard:
src: webcache|clipboard@2.0.11/dist/clipboard.min.js
integrity: sha384-J08i8An/QeARD9ExYpvphB8BsyOj3Gh2TSh1aLINKO3L0cMSH2dN3E22zFoXEi0Q
Performance
- Photoswipe-related JS now only loads on page and post pages.
- Comment-related JS now only loads on page and post pages.
Refactor
- Refactored layout, removed irrelevant code (there may be bugs, please report them in time).
v0.3.3
2024.11.03
Fixes
- Fixed a bug where giscus displayed abnormally on the homepage and archive pages.
v0.3.2
2024.11.02
Fixes
- Corrected the reading logic of the article copyright statement configuration in front-matter. The current logic is:
- First read the
copyrightin the article’s front-matter, if it does not exist, then read the global configuration (consistent with other configuration items).
- First read the
Features
-
Added animation effects to the search mask.
-
Added a sponsorship feature. You can set sponsorship information with the following configuration:
1
2
3
4
5
6
7
8sponsor:
enable: false # true | false
tip: Buy the author a cup of coffee! # Sponsorship prompt
qr:
# - name: Alipay
# src: "/sponsor/alipay.jpg"
# - name: WeChat
# src: "/sponsor/wechat.png"Additionally, you can control it through the article’s front-matter, which has higher priority than the global configuration.
1
2
3
sponsor: true # Whether to display the sponsorship QR code? -
Open Graph added a
default_og_imagefield to set the default Open Graph image (for homepage, archive, and other pages without images).1
2
3open_graph:
options:
default_og_image: /images/banner.webp # Default Open Graph image, also supports absolute paths.
Performance
- Continuous CSS tree-shaking, now widget, copyright, and sponsor styles are packaged on-demand.
v0.3.1
2024.10.26
Fixes
- Fixed a bug where the title could not be updated in pjax mode.
- Fixed a bug where the article cover image could not be updated in pjax mode.
- Fixed a bug where some icons displayed abnormally with fontawesome.
Features
- Supported configuring whether to disable the article copyright statement in the article
front-matter(requires enablingarticle_copyright), suitable for pages like about and friend links that do not need copyright statements.1
2
3
copyright: false - Supported displaying ICP filing number in the footer.
1
2
3
4icp:
icpnumber: # ICP filing number
beian: # Public security filing number
recordcode: # The recordcode parameter in the public security filing link.
v0.3.0
2024.10.20
Fixes
- Fixed a memory leak issue with clipboard in pjax mode.
- Fixed a memory leak issue with pace in pjax mode.
Features
- Supported Open Graph, specific configuration instructions can refer to Hexo-Open-Graph.
1
2
3
4
5
6
7
8
9
10open_graph:
enable: true # true | false
options:
#twitter_card: <twitter:card>
#twitter_id: <twitter:creator>
#twitter_site: <twitter:site>
#twitter_image: <twitter:image>
#google_plus: <g+:profile_link>
#fb_admins: <fb:admin_id>
#fb_app_id: <fb:app_id> - Supported configuring transition animations, now you can configure different transition animations for each element. Refer to AOS for transition animation types.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24animation:
enable: true # true | false
options:
header:
title: slide-up
subTitle: slide-down
home:
post: fade-up
widget: fade-up
sidebar: fade-up
article:
whole: fade-up
date: zoom-in
category: zoom-in
tag: zoom-in
comment: zoom-in
reading: zoom-in
nav: fade-up
archive:
whole: fade-up
tag: zoom-in
category: zoom-in
section: fade-up
nav: fade-up - Supported configuring Google Font fonts.
1
2
3
4
5
6
7
8font:
article:
- Mulish
- Noto Serif SC
code:
# - Ubuntu Mono
# - Source Code Pro
# - JetBrains Mono - Supported configuring whether to enable the pace progress bar (previously enabled by default).
1
2pace:
enable: true # true | false
⚠️ Refactoring ⚠️
- WOW is now replaced with a streamlined version AOS, modified animation types, and fixed memory leak issues in pjax mode.
- Extensive style refactoring, including but not limited to:
- loader
- Modified the color of the Tai Chi loading animation.
- header
- Modified the default cover image style.
- Added AOS animations to titles and subtitles.
- Replaced the Tai Chi image in nav with an icon and modified hover animations.
- search
- Modified input box colors, added hover styles, and removed the clear button.
- Added a Hakurei Reimu background.
- article
- Added AOS animations to articles.
- Modified and unified hr styles.
- Optimized code block styles in dark mode.
- Added a background to the copyright statement at the bottom of articles.
- Fixed pull quote style abnormalities.
- sidebar
- Replaced the Tai Chi image with an icon and modified hover animations.
- Modified button styles.
- Added overflow ellipsis hiding for widgets.
- footer
- Optimized styles in dark mode.
- loader
Performance
- Search JS is now loaded asynchronously.
- Phtotswipe, homepage’s katex/waline/gitalk CSS are now loaded asynchronously.
- Photoswipe uses minified JS.
- Simplified ejs and CSS code.
v0.2.4
2024.09.17
Features
- Optimized search, added
fancyanimation effects, and eliminated page jitter caused by masks. Now search looks better! - Now code copying supports carrying copyright information. When the number of copied characters exceeds count, the content will be appended with a copyright statement. Disabled by default.
1
2
3
4
5clipboard:
copyright:
enable: false # true | false Whether to carry copyright information.
count: 50 # Add a copyright statement when the number of characters exceeds this value.
content: Copyright: All articles in this blog, unless otherwise stated, adopt the BY-NC-SA license. Please indicate the source! - Added an article expiration reminder feature, disabled by default.
1
2
3
4outdate:
enable: false # true | false Whether to enable the article expiration reminder.
daysAgo: 180 # Articles older than this number of days are considered expired.
message: This article was last updated {time}, please note that the content may have changed. # Reminder message.
Fixes
- Fixed a bug where the Reimu mouse pointer displayed abnormally in Firefox.
- Changed the live2d CDN address and fixed a bug where the original API could not fetch models.
v0.2.3
2024.09.01
Features
- Optimized the gitalk comment system. Now you can use md5 hash to solve the gitalk tag limit issue.
1
2gitalk:
md5: # true | false Whether to use md5 hash. - Added a ServiceWorker update notification feature. Now, when the blog is regenerated with ServiceWorker enabled, a popup will prompt the user to update.
- Added a ServiceWorker automatic uninstallation feature. Now, when ServiceWorker is disabled, the old ServiceWorker will be automatically uninstalled when the user visits the blog.
- Added a quicklink feature, enabled by default. When enabled, links can be preloaded while the user stays on the page, improving user experience.
1
2
3
4
5quicklink:
enable: # true | false
timeout: 3000 # Preload timeout.
priority: true # Whether to prioritize loading.
ignores: [] # Ignored links, currently only supports strings.
v0.2.2
2024.08.24
Fixes
- Fixed a bug where the gitalk comment system admin field was read abnormally.
- Simplified CSS and JS code, reducing file size.
Features
- Optimized TOC styles, now it looks better!
Refactor
- Now ServiceWorker is disabled by default and needs to be manually enabled.
v0.2.1
2024.07.19
Fixes
- Fixed a bug where
no such file or directory, open '...\themes\reimu\source\js\sw.js'was displayed when installing the theme via npm.
Features
- Added email and other iconfont icons. See Icon Optimization for details.
v0.2.0
2024.06.09
Fixes
- Fixed a bug where code block styles displayed abnormally when using hexo-blog-encrypt.
- Fixed a memory leak issue with waline in pjax mode.
- Fixed a bug where static resources returned 404 when
config.urlcontainedpathname.
Features
- Added an article copyright statement feature, disabled by default.
1
2
3
4
5
6
7
8
9article_copyright:
enable: # true | false Whether to display the copyright card?
content:
author: # true | false Display the author in the copyright card?
link: # true | false Display the link in the copyright card?
title: # true | false Display the title in the copyright card?
date: # true | false Display the creation date in the copyright card?
updated: # true | false Display the update date in the copyright card?
license: # true | false Display the license in the copyright card? - Added tag plugins for internal/external link cards.
- postLinkCardThe first parameter is the article’s
1
{% postLinkCard slug [cover]|"auto" [escape] %}
slug; the second parameter (optional) is the cover displayed on the card. If set toauto, the blog’sbannerwill be used automatically; the third parameter (optional) indicates whether the article title is escaped. - externalLinkCardThe first parameter is the article’s title; the second parameter is the article’s external link; the third parameter (optional) is the cover displayed on the card. If set to
1
{% externalLinkCard title link [cover]|"auto" %}
auto, a default cover will be used.
- postLinkCard
- Optimized friend links, now they look better!
- Optimized code area pasting. Now there will be icon changes after pasting, and a corresponding message will pop up.
- Added
banner_srcsetfeature, disabled by default.1
2
3
4
5
6
7
8
9banner_srcset:
enable: # true | false
srcset:
- src: "/images/banner-600w.webp"
media: "(max-width: 479px)"
- src: "/images/banner-800w.webp"
media: "(max-width: 799px)"
- src: "/images/banner.webp"
media: "(min-width: 800px)"
Performance
- Banner and avatar now use webp format to reduce file size.
- Google font optimization.
<link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin><link rel="preload" as="style" href="https://fonts.googleapis.com/css"><link rel="stylesheet" href="https://fonts.googleapis.com/css" media="print" onload="this.media='all'">
- Mermaid supports lazy loading, but now it needs to be enabled in both config and
front-matter.1
2
3
mermaid: true
⚠️ Refactoring ⚠️
- Icons now use iconfont, but fontawesome is still retained (defaults to fontawesome when
icon_fontisfalse).1
icon_font: # icon_id | false
- Removed JQuery dependency.
- Removed fancybox dependency, replaced with photoswipe.
- Removed article share buttons.
- Removed some outdated CSS.
v0.1.2
2024.04.27
Fixes
- Fixed a bug where TOC could not display when using hexo-blog-encrypt.
v0.1.1
2024.04.05
Features
- Added a cute Reimu(╹▽╹) mouse pointer, enabled by default.
1
reimu_cursor: # true | false
- Added clarity statistics.
1
clarity: # clarity ID
- Removed deprecated gauges statistics. The following configuration is now invalid.
1
gauges_analytics: # gauges ID
Fixes
- Fixed a bug where comments did not display when the
commentfield was not filled in front-matter. - Fixed a bug where the giscus comment system width displayed abnormally.
Performance
- Improved lighthouse accessibility scores.
- Reduced the size of
banner.jpg.
v0.1.0
2024.01.14
🎉🎉🎉 After nearly a year ofslacking off, v0.1.0 is finally released! 🎉🎉🎉
⚠️ Refactoring ⚠️
- hexo-algolia was replaced with hexo-algoliasearch.
- The
vendorconfiguration was completely refactored. Now it supports manually switching CDNs:Currently,1
2
3
4
5
6
7
8
9vendor:
cdn_jsdelivr_gh: https://cdn.jsdelivr.net/gh/
cdn_jsdelivr_npm: https://cdn.jsdelivr.net/npm/
fastly_jsdelivr_gh: https://fastly.jsdelivr.net/gh/
fastly_jsdelivr_npm: https://fastly.jsdelivr.net/npm/
unpkg: https://unpkg.com/
webcache: https://npm.webcache.cn/
js:
jquery: webcache|jquery@3.7.1/dist/jquery.min.jsjsdelivr/gh,jsdelivr/npm,fastly.jsdelivr/gh,fastly.jsdelivr/npm,unpkg, andwebcacheCDN sources are provided. All dependency addresses now have the structureCDN source|dependency path. During blog generation, the theme will automatically concatenate the CDN source and the subsequent path to form a complete address.
Features
- ServiceWorker added selective caching for some domains.
- Improved TOC. Now TOC can be dynamically updated as the page scrolls, and you can also jump to the corresponding anchor by clicking TOC.
- Supported waline’s reading statistics feature. Enable it with:
1
2waline:
pageview: true
Fixes
- Fixed a bug where mermaid displayed abnormally in pjax mode.
- Fixed a bug where
insert_highlightwas called multiple times in pjax mode. - Synchronized all animation durations and easing functions.
- Fixed a bug where a null pointer occurred when the
widgetsconfiguration was not filled.
Performance
- Improved LCP scores.
- Google font uses
rel:preloadfor loading. - Banner adds
fetchpriority="high". - Part of fontawesome CSS uses
rel:preloadfor loading.
- Google font uses
v0.0.11
2024.01.10
Features
- Added ServiceWorker feature, enabled by default.
1
2service_worker:
enable: # true | false - Added live2d feature, disabled by default.
1
2live2d:
enable: # true | false - Optimized the navigation bar. Now it supports dynamically showing and hiding as the page scrolls.
- Code blocks now support day/night modes, looking better!
- Day/night mode color token optimization, looking better!
v0.0.10
2024.01.07
Fixes
- Fixed a bug where the 404 page could not search normally.
- Fixed TOC style abnormalities.
Features
- Now not only supports algolia search, but also supports using hexo-generate-search for search.
1
2generator_search:
enable: # true | false - Added a mouse firework effect, enabled by default (specific configuration can be found in mouse-firework, a library also written by me).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24firework:
enable: # true | false
options:
excludeElements: ["a"]
particles:
- shape: circle
move: ["emit"]
easing: easeOutExpo
colors: ["#ff5252", "#ff7c7c", "#ffafaf", "#ffd0d0"]
number: 20
duration: [1200, 1800]
shapeOptions:
radius: [16, 32]
alpha: [0.3, 0.5]
- shape: circle
move: ["diffuse"]
easing: easeOutExpo
colors: ["#ff0000"]
number: 1
duration: [1200, 1800]
shapeOptions:
radius: 20
alpha: [0.2, 0.5]
lineWidth: 6 - Added pjax feature, but it is still unstable and may have many bugs, disabled by default.
1
2pjax:
enable: # true | false
v0.0.9
2024.01.01
Fixes
- Fixed a bug where cache settings caused TOC to display incorrectly.
- Fixed a bug where valine comment counts displayed abnormally.
Features
- The back-to-top button looks better now.
- TOC added a button to switch to the homepage.
- Supported valine’s reading statistics feature. Enable it with:
1
2valine:
visitor: true
v0.0.8
2023.12.31
Features
- The long-awaited TOC has finally been implemented
partially - Upgraded fontawesome to v6, adding a bunch of new icons for
social - Added a back-to-top button
- Optimized day and night mode color tokens for a more appealing look!
- Adapted for hexo v7
v0.0.7
2023.09.09
Fixes
- Fixed a bug with lazyload conflicting with fancybox
- Added more cover options
v0.0.6
2023.07.02
Fixes
- Fixed abnormal pagination display on mobile devices
Features
- Added transition animation feature, enabled by default
1
2animation:
enable: # true | false - Added day and night mode feature, allowing default mode setting via the following configuration
1
2dark_mode:
enable: # true | false
v0.0.5
2023.06.30
Features
- Added loading animation feature, enabled by default
1
2
3preloader:
enable: # true | false
text: # Loading text - Added version check feature; if a new theme version is detected, a prompt will appear in the console
Refactoring
- Removed local Ubuntu Mono font
- Removed local fontawesome font
v0.0.4
2023.06.26
Features
-
Added Baidu Analytics
1
baidu_analytics: # baidu ID
-
Added Waline comment system
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21waline:
enable: # true | false
serverURL:
lang: zh-CN
locale: {} # https://waline.js.org/guide/features/i18n.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E8%AF%AD%E8%A8%80
emoji:
- https://unpkg.com/@waline/emojis@1.2.0/weibo
- https://unpkg.com/@waline/emojis@1.2.0/alus
- https://unpkg.com/@waline/emojis@1.2.0/bilibili
- https://unpkg.com/@waline/emojis@1.2.0/qq
- https://unpkg.com/@waline/emojis@1.2.0/tieba
- https://unpkg.com/@waline/emojis@1.2.0/tw-emoji
meta:
- nick
- mail
- link
requiredMeta:
- nick
- mail
wordLimit: 0
pageSize: 10 -
Added Twikoo comment system
1
2
3
4twikoo:
enable: # true | false
envId: # For Tencent Cloud environment, fill in envId; for Vercel environment, fill in the address (https://xxx.vercel.app)
region: -
Added Gitalk comment system
1
2
3
4
5
6
7gitalk:
enable: # true | false
clientID:
clientSecret:
repo:
owner:
admin: -
Added Giscus comment system
1
2
3
4
5
6
7
8
9
10
11
12
13giscus:
enable: # true | false
repo:
repoId:
category:
categoryId:
mapping:
strict:
reactionsEnabled:
emitMetadata:
inputPosition:
commentTheme:
lang:
v0.0.3
2023.06.04
Miscellaneous
- Updated CDN dependency files
v0.0.2
2023.01.18
Features
- Allowed defining banner and favicon using external URLs
v0.0.1
2023.01.17
🎉🎉🎉 hexo-theme-reimu is born 🎉🎉🎉

Leave a comment