音ノ木坂学院

叶え!みんなの夢――

0%

从NexT到Hexo到npm更新了一下

NexT更新

最近看到好多同学的Hexo用了新的scheme (还有个叫Muse的scheme),于是也想试一下。查了一下NexT的仓库,版本从0.4.5.2直接跳到了5.0.0。目瞪口呆.jpg。
文档也做的很好看了:NexT文档

更新的方式很简单,直接

1
git clone https://github.com/iissnan/hexo-theme-next themes/next

因为之前叫hexo-theme-next所以完全不用担心冲突的问题。

但是需要对比修改一下next里的_config.yml,一样的项目可以直接复制,主要需要和发现更新注意的地方有:

  1. 增加的sidebar仅针对Pisces这个scheme,不过为什么不试试这个5.0的新主题呢
  2. 多说的方式变成添加shortname即可,shortname自己在多说后台管理里设置的,可以查到,不再需要添加代码,更加易用
  3. 多说信息如果开启管理员模式需要user_id,这个在dev.duoshuo.com登陆后就可以看到,就是一串数字
  4. 发现之前没注意到的google_site_verification,因为之前是用Google analytics验证的,所以又做了一次验证
  5. Mist下右上角的按钮都多了一个小图标,搜索框也变成了搜索按钮+图标

顺便今天cc98的markdown功能上线,去github又复习了一下markdown语法,发现```的语法可以支持指定语言,正好对之前代码高亮不太满意,于是学习一下。NexT的代码高亮使用的是Tomorrow Theme的主题,而Tomorrow Theme使用的是highlight.js的实现。看了一下highlight.js支持的语言,比想象中的还要强大的多。顺手把博客里所有代码部分都更新了一下。

升级npm和更新Hexo

坑太多千万不要做
坑太多千万不要做
坑太多千万不要做
如果一定要做的话:

升级完NexT看了一下Hexo,从3.1升级到了3.2,主要是面向速度的升级。
其中对于highlight做了优化,可以关闭其自动检测语言项目,通过每次代码前手动添加语言。这正好是之前做的事情,于是非常开心。
用法是在_config.yml里加上

1
2
highlight:
auto_detect: false

不过试了一下会出错就没用 (所以你更新的目的是什么啊喂

不过既然更了还是讲下步骤:

更新Hexo需要先更新npm。一开始在Hexo目录执行了sudo npm update -g,结果直接从hexo到npm直接报废。查了一下原因是npm update要在~/里做。
修复的方法是在家目录下执行

1
curl https://npmjs.org/install.sh | sudo sh

或者下下下来这个脚本,之后在根目录执行。因为国内npm环境不太好,所以可以考虑开着代理做。
出现It worked之后就可以重新update了。

完成之后参考Hexo官方更新指南
如果npm install hexo-cli -g这一步出现问题,先做一次hexo clean。还提示permission denied的话可以使用sudo。
第三步npm install hexo --save 一定不要 用sudo,不然之后所有hexo操作就只能sudo才可以执行了。如果不小心手残可以hexo clean砍掉重来。
最后再把插件全部重新安装一遍

1
2
3
4
5
6
7
8
9
10
npm install hexo-server --save
npm install hexo-generator-index --save
npm install hexo-generator-archive --save
npm install hexo-generator-category --save
npm install hexo-generator-tag --save
npm install hexo-deployer-git --save
npm install hexo-deployer-heroku --save
npm install hexo-deployer-rsync --save
npm install hexo-deployer-openshift --save
npm install hexo-generator-sitemap --save

最后之前的_config.yml里有个不明所以的plugins的项,如果留着会导致hexo server不可用(不知道为什么)删掉就好,实测删掉之后sitemap功能还是可以正常使用的。

做完之后依旧

1
2
hexo g
sudo hexo d

非常完美——就好了
结果不知道为啥把git文件弄乱了,上传了不知道是两个文件夹还是一堆文件夹……最后没办法只能把之前的commit记录都删了……
当然也许是因为git没学好吧……还要努力学习……看看会不会没准哪天能恢复出来了呢(毕竟有手动备份

所以这个故事的教训是,没事不要乱升级……