额外依赖库支持
与第三方支持的区别是,此处大部分功能为安装插件或引入 CDN 实现,并由主题进行简单适配。
字数统计
npm install hexo-wordcount
# or
yarn add hexo-wordcount
npm install hexo-wordcount
# or
yarn add hexo-wordcount
在配置文件 _config.async.yml
中:
count
: 字数统计time
: 阅读时间
wordcount:
enable: true
count: true
time: true
wordcount:
enable: true
count: true
time: true
RSS
npm install hexo-generator-feed
# or
yarn add hexo-generator-feed
npm install hexo-generator-feed
# or
yarn add hexo-generator-feed
可配置在 _config.async.yml
的 social
字段里,如:
sidebar:
social:
- icon: fas fa-rss
url: atom.xml
sidebar:
social:
- icon: fas fa-rss
url: atom.xml
更多配置请参见官方文档(在 Hexo 工作目录下的 _config.yml
中进行)。
置顶
确保您的 hexo-generator-index 为
2.0.0
或以上
通过设置文章 Front Matter 中 sticky
属性以进行置顶,数值 >0 时越高,越靠前,数值 <0 时,越靠后。
---
title: xxx
sticky: 100
---
---
title: xxx
sticky: 100
---
数学公式
KaTeX
在文章中显示一些简单的数学公式,使用 KaTeX 实现。具体方法请参见官方文档。
其主要采用 CDN 的方式实现。
copy_tex
: 复制 KaTeX 文本,默认开启global
: 如果您想要在全局页面使用KaTeX
,(譬如首页的文章摘要),那么您可以开启它。(当然,这也意味着您的页面每次需要加载更多的资源。)options
: 传入 KaTeX 渲染器的选项。具体选项参考这里。
katex:
copy_tex: true
global: false
options: {}
katex:
copy_tex: true
global: false
options: {}
只有在使用了 katex
的文章或页面才会加载 KaTeX 的库,所以您需要在使用 KaTeX 的文章或头部进行设置。 (当您开启全局加载时,将不再需要设置此选项。)
---
title: xxx
katex: true
---
---
title: xxx
katex: true
---
头部中的 katex
类型可以是 bool | object
,如果是 object
,那只有 options
选项有效果,具体参数与全局设置一样,并且会与全局设置合并与替换。
您可以使用如下方式包裹公式。
如下包裹,公式将被居中展示。
$$ E = mc^2 $$
\[ E = mc^2 \]
$$ E = mc^2 $$
\[ E = mc^2 \]
如下包裹,公式将以行内形式展示。
$E = mc^2$
\( E = mc^2 \)
$E = mc^2$
\( E = mc^2 \)
TIP
注意,在 Markdown 文件中直接书写时,您需要多一个 \
来转译 \
。(或者使用 $E=mc^2$
的方式)
使用 \\[ E = mc^2 \\]
而不是 \[ E = mc^2 \]
。
如果您有过多需要转译的字符,您可以直接使用 HTML 标签包裹它(内部的字符将不会被作为 Markdown 解析),而无需使用多个 \
来转译。
譬如:
<div>\[ E = mc^2 \]</div>
<div>\[ E = mc^2 \]</div>
live2d
npm install hexo-helper-live2d
# or
yarn add hexo-helper-live2d
npm install hexo-helper-live2d
# or
yarn add hexo-helper-live2d
在 Hexo 根目录的 _config.yml
中进行配置:
更多选项含义请参见 hexo-helper-live2d
live2d:
enable: true
# 推荐使用 CDN 来加载
scriptFrom: unpkg
pluginRootPath: live2dw/
pluginJsPath: lib/
pluginModelPath: assets/
tagMode: false
debug: false
model:
# 推荐使用 CDN 来加载模型
use: https://unpkg.com/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json
display:
position: left
width: 150
height: 300
mobile:
show: true
react:
opacity: 0.7
live2d:
enable: true
# 推荐使用 CDN 来加载
scriptFrom: unpkg
pluginRootPath: live2dw/
pluginJsPath: lib/
pluginModelPath: assets/
tagMode: false
debug: false
model:
# 推荐使用 CDN 来加载模型
use: https://unpkg.com/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json
display:
position: left
width: 150
height: 300
mobile:
show: true
react:
opacity: 0.7
pjax
使用 swup 实现,默认为关闭的。
swup: true
swup: true
在使用 swup 插件后,打开新的页面时已经加载的 js 脚本并不会重新执行,如果您在自定义脚本时每次打开新的页面重新执行您的脚本,您可以在 script 标签上添加 data-swup-reload-script
属性标识。
<script src data-swup-reload-script></script>
<script src data-swup-reload-script></script>
您也可以在脚本中监听 swup:contentReplaced 事件,当新的页面替换完成后会触发。
if (window.ASYNC_CONFIG.swup) {
document.addEventListener('swup:contentReplaced', function () {
// 页面替换完成
});
}
if (window.ASYNC_CONFIG.swup) {
document.addEventListener('swup:contentReplaced', function () {
// 页面替换完成
});
}