涤尘迎春更新(不)

前几天白菜突然被邀请进入一个站长群,恰好还遇上了熟人手柄。
突然想重新整理一下自己的博客,毕竟这不是游戏博客,放一堆Dota 2的大背景好像很不合适。
干脆换一个仿Github的主题,也开始整理一些自己平时遇到的东西吧。

修改hexo-material主题的代码高亮风格

其实比较简单,做几个填空题而已。

根据主题官网:https://material.viosey.com/expert/ 的说明,
从 1.3.0 版本开始,您可以使用 hexo-prism-plugin 进行代码染色,具体文档请参阅 Hexo-Prism-Plugin 插件文档

转到插件文档:https://github.com/ele828/hexo-prism-plugin

运行npm安装,根据文档,在博客的_config.yml中加上:

1
2
3
4
prism_plugin:
mode: 'preprocess' # realtime/preprocess
theme: 'default'
line_number: false # default false

并且关闭自带的highlight即可。

另外所有主题的预览在这里:
https://github.com/PrismJS/prism-themes#available-themes

关于hexo标题问题

今天出于让hexo更优雅的目的,修改了一下配置,给默认模板加上了categories属性。

之前的新建文章,是用hexo new 2017-7-27这样的命令。由于默认情况下文件名=标题,因此会出现用日期命名的.md文件,再进行编辑。

本想直接在hexo的_config.yml中,把文件名改为用时间命名,这样就能用hexo new 标题的命令,简化流程。

然而在本地调试的时候出现了错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ValidationError: `slug` is required!
at ValidationError.WarehouseError (e:\hexo\blog\node_modules\warehouse\lib\error.js:17:11)
at new ValidationError (e:\hexo\blog\node_modules\warehouse\lib\error\validation.js:14:18)
at SchemaTypeString.SchemaType.validate (e:\hexo\blog\node_modules\warehouse\lib\schematype.js:107:11)
at SchemaTypeString.validate (e:\hexo\blog\node_modules\warehouse\lib\types\string.js:45:45)
at Array.<anonymous> (e:\hexo\blog\node_modules\warehouse\lib\schema.js:161:23)
at Schema._applySetters (e:\hexo\blog\node_modules\warehouse\lib\schema.js:305:13)
at Model._insertOne (e:\hexo\blog\node_modules\warehouse\lib\model.js:190:10)
at e:\hexo\blog\node_modules\warehouse\lib\model.js:214:17
at tryCatcher (e:\hexo\blog\node_modules\bluebird\js\release\util.js:16:23)
at e:\hexo\blog\node_modules\bluebird\js\release\using.js:185:26
at tryCatcher (e:\hexo\blog\node_modules\bluebird\js\release\util.js:16:23)
at Promise._settlePromiseFromHandler (e:\hexo\blog\node_modules\bluebird\js\release\promise.js:512:31)
at Promise._settlePromise (e:\hexo\blog\node_modules\bluebird\js\release\promise.js:569:18)
at Promise._settlePromise0 (e:\hexo\blog\node_modules\bluebird\js\release\promise.js:614:10)
at Promise._settlePromises (e:\hexo\blog\node_modules\bluebird\js\release\promise.js:693:18)
at Promise._fulfill (e:\hexo\blog\node_modules\bluebird\js\release\promise.js:638:18)
at PromiseArray._resolve (e:\hexo\blog\node_modules\bluebird\js\release\promise_array.js:126:19)
at PromiseArray._promiseFulfilled (e:\hexo\blog\node_modules\bluebird\js\release\promise_array.js:144:14)
at Promise._settlePromise (e:\hexo\blog\node_modules\bluebird\js\release\promise.js:574:26)
at Promise._settlePromise0 (e:\hexo\blog\node_modules\bluebird\js\release\promise.js:614:10)
at Promise._settlePromises (e:\hexo\blog\node_modules\bluebird\js\release\promise.js:693:18)
at Async._drainQueue (e:\hexo\blog\node_modules\bluebird\js\release\async.js:133:16)

这就很尴尬了……最后把_config.yml中new_post_name的值改为:year-:i_month-:day-:title.md # File name of new posts,问题解决。

应该是hexo不允许这样做(不会自动处理重复命名。)