从自己的导航网站角落里把博客翻了出来,不得不感谢 GitHub,虽然断更至少五年,但页面依然安然无恙。只可惜当年的源代码已经丢失,如今只能想办法手动复刻,重新启动。

重新审视了一圈,决定技术栈依旧沿用 Hexo + GitHub,主题也还是我熟悉的 Butterfly(再次感谢作者的维护!)。在恢复的过程中做了一些优化,也顺便记录下以前踩过的坑,权当备忘。

改进点 1:使用 nvm 管理 Node 环境

nvm (Node Version Manager) 是一款实用的 命令行工具,专门用于在同一台机器上 安装、切换、卸载多个 Node.js 版本,能有效避免不同项目因 Node 版本不一致而导致的依赖报错。

安装方式

安装非常简单,Linux 和 Windows 略有不同:

  • Linux/macOS:使用官方脚本安装。
  • Windows:前往官网下载安装包(setup.exe)直接安装即可。

常用命令

使用起来也非常直观,以下是常用指令速查:

目的 命令 说明
查看可用版本 nvm ls-remote --lts 列出远程服务器上所有 LTS 版本
安装 LTS 版本 nvm install --lts 安装最新的长期支持版
安装指定版本 nvm install 20.12.2 安装特定的 Node.js 版本
切换版本 nvm use 20.12.2 切换当前终端使用的版本
设置默认版本 nvm alias default 20 设置新建终端时的默认 Node 版本
卸载旧版本 nvm uninstall 16.20.2 移除不再需要的版本

改进点 2:个人导航页迁移至 Pintree

Pintree 是一款能将「浏览器收藏夹秒变个人导航站」的开源小工具,2024 年中上线后迅速在 GitHub 斩获 400+ Star。它的核心思路非常简洁,仅需三步:

  1. 利用浏览器插件一键将书签导出为 JSON 文件;
  2. Fork 官方仓库并将 JSON 文件上传;
  3. 利用 GitHub Pages 自动生成一个可访问的静态导航页(形如 https://你的用户名.github.io/pintree)。

全程 0 服务器、0 成本,5 分钟即可搞定。

此外,该方案的架构设计非常轻量且巧妙:部分部署方式可依赖于 Neon 提供的免费 PostgreSQL 进行数据存储,以及 Vercel 提供的免费站点托管。这种组合不仅完美实现了“白嫖”,更能做到网站内容的即时修改与同步,彻底告别了以往繁琐的 Markdown 编辑和 Git 提交流程。

创建统一的文档模板

scaffolds 文件夹下,我创建了一个名为 butterfly.md 的文件,用于存放 Butterfly 主题相关的文章配置模板。这样,在以后创建新文章时,只需执行一个简单的命令,即可快速生成包含常用配置的 Markdown 文件。

scaffolds/butterfly.md

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
---
# 基础文章属性
title: {{ title }}
date: {{ date }}
updated: {{ date }}
permalink:
keywords:
description:
summary:
categories:
tags:

# Butterfly 主题特色配置
# 文章封面图路径(留空使用主题默认 / 可填相对或绝对路径 / 可填颜色代码)
cover:

# 文章顶部主视觉图(留空则继承 cover / 可填相对或绝对路径 / false 表示关闭)
top_img:

# 是否启用版权信息显示
copyright: true

# 是否显示“打赏”模块
donate: true

# 右侧浮动目录配置(false 关闭 / true 开启)
toc:
enable: true
number: true # 是否启用目录序号
auto_open: true # 默认展开所有层级

# 评论系统开关(false 关闭 / true 开启)
comments: true

# 文章置顶排序(数字越大越靠前;0 表示不置顶)
sticky: 0

# 文章密码保护(留空表示公开 / 填入字符串作为访问密码)
password:

# 是否开启文章过期提醒
warning:
enable: false # 是否启用提醒
days: 180 # 过期天数阈值

# 自定义链接按钮(仅在需要时启用)
# link:
# - name: 阅读原文
# link: https://example.com
# avatar:
# theme: '#2bbb57'

# 自定义 CSS/JS 注入(仅在需要时启用)
# inject:
# head:
# - &lt;link rel="stylesheet" href="/css/custom.css"&gt; # 注入到 <head>
# bottom:
# - &lt;script src="/js/custom.js"&gt;&lt;/script&gt; # 注入到 <body> 底部

# 其他 Butterfly 主题专属配置选项
# aside: false # 强制关闭文章侧边栏
# mathjax: true # 单篇启用 MathJax 支持
# katex: true # 单篇启用 KaTeX 支持
# aplayer: true # 单篇启用 APlayer 音频播放器
# mermaid: true # 单篇启用 Mermaid 图表绘制
---

快速创建新文章

今后,可以使用以下命令来快速生成一篇新的 Butterfly 主题文章,它将自动应用上述模板:

1
hexo new butterfly "文章标题"