Blog Log

日志

20210306

安装 hexo-browsersync 用于即时加载修改,方便调试

修改 hexo-filter-mermaid-diagram 插件,解决不兼容NexT主题的问题。

修改 NexT 主题 mermaid.njk 文件,解决 mermaid 主题设置问题。

20201008

更新至 hexo 5.2.0, next 8.0.1。

更新 APlayer。

更新博客配置文件。

20200828

添加 hexo-git-backup 用于备份博客源文件至 backup 分支。

20200730

更新至 hexo 5,NexT 8.0.0.rc-4,从头配置。

20200216

文首添加mathjax: true以支持解析数学公式

20200128

关闭博客动态背景

20190822

新建文件,\themes\next\source\dist\music.js

修改文件,\themes\next\source\dist\music.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const ap = new APlayer({
container: document.getElementById('aplayer'),
fixed: true,
autoplay: false,
audio: [
{
name: "[name]",
artist: '[artist]',
url: '[url]'
cover: '[url]',
}
{
......
}
]
})

修改文件,themes\next\layout\_layout.swig,于<body></body>之间,<body itemscoop ...>之后添加如下代码:

1
2
3
4
<link rel="stylesheet" href="/dist/APlayer.min.css">
<div id="aplayer"></div>
<script type="text/javascript" src="/dist/APlayer.min.js"></script>
<script type="text/javascript" src="/dist/music.js"></script>

新建文件夹,\Blog\node_modules\aplayer\dist复制至\Blog\themes\next-7.3.0\source

安装插件aplayer

20190821

博客配置文件,添加如下代码:

1
2
3
4
5
6
7
symbols_count_time:
#文章内是否显示
symbols: true
time: true
# 网页底部是否显示
total_symbols: true
total_time: true

主题配置文件,更改pace--enable true

主题配置文件,更改canvas_nest--enable true; color 0,0,0; count 200

主题配置文件,更改reading_progress--enable true

主题配置文件,更改custom_scrollbar--true

主题配置文件,更改symbols_count_time--

1
2
3
4
5
6
7
8
9
10
11
symbols_count_time:
separated_meta: true
# 文章中的显示是否显示文字(本文字数|阅读时长)
item_text_post: true
# 网页底部的显示是否显示文字(站点总字数|站点阅读时长)
item_text_total: false
# Average Word Length (chars count in word)
awl: 4
# Words Per Minute
wpm: 275
suffix: mins.

修改主题文件,themes/next-7.3.0/layout/_macro/sidebar.swig,添加网易云外链播放器代码

修改主题文件,/blog/themes/next/layout/_macro/post.swig,添加置顶标识代码

新建文件,\source\_data\styles.styl

修改文件,\source\_data\styles.styl

1
2
3
4
5
6
7
8
9
10
.post-body p a {
color: #0593d3;
border-bottom: none;
border-bottom: 1px solid #0593d3;
&:hover {
color: #fc6423;
border-bottom: none;
border-bottom: 1px solid #fc6423;
}
}

修改文件,themes/next-7.3.0/layout/_macro/sidebar.swig,在display_toc之上添加以下代码:

1
2
3
4
<div id="music163player">
<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=330 height=86 src="//music.163.com/outchain/player?type=2&id=642614&auto=1&height=66">
</iframe>
</div>

安装插件theme-next-pace

卸载插件hexo-generator-index

安装插件hexo-generator-index-pin-top

安装插件theme-next-canvas-nest

安装插件reading_progressgit clone https://github.com/theme-next/theme-next-reading-progress source/lib/reading_progress

安装插件bookmarkgit clone https://github.com/theme-next/theme-next-bookmark.git source/lib/bookmark

安装插件hexo-symbols-count-timenpm install hexo-symbols-count-time --save

20190820

博客配置文件,更改基础设定Site URL Dictionary Writing Deployment

博客配置文件,更改sidebar settings--social

博客配置文件,更改主题next-7.3.0

