好久不用博客,转眼升级的时候已经各种报错了。原来hexo已经到了2.8.2版本,并且各种各种不兼容啊。
报错一 HexoError
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| [error] { name: 'HexoError', reason: 'incomplete explicit mapping pair; a key node is missed', mark: { name: null, buffer: 'categories: Kategorien\nsearch: Suche\ntags: Tags\ntagcloud: Tag-C loud\ntweets: Tweets\nprev: Vorherige Seite\nnext: Nächste Seite\ncomment: Komm entare\narchive_a: Archiv\narchive_b: Archiv: %s\npage: Seite %d\nrecent_posts: Neueste Artikel\n\u0000', position: 180, line: 9, column: 17 }, message: 'Process failed: languages/de.yml', domain: { domain: null, _events: { error: [Function] }, _maxListeners: 10, members: [ [Object] ] }, domainThrown: true, stack: undefined }
|
原因:
YAML格式规则改变,有空格的项都需要加上双引号。
tag cloud
–> "tag cloud"
解决方法:
将主题language下的有空格的项都需要加上双引号。
如果用的默认主题light,可以直接拉取最新主题,覆盖language文件夹即可。
1
| $ git clone https://github.com/tommy351/hexo-theme-light themes/light
|
更新plugins
安装升级后必须的plugins:
1 2 3
| $ (sudo) npm install hexo-renderer-ejs --save $ (sudo) npm install hexo-renderer-marked --save $ (sudo) npm install hexo-renderer-stylus --save
|
完成后的package.json类似这样:
1 2 3 4 5 6 7 8 9 10 11 12
| { "name": "hexo", "version": "2.8.2", "private": true, "dependencies": { "hexo-generator-feed": "^0.2.0", "hexo-generator-sitemap": "0.0.6", "hexo-renderer-ejs": "^0.1.0", "hexo-renderer-marked": "^0.1.0", "hexo-renderer-stylus": "^0.1.0" } }
|
这样之后应该就大功告成了。若有其他报错,可去hexo的github页面找一下issue或者提新的issue。作者大多都会解答。
以上。Happy blogging. :)
本文源码:https://github.com/wileam/code/blob/master/source/_posts/update-hexo.md