2020博客重大更新

前言

这两天大概有三十个小时扑在博客上,不禁感慨能把时间花在自己热爱的事情上,是多么幸运的事情。这次把hexo 更新到了 5.2.0next 主题也更新到了 8.1.0 。升级完还是很值得的,hexo现在渲染速度飞快。但期间还是踩了大量的坑,我得从node.js开始讲起

Node&Npm

网上说可以通过安装node版本管理工具n来升级node

1
2
3
4
node -v
sudo npm cache chean
sudo npm install n -g
sudo n stable or sudo n x.x.x

可惜windows不支持n, 所以只能去官网下载并覆盖。我干脆删完了node重新安装最新版14.15.1

npm分为全局安装和本地安装,区别就在于安装的时候是否加了-g。我们一般会把一些希望在命令行中直接使用的包,进行全局安装,比如hexovue等。全局安装的包在win10中会默认放到%user%\AppData\Roaming\npm\node_global,如果你像我一样很讨厌它默认放到C盘,推荐通过以下方法修改默认路径,注意cache也最好一起修改。

1
2
npm config set prefix "D:\node\node_global"
npm config set prefix "D:\node\node_cache"

更多nodenpm的命令参考

更新Hexo

我是从hexo3点几的版本升级到5.2的,虽然跨度很大但是hexo的升级并不麻烦。

可以通过npm-check,npm-upgrade,npm update这三个命令来升级

1
2
3
4
5
6
7
npm install hexo -g //首先保证全局的hexo最新
hexo version //确认hexo全局最新
npm install -g npm-check
npm install -g npm-upgrade
npm-check //这句在项目内部执行,查看有哪些包可以更新
npm-upgrade //这句在项目内部执行,可以更新的包写入package.json
npm update --save //根据package.json,正式更新项目中的包

其实npm-check足以完成包管理和升级的工作了,方法千千万,选一种自己喜欢的即可。

在查资料的时候发现了一个看起来还不错的包管理工具npm-check-updates,它与npm-check类似,通过更新package.json以及使用npm install来更新项目中的包。

但因为原先的Hexo版本太旧了,站点配置文件_config.yml需要做一定的调整。我的做法是去用hexo init命令在另一个文件夹中重新生成了一份,然后对比两份站点配置文件_config.yml进行修改。具体可以参考这位博主给出的Hexo-5.x 与 NexT-8.x 跨版本升级调整配置。更详细的配置文件描述请参考官方文档配置

升级Next

一定要关注Next的官网啊!里面有配置文件字段的说明。还有更新说明及常见问题,可以减少很多很多坑。

比如版本的不同对应Next的三个仓库….、V8.1.0移除了Valine….

Next的更新较大,连配置文件的目录都改了,于是我做了旧主题的备份后,删除了旧主题的themes/next文件夹,用了新的安装方式npm install hexo-theme-next安装后,对照旧主题的配置文件进行修改。注意,将 Next 主题配置文件 node_modules/hexo-theme-next/_config.yml 改名为 _config.next.yml 复制到根目录(与 Hexo 站点配置文件_config.yml 在同一目录),这个文件优先级最高。这样做的好处是以后可以通过 npm 顺滑升级 Next 版本,不用担心配置文件被覆盖。可以参考 NexT-8.x 跨版本升级

NexT 支持在不修改主题仓库内文件的情况下进行配置和自定义,因此无论是使用 Git 还是npm都能顺利更新。如果你见到要求直接修改主题文件的「教程」文章,请谨慎甄别,因为其内容可能过时。

请留意配置方式上的改变,使用 _config.next.yml 代替 source/_data/next.yml

博客美化

  • 主题:Netx.Gemini

  • 配置: 详见源码

  • 分类

  • 样式

    • 参考(😂抄袭)班班,谢谢博主开源!我实在太喜欢这样的布局和排版。
  • 字体

    参考这篇博客网站字体优化方案Next官网关于字体的配置在这里

    • global:EB Garamond, Noto Serif SC
    • code: JetBrains Mono
  • 插件

    • 评论系统: Valine 最新版Hexo需自行安装 已改为更安全的Waline
    • 字数统计:hexo-word-counter 自带
    • 代码高亮:highlight.js 可以在这个网站进行预览和挑选
    • 站点分析: baidu_analytics
    • 背景动画: canvas_nest 详见这里
  • 其他

待办事项

近期更新

  • 博客页面更新介绍📅 2020/12/12 ✔

  • 关于博客的一些想法与思考📅 2020/12/28

    我写博客的初心是什么,未来怎么运营和坚持?我浏览了很多人的博客,也产生了很多的想法与感慨。

  • 关于博客的写作规范📅 2020/12/28

    以及Hexo提供的特殊的写作语法记录

  • 数字货币投资心得📅 2020/12/22

    玩数字货币将近三个月了,发现人的理性总是无法战胜人的贪婪。杠杆是把双刃剑,有些东西是底线,决不能触碰,之后会写点自己的心得,警示自己。

  • 2020年末总结📅 2021/01/01

    可恶的2020年即将过去,这一年发生了太多太多事了

  • 力扣300题刷题笔记计划 📅 2021/12

  • Flask框架使用笔记📅 2021/01/10

    想通过一个简单的CURD的例子,寻找一套既符合规范又符合自己习惯的后端搭建流程。

  • 耶鲁大学哲学-死亡笔记📅 2021/01/10