博客配置文件,加入live2d,更改为:

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
live2d:
enable: true
scriptFrom: local # 默认
pluginRootPath: live2dw/ # 插件在站点上的根目录(相对路径)
pluginJsPath: lib/ # 脚本文件相对与插件根目录路径
pluginModelPath: assets/ # 模型文件相对与插件根目录路径
# scriptFrom: jsdelivr # jsdelivr CDN
# scriptFrom: unpkg # unpkg CDN
# scriptFrom: https://cdn.jsdelivr.net/npm/live2d-widget@3.x/lib/L2Dwidget.min.js # 你的自定义 url
tagMode: false # 标签模式, 是否仅替换 live2d tag标签而非插入到所有页面中
debug: false # 调试, 是否在控制台输出日志
model:
use: live2d-widget-model-wanko # npm-module package name
#use: live2d-widget-model-z16
#use: live2d-widget-model-haruto
#use: live2d-widget-model-koharu
#use: live2d-widget-model-miku
#use: live2d-widget-model-shizuku
#use: live2d-widget-model-hijiki
#use: live2d-widget-model-tororo
# use: wanko # 博客根目录/live2d_models/ 下的目录名
# use: ./wives/wanko # 相对于博客根目录的路径
# use: https://cdn.jsdelivr.net/npm/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json # 你的自定义 url
scale: 1 # Scale between the model and the canvas (模型与canvas的缩放)
hHeadPos: 10 # Horizontal position of model's head (模型头部横坐标)
vHeadPos: 0.618 # Vertical position of model's head (模型头部纵坐标)
display:
superSample: 2 # rate for super sampling rate (超采样等级)
width: 300 # Width to the canvas which shows the model (模型的长度)
height: 600 # Height to the canvas which shows the model (模型的高度)
position: right # Left of right side to show (显示位置:左或右)
hOffset: 0 # Horizontal offset of the canvas (canvas水平偏移)
vOffset: -20 # Vertical offset of the canvas (canvas垂直偏移)
mobile:
show: true # Whether to show on mobile device (是否在移动设备上显示)
scale: 0.2 # Scale on mobile device (移动设备上的缩放)
motion: true # Whether to enable motion detection on mobile devices (移动设备是否开启重力感应)
react:
opacityDefault: 0.7 # Default opacity (默认透明度)
opacityOnHover: 0.2 # OnHover opacity (鼠标移上透明度)

博客配置文件,加入Security,更改为Security--encrypt--true

博客配置文件,加入Local Search,添加:

1
2
3
4
5
6
# Local Search
search:
path: search.xml
field: post
format: html
limit: 10000

主题配置文件,设定风格:NexT--Scheme--Gemini

主题配置文件,更改Menu Settings--tags categories archives

主题配置文件,更改rss: /atom.xml

主题配置文件,更改social links

主题配置文件,更改back2top-true true true

主题配置文件,更改Misc Theme Settings--safari_rainbow true; custom_scrollbar true

主题配置文件,更改codeblock--copy_button--true true mac

主题配置文件,更改Font Settings--post 16; codes 16

主题配置文件,更改math--enable true

主题配置文件,更改valine设置(评论区)。

主题配置文件,更改DaoVoice

1
2
3
# DaoVoice
daovoice: true
daovoice_app_id: d******5

安装插件hexo-asset-image

安装插件hexo-blog-encrypt

安装插件hexo-renderer-pandoc

安装插件hexo-generator-searchdb

错误汇总

spawn git ENOENT

情境:使用hexo d -g生成并上传博客时出现。

1
2
3
4
5
Error: spawn git ENOENT 
at notFoundError (%%\node_modules\cross-spawn\lib\enoent.js:11:11)
at verifyENOENT (%%\node_modules\cross-spawn\lib\enoent.js:46:16)
at ChildProcess.cp.emit (%%\node_modules\cross-spawn\lib\enoent.js:33:19)
at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)

可能原因:

  • 根据在git bash中使用hexo d -g命令无报错,推测为git的系统变量配置或者hexogit配置出错;
  • 由于正处于迁移至hexo 7的过程中,可能某处设置产生了冲突;

