Blog近期更新:Hexo升级至8.1.0,同步功能失效调整,代码高亮完善...

昨天写完《在Nuxt4中集成Drizzle ORM + SQLite加密》准备同步到Blog,居然发现同步命名不可用了。查看控制台是“429:Too Many Requests”。尝试切换 UserAgent 和 IP 重试也无法解决这个问题,估摸着是 Token 被Ban了。

命令行拉取文档失败了

一、同步功能失效调整

小问题,不要慌。我首先想到的语雀文档可以导出 Markdown 文件,那我再写个命令行工具,把从语雀API读取改为本地Markdown文件读取就行。由于有之前API同步的底子,改写过程很顺利。

勾选此选项会导致图片上方会多一行ocr识别文字

导出文档时不要勾选『导出带PlantUML等额外卡片内容』,否则所有图片标签上方会多出一行<!-- 这是一张图片,ocr 内容为:...... -->的ocr描述文本。

图片上方多出了一行ocr识别结果

基于我之前编写的语雀文章同步工具,我很快就改出了一版本地可用的Markdown转换工具。只需要输入这行命令即可完成Md文件转换和图片同步工作:hexo convert -f [原始md文件] -s [新md文件名] -c [所属的category]

初版脚本效果

打开浏览器预览,与过去通过语雀API同步的效果完全一致👍。

新方式生成效果

二、Hexo升级至8.1.0

成功修改发布之后,发现Hexo在去年更新了8.0大版本,打算研究研究一起更新了。看了下几次更新文档,唯二的两个破坏性更新是放弃了Node.js 14Node.js 16环境,最低需求Node.js 20.19

24年我尝试更新过一次Hexo 7.2.0,当时遇到了文章图片路径错误导致无法展示的BUG(当时查看Iusse也没人修复这个问题),最后只能降低到7.1.1临时先用着。想着这次跨大版本升级,心里还有点发怵。结果没想到这次升级非常顺利,没遇到任何问题就用上8.1.0了,实测编译速度提升了20%-30%😁。

Hexo 8.1.0 已发布

前置条件

  1. 做好源代码备份(Git则创建好专门的升级分支),防止升级失败后无法回滚!(❗ **重要**)
  2. 确保Node.js版本大于20.19.0

开始升级

(1) 在项目根目录运行npm install hexo@8.1.0进行升级。

升级新版本

(2) 然后运行npm update同步更新其他依赖项。

更新其他依赖项

(3) _config.yml语法调整
  1. external_link不再支持布尔值(boolean)类型, 需要将其改为对象形式。
1
2
3
4
external_link:
enable: true
field: site
exclude: ''
  1. use_date_for_updated选项被废除,需要改用updated_option控制文章更新
  2. 代码高亮配置调整,需要通过syntax_highlighter指定渲染高亮引擎,默认启用的highlight
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
syntax_highlighter: highlight.js
highlight:
auto_detect: false
line_number: true
line_threshold: 0
tab_replace: ""
exclude_languages:
- example
wrap: true
hljs: false
prismjs:
preprocess: true
line_number: true
line_threshold: 0
tab_replace: ""
(4) 验证效果

依次输入下方命名重新构建项目。

1
2
3
4
5
6
7
8
# 清理缓存
hexo clean

# 重新生成
hexo generate

# 启动服务
hexo server

三、其他更新(地图修复、代码块高亮功能完善)

  1. 足迹地图已修复,目前能够展示完整中国地图和东部、南部岛屿,并且具备了根据GeoJSON数据实时更新全新版图变化。(修复过程参考:jVectorMap番外篇:用 GeoJSON 补全未竟的足迹地图

放大地图并拖拽到底下,可以看到完整岛屿和南海十段线

  1. 代码块样式重构,参考网上很火的“代码片段”分享模块样式进行重制,并对1202个代码块的设置语言进行检查和调整。

代码块样式调整

  1. 在修改代码块样式和配置高亮时,在Hexo文档了解到代码块还支持mark:行号,行号-行号的行高亮语法,于是我又美化调整了行高亮的效果,现在看起来还不错。

初始的样式效果

优化后样式效果

  1. 最后给代码块加上了复制按钮,方便大家快速拷贝代码块内容。

复制按钮效果

Blog近期更新:Hexo升级至8.1.0,同步功能失效调整,代码高亮完善...

作者:有点东西

链接: https://www.youdiandongxi.com/article/blog-new-upgrade.html

协议:本文采用 CC BY-NC-SA 4.0 隐私协议,转载请注明出处!

评论区