《Hermes+Quartz 个人知识库:全流程从零跑通指南》
第一阶段:底层地基(环境构建与 Quartz 核心安装)
本章目标:在 Windows 宿主环境内激活 WSL2 虚拟化子系统,完成 Ubuntu 初始化,并安装 Quartz 印刷机核心引擎。
一、 开启 Windows 的 Linux 潜能 (WSL2)
- 打开 PowerShell:
- 在 Windows 任务栏搜索框输入
PowerShell。 - 右键点击”以管理员身份运行”。
- 在 Windows 任务栏搜索框输入
- 执行安装指令:
wsl --install - 重启电脑:完成组件激活。
- 初始化 Ubuntu:
- 重启后自动弹出的黑色窗口中,按提示输入:
- Enter new UNIX username: 建议使用小写英文(如
zzg)。 - New password: 设置密码(输入时屏幕不显示字符)。
- Retype new password: 再次确认。
二、 安装”印刷机”燃料 (Node.js)
Quartz 依赖 Node.js 环境运行。在 Ubuntu 终端内依次执行:
- 更新包列表:
sudo apt update - 安装 Node.js 与 NPM:
sudo apt install nodejs npm -y - 版本核验:
注:若显示 v18 或更高版本号,则环境就绪。node -v
三、 创建 Quartz 项目
- 进入主目录:
cd ~ - 创建项目文件夹:
mkdir quartz - 进入文件夹:
cd quartz - 初始化 Quartz:
npx quartz create
四、 关键交互决策 (Manual Choices)
在执行 npx quartz create 过程中,必须手动处理以下两次选择:
1. 初始化内容方式 (Initialize content)
- 屏幕显示:
Choose how to initialize the content in '...' - 操作:使用方向键选择
Empty Quartz。 - 逻辑:避免导入冗余的样例文档。
2. 链接解析方案 (Link resolution)
- 屏幕显示:
Choose how Quartz should resolve links... - 操作:选择
Treat links as shortest path。 - 逻辑:匹配 Obsidian 的默认双链链接规则。
五、 预览服务器首航测试
- 启动指令:
npx quartz build --serve - 状态检查:
- 终端输出:
Started a Quartz server listening at http://localhost:8080。 - 此时浏览器访问该地址应显示 404(因为尚未挂载 D 盘内容)。
- 终端输出:
- 停止服务:
- 按下
Ctrl + C。
- 按下
🛠️ 第一阶段:故障诊断手册
| 现象 | 原因分析 | 修复动作 |
|---|---|---|
| 输入密码无字符显示 | Linux 标准安全机制。 | 盲打密码后直接回车。 |
npx: command not found | NPM 工具未正确安装。 | 执行 sudo apt install npm。 |
npx quartz create 报错 | 网络延迟或权限受限 | 尝试添加 sudo 或更换网络环境 |
第二阶段:物理链路与云端对接(GitHub & Cloudflare)
本章目标:让 Linux 里的印刷机读到 D 盘的笔记,并建立起”本地—GitHub—Cloudflare”的自动化发布链路。
一、 打通物理链路(让印刷机看到纸张)
Quartz 默认在 Linux 内部寻找内容,而你的笔记在 Windows D 盘。我们需要建立一个特殊的”物理映射”。
- 进入项目目录:
cd ~/quartz - 删除原有的内容文件夹(如果有):
rm -rf content - 创建一个新的真实挂载点:
mkdir content - 执行物理挂载指令(请完整复制,包含引号):
sudo mount --bind "/mnt/d/个人知识库/网站展示" ~/quartz/content- 动作说明:系统会提示
[sudo] password,输入你的 Ubuntu 密码并回车。 - 逻辑原理:这一步是把 D 盘的文件夹直接”映射”进 Linux,Quartz 会认为这些文件就在它身边。
- 动作说明:系统会提示
二、 建立 GitHub 云端仓库(创建接收容器)
这一步需要在浏览器中操作。
- 打开 GitHub 并登录。
- 点击右上角
+按钮,选择New repository。 - Repository name:填入
notes。 - 公开性选择:务必勾选
Private(私有),防止个人笔记泄露。 - 点击底部的
Create repository。 - 获取地址:在生成的页面点击
SSH选项卡,复制那串以[email protected]...开头的地址。
三、 推送代码上云(建立传送门)
回到 Ubuntu 终端,依次执行以下指令。
- 初始化本地 Git 仓库:
git init - 将当前所有文件加入打包清单:
git add . - 创建第一个版本记录:
git commit -m "🚀 部署 V2.2 自动化架构" - 强制将分支重命名为 main(与 GitHub 对齐):
git branch -M main - 关联远程地址(请将下方地址替换为你刚才在 GitHub 复制的真实地址):
git remote add origin [email protected]:你的用户名/notes.git - 正式推送代码:
git push -u origin main
四、 配置 Cloudflare Pages(全球发布)
- 登录 Cloudflare 控制台。
- 进入
Workers & Pages→Create application→Pages→Connect to Git。 - 关键选项:在仓库列表中选择刚才创建的
notes。- 如果找不到,点击下方的
Cloudflare Pages蓝色链接,在 GitHub 权限页将notes加入授权名单。
- 如果找不到,点击下方的
- 配置构建参数(最关键):
- Framework preset:选择
None。 - Build command:手动输入
npx quartz build。 - Build output directory:手动输入
public。
- Framework preset:选择
- 点击
Save and Deploy。 - 绑定子域名:
- 部署成功后,点击
Custom domains。 - 点击
Set up a custom domain。 - 输入
notes.zhuzg.com并保存。
- 部署成功后,点击
🛠️ 第二阶段:常见错误与解决方法
| 现象 | 原因分析 | 解决方法 |
|---|---|---|
remote origin already exists | 之前已经关联过别的地址。 | 执行 git remote set-url origin [新地址]。 |
src refspec main does not match | 本地分支不叫 main。 | 执行 git branch -M main 强制更名。 |
| Cloudflare 找不到 notes 仓库 | GitHub 授权范围不足。 | 点击提示链接,在 GitHub 中添加该仓库的访问权限。 |
| 网页打开显示 404 | 挂载失效或 index.md 缺失 | 重新运行 sudo mount --bind 指令,并检查 D 盘是否有 index.md |
第三阶段:Hermes 自动化与日常维护
本章目标:配置 Hermes 的”大脑”,设定快捷指令,并建立一套”安全第一”的发布工作流。
一、 设定”一字咒语” (Alias)
为了让你不需要记住那一长串 Linux 指令,我们要给系统设定一个快捷键,只需一个单词就能完成预览和自愈。
- 打开 Ubuntu 终端。
- 写入快捷指令(复制并运行这长长的一行):
echo "alias fix='sudo mount --bind \"/mnt/d/个人知识库/网站展示\" ~/quartz/content && cd ~/quartz && npx quartz build --serve'" >> ~/.bashrc - 刷新系统配置:
source ~/.bashrc- 效果:从现在起,只要你在终端输入 fix,系统就会自动帮你挂载 D 盘并开启本地预览。
二、 武装 Hermes — 系统指令配置 (V2.2-终极稳定版)
以下是完整的 Hermes 系统指令,覆盖到 Agent 的系统提示词中。这是区分”存笔记”和”推网站”两种意图的核心。
# Role: 知识库自动化架构师 (V2.2-终极稳定版)
## 一、 核心意图路由 (优先判定)
1. [网站同步模式]:若指令包含"同步网站/发布更新"。
- 执行:sudo mount --bind "/mnt/d/个人知识库/网站展示" ~/quartz/content && cd ~/quartz && npx quartz sync
- 反馈:告知公网同步已下达。
2. [知识库存储模式]:若以"知识库:"开头。
- 分级:[手册] 全文保存;[笔记/复盘] 逻辑重构。
- 元数据:顶部强制 YAML (date, tags)。
- 文件操作:使用 execute_code 中的 Python open() 直接写入 Inbox。实测验证 Python open() 写入 /mnt/d/ 能正常触发 Windows NTFS 变更通知,Auto Note Mover 可自动捕获并分类。
- 指令示例:with open("FILE_PATH", "w", encoding="utf-8") as f: f.write(content)
- 注意:为确保 Auto Note Mover 触发,写入前请确保文件未被其他进程占用(勿重复写入同一文件),且 Obsidian 处于运行状态。若 Obsidian 关闭时写入,需在 Obsidian 设置中开启 Auto Note Mover 的 "Process existing files on startup" 选项。
- 路径:/mnt/d/个人知识库/Inbox/
- 命名:YYYYMMDD_HHMM_主题.md
- 反馈:仅回复"指令已执行,文件已存入收件箱"。
3. [常规对话]:执行专业辅助对话。
## 二、 物理路径约束
- 私密:/mnt/d/个人知识库/Inbox/
- 公开:/mnt/d/个人知识库/网站展示/三、“安全第一”的日常维护工作流
这是你作为架构师需要遵守的操作标准,确保任何敏感信息都不会误发。
- 采集 (AI 辅助):
- 随时随地发微信/网页内容给 Hermes,并在前面加 “知识库:”。
- Hermes 会将其存入你的 Inbox。
- 脱敏 (人工审核):
- 在电脑上打开 Obsidian,找到 Inbox 里的新笔记。
- 关键动作:若要公开,请将其复制一份到 网站展示 文件夹,并删掉里面的敏感信息(密码、私密想法等)。
- 发布 (一键上云):
- 确认无误后,直接对 Hermes 说:“同步网站”。
- 它会执行同步指令,你的 notes.zhuzg.com 将在 1 分钟后更新。
四、 自愈与灾备 (404 快速修复)
当你重启电脑,或者网站打不开时,请对照下表操作:
| 现象 | 处理动作 |
|---|---|
| 本地 http://localhost:8080 打不开 | 在终端输入 fix 即可。 |
| 网站显示 404,没有内容 | 对 Hermes 说 “同步网站”。这会重新触发物理挂载,让系统找回 D 盘的纸张。 |
| 同步时提示 Permission denied | 重新运行 fix 或 sudo mount 命令,并正确输入你的 Ubuntu 密码。 |
🏁 结语:你的数字花园已落成
现在,你拥有一套由 WSL2 驱动性能、Quartz 驱动美学、GitHub/Cloudflare 驱动分发、Hermes 驱动自动化的闭环系统。
- 你是总控官:负责内容的安全与决策。
- Hermes 是执行官:负责琐碎的 Linux 指令与排版。