解决方法:

  1. 检查C:\Program Files\Git\binC:\Program Files\Git\cmdC:\Program Files\Git\mingw64\libexec\git-core是否在系统变量中;
  2. 删除%blog%根目录下的.deploy_git文件夹;
  3. 运行命令hexo cleanhexo d -g即可。

YAMLException: can not read a block mapping entry

情境:使用hexo d -g上传时出现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
YAMLException: can not read a block mapping entry; a multiline key may not be an implicit key at line 9, column 4:
top: true
^
at generateError (F:\PROHECT\Blog\node_modules\js-yaml\lib\js-yaml\loader.js:167:10)
at throwError (F:\PROHECT\Blog\node_modules\js-yaml\lib\js-yaml\loader.js:173:9)
at readBlockMapping (F:\PROHECT\Blog\node_modules\js-yaml\lib\js-yaml\loader.js:1073:9)
at composeNode (F:\PROHECT\Blog\node_modules\js-yaml\lib\js-yaml\loader.js:1359:12)
at readDocument (F:\PROHECT\Blog\node_modules\js-yaml\lib\js-yaml\loader.js:1519:3)
at loadDocuments (F:\PROHECT\Blog\node_modules\js-yaml\lib\js-yaml\loader.js:1575:5)
at Object.load (F:\PROHECT\Blog\node_modules\js-yaml\lib\js-yaml\loader.js:1596:19)
at parseYAML (F:\PROHECT\Blog\node_modules\hexo-front-matter\lib\front_matter.js:80:21)
at parse (F:\PROHECT\Blog\node_modules\hexo-front-matter\lib\front_matter.js:56:12)
at Promise.all.spread (F:\PROHECT\Blog\node_modules\hexo\lib\plugins\processor\post.js:48:20)
at tryCatcher (F:\PROHECT\Blog\node_modules\bluebird\js\release\util.js:16:23)
at Promise._settlePromiseFromHandler (F:\PROHECT\Blog\node_modules\bluebird\js\release\promise.js:509:35)
at Promise._settlePromise0 (F:\PROHECT\Blog\node_modules\bluebird\js\release\promise.js:614:10)
at Promise._settlePromises (F:\PROHECT\Blog\node_modules\bluebird\js\release\promise.js:694:18)
at Promise._fulfill (F:\PROHECT\Blog\node_modules\bluebird\js\release\promise.js:638:18)

可能原因:

  • *.md文件的头部信息中,冒号后需要加空格(top: true);
  • 如果报错信息中显示的错误点加了空格,则是上一栏未加空格;
  • 如果报错信息中没有错误点,则是第一行的冒号后未加空格;

解决办法:

  1. 找到相应文件的相应位置;
  2. 检查该位置及其前后的冒号后是否添加了空格。

Could not read from remote repository

情境:使用hexo d -g上传时出现。

1
2
3
4
5
Connection reset by 13.229.188.59 port 22
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

可能原因:

  • 不清楚。。。也许是网络原因,也许是ssh的原因。
  • 待研究。。。

解决办法:

  • 多试几次<( _ _ )>,不过有一定几率(⊙﹏⊙)出现浏览器浏览时css消失的现象。
  • 或者使用hexo clean + hexo g -d重新部署,但是博客内容一旦多起来,很花时间。

Asset render failed: css/main.css

情境:hexo clean后使用hexo d -g上传时出现。

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
ERROR Asset render failed: css/main.css
Error: F:\PROHECT\Blog\themes\next-7.3.0\source\css\main.styl:45:28
41|
42| // Custom Layer
43| // --------------------------------------------------
44| for $inject_style in hexo-config('injects.style')
45| @import "../../../../" + $inject_style;
----------------------------------^
46|

failed to locate @import file ../../../../source\_posts\source\_data\styles.styl

at Evaluator.visitImport (F:\PROHECT\Blog\node_modules\stylus\lib\visitor\evaluator.js:915:21)
at Evaluator.Visitor.visit (F:\PROHECT\Blog\node_modules\stylus\lib\visitor\index.js:28:40)
at Evaluator.visit (F:\PROHECT\Blog\node_modules\stylus\lib\visitor\evaluator.js:160:18)
at Evaluator.visitBlock (F:\PROHECT\Blog\node_modules\stylus\lib\visitor\evaluator.js:720:39)
at Evaluator.Visitor.visit (F:\PROHECT\Blog\node_modules\stylus\lib\visitor\index.js:28:40)
at Evaluator.visit (F:\PROHECT\Blog\node_modules\stylus\lib\visitor\evaluator.js:160:18)
at visitBody (F:\PROHECT\Blog\node_modules\stylus\lib\visitor\evaluator.js:433:17)
at Evaluator.visitEach (F:\PROHECT\Blog\node_modules\stylus\lib\visitor\evaluator.js:449:7)
at Evaluator.Visitor.visit (F:\PROHECT\Blog\node_modules\stylus\lib\visitor\index.js:28:40)
at Evaluator.visit (F:\PROHECT\Blog\node_modules\stylus\lib\visitor\evaluator.js:160:18)
at Evaluator.visitRoot (F:\PROHECT\Blog\node_modules\stylus\lib\visitor\evaluator.js:707:27)
at Evaluator.Visitor.visit (F:\PROHECT\Blog\node_modules\stylus\lib\visitor\index.js:28:40)
at Evaluator.visit (F:\PROHECT\Blog\node_modules\stylus\lib\visitor\evaluator.js:160:18)
at Evaluator.evaluate (F:\PROHECT\Blog\node_modules\stylus\lib\visitor\evaluator.js:247:15)
at Renderer.render (F:\PROHECT\Blog\node_modules\stylus\lib\renderer.js:86:26)
at Hexo.module.exports (F:\PROHECT\Blog\node_modules\hexo-renderer-stylus\lib\renderer.js:53:6)

可能原因:

  • 渲染出错???好像是相对路径有问题

解决办法:

  • 暂时停止使用插入样式,

Hexo 博客主页报错

Hexo更改主题后启动服务器,界面显如下字符:

1
extends includes/layout.pug block content include includes/recent-posts.pug include includes/partial

解决方案:

执行如下命令

1
npm install --save hexo-renderer-jade hexo-generator-feed hexo-generator-sitemap hexo-browsersync hexo-generator-archive

清除缓存 hexo clean

生成静态文件即可 hexo g

注意

自定义样式

https://github.com/theme-next/hexo-theme-next/issues/982

主题文件夹

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
├── .github            #git信息
├── languages #多语言
| ├── default.yml #默认语言
| └── zh-Hans.yml #简体中文
| └── zh-tw.yml #繁体中文
├── layout #布局,根目录下的*.ejs文件是对主页,分页,存档等的控制
| ├── _custom #可以自己修改的模板,覆盖原有模板
| | ├── _header.swig #头部样式
| | ├── _sidebar.swig #侧边栏样式
| ├── _macro #可以自己修改的模板,覆盖原有模板
| | ├── post.swig #文章模板
| | ├── reward.swig #打赏模板
| | ├── sidebar.swig #侧边栏模板
| ├── _partial #局部的布局
| | ├── head #头部模板
| | ├── search #搜索模板
| | ├── share #分享模板
| ├── _script #局部的布局
| ├── _third-party #第三方模板
| ├── _layout.swig #主页面模板
| ├── index.swig #主页面模板
| ├── page #页面模板
| └── tag.swig #tag模板
├── scripts #script源码
| ├── tags #tags的script源码
| ├── marge.js #页面模板
├── source #源码
| ├── css #css源码
| | ├── _common #*.styl基础css
| | ├── _custom #*.styl局部css
| | └── _mixins #mixins的css
| ├── fonts #字体
| ├── images #图片
| ├── uploads #添加的文件
| └── js #javascript源代码
├── _config.yml #主题配置文件
└── README.md #用GitHub的都知道