升级Hexo及NexT

想要把blog重新写起来,作为一个对升级东西有执念的强迫症少年,趁此机会升级一下Hexo和主题吧。

升级过程主要参考了升级Hexo及NexT主题笔记 这篇文章。 碎碎念记一下过程,方便下一次升级(如果还有下一次233)。

替换npm源

之前一直用的是我科的源,今天不知道为啥不管用了,就试了一下传说中的“淘宝源”。装了cnpm试试,之后可以直接用cnpm代替npm

1
npm install -g cnpm --registry=https://registry.npm.taobao.org

备份旧目录

虽然有git,还是复制一下目录,方便一会儿来回搬运配置文件。

1
mv dango.rocks dango.rocks.old

安装Hexo

1
2
3
4
npm install hexo-cli -g
hexo init dango.rocks
cd dango.rocks
npm install

hexo init之后煲了一会儿剧,好一会儿之后发现还卡在npm install。无法判断到底还有没有在安装,于是强行停掉换成cnpm install,秒速搞定。

运行一下Hexo的服务器(hexo s --debug),然后在浏览器打开http://localhost:4000,可以看到初始化好的博客。

安装主题NexT

思考了1分钟要不要换个主题,想想还是算了,折腾欲望一般般。

1
2
cd dango.rocks
git submodule add https://github.com/theme-next/hexo-theme-next themes/next

数据迁移

迁移资源文件:拷贝备份目录下source/下的所有内容到新主页目录的source/下。

配置文件迁移

搞定配置文件_config.yml: 这里我选择对照着备份的旧版_config.yml重新填了一遍,但是填完发现需要配的内容没有任何变化。

主题配置文件迁移

一年前用NexT的时候,直接修改了NexT里的_config.yml,还改动了零零碎碎其它几个文件。这些改动导致需要把修改的主题push到自己fork的NexT里,如果要新版NexT还需要merge,说不定还需要resolve conflicts,实在是太麻烦了。这一次来一个一了百了,把这个问题也解决了!

一些参考文档:

  1. Hexo Data Files
  2. NexT Repo里关于Data Files的介绍

主要的思路是把主题的配置文件还有其它改动都放到source/_data里,这样可以保持theme/next 清爽干净。最后选择的方案是把Next主题下的_config.yml复制到source/_data里,命名为next.yml。接着,根据备份目录下的自己的主题配置theme/next/_config.ymlnext.yml填好。其它零零碎碎还有一些文件要改,思路一致,都是往source/_data里放。