知识库批量补双链并发布

直接执行知识库核心文章的批量互链、索引刷新、博客构建验证与线上发布,解决“图谱弱、文章孤岛化”的问题。


一、背景

1.1 问题现状

用户明确表达“不想再听建议,要直接做”。当前知识库虽然已有多篇核心文章,但文章之间的互链仍偏少,容易出现:

  • 页面内容存在,但图谱关联弱
  • 首页能看到文章,进入文章后难以横向跳转
  • 知识点沉淀了,但没有形成主题网络

1.2 目标

  • 为核心知识库文章补充双链/互链
  • 刷新知识库索引
  • 同步到 Quartz 博客
  • 本地构建验证无误后推送到线上
  • 修复同步过程中的首页备份风险

1.3 约束条件

  • /data 磁盘空间紧张,执行前必须检查空间
  • 不允许只改本地不验证构建
  • 不允许只口头说明,必须真实推送上线
  • 首页不能被知识库同步误覆盖或误删除

二、方案设计

2.1 技术选型

方案优点缺点结论
只改首页导航改动小文章内部仍是孤岛❌ 放弃
批量给核心文章补“关联笔记/参考资料”双链收益直接,图谱改善明显需要逐篇检查✅ 采用
全库自动生成语义链接覆盖广当前容易误链,且耗时更长⏳ 暂不采用

选择理由:先把影响最大的核心文章串起来,能最快改善浏览体验与图谱效果,而且风险可控、便于验证。

2.2 实现架构

知识库核心文章补链
  -> 重建 INDEX / 知识库索引
  -> rsync 到 Quartz content
  -> npx quartz build 本地验证
  -> git commit && git push origin main

2.3 关键决策

决策点选择理由
优先范围先处理 7 篇核心文章覆盖首页主路径与近期重点内容
链接方式手工补充“关联笔记/参考资料”准确度高,避免误链
发布策略先构建验证,再推送避免把坏内容直接推线上
风险修复同步脚本排除 index.md.bak防止首页备份被 rsync --delete 误删

三、执行过程

3.1 步骤记录

步骤1:检查磁盘与读取核心文章

执行前检查 /data 空间,并读取以下核心文章内容:

  • 博客迁移到Quartz4.md
  • 知识库自动记录方案.md
  • 敏感信息加密方案.md
  • 知识库时间戳改进.md
  • 运行环境约束与进度监控.md
  • Docker镜像拉取方案.md
  • AI新闻汇总.md

结果:确认 /data 仍可用,但空间偏紧;核心文章可正常读取。

步骤2:批量补充互链

给上述文章补充 关联笔记 或扩展 参考资料,重点把以下主题串起来:

  • 知识库自动记录
  • 敏感信息加密
  • 时间戳规范
  • Quartz 博客同步
  • 运行环境约束
  • AI 早报自动化
  • Docker/部署实践

结果:7 篇核心文章已形成更明显的交叉引用网络。

步骤3:重建知识库索引

执行:

python3 /data/nanobot-workspace/scripts/generate_kb_index.py

结果/data/knowledge-base/INDEX.md/data/knowledge-base/知识库索引.md 已刷新。

步骤4:同步到博客并构建验证

先手动同步到 Quartz 内容目录,再执行本地构建:

rsync -av --delete ... /data/knowledge-base/ /data/ysdmh-new/content/
npx quartz build

结果:Quartz 本地构建成功,处理 11 个输入文件,生成 65 个输出文件。

步骤5:发现并修复首页备份风险

手动 rsync --delete 时发现 content/index.md.bak 被删除。

处理动作:

  1. 检查 content/index.md 仍存在且首页内容正常
  2. 修复 /data/nanobot-workspace/scripts/sync_to_blog.sh
  3. 增加 --exclude 'index.md.bak'
  4. 若备份不存在,则先从 content/index.md 自动重建备份

结果:同步脚本风险已修复,首页备份已重新建立。

步骤6:提交并推送线上

执行博客仓库提交与推送:

git add -A
git commit -m "chore: add knowledge backlinks and refresh graph"
git push origin main

结果:成功推送到 origin/main

3.2 时间线

时间事件
09:27用户要求不要再建议,直接执行
09:28检查磁盘并读取核心文章
09:29完成第一批核心文章互链补充
09:30重建索引、同步内容并本地构建验证
09:30发现 index.md.bak 被误删
09:31修复同步脚本并重建首页备份
09:31提交并推送博客仓库

四、遇到的问题

问题1:rsync --delete 删除了首页备份文件

现象:手动同步后,/data/ysdmh-new/content/index.md.bak 丢失。

原因分析

  • 之前同步脚本排除了 index.md,但没有排除 index.md.bak
  • 当源目录没有该文件时,--delete 会把目标目录中的备份文件删掉

解决方案

  1. 在同步脚本中增加 --exclude 'index.md.bak'
  2. 在 rsync 前加保护逻辑:若备份不存在但首页存在,则自动创建备份

验证结果:✅ 脚本已修复,index.md.bak 已恢复。

问题2:需要确保不是“改完就推”而是“验证后再推”

现象:如果只做知识库补链后立刻推送,可能把潜在链接或内容问题直接带上线上。

原因分析

  • Quartz 内容渲染依赖实际构建结果
  • 首页、索引、互链都需要在站点层验证是否至少能成功编译

解决方案: 先执行 npx quartz build,确认无构建错误后再 git push

验证结果:✅ 构建成功后再推送,流程完整。


五、结果与验证

5.1 最终产出

产出物路径状态
批量补链后的核心文章/data/knowledge-base/daily/...✅ 已完成
知识库索引/data/knowledge-base/INDEX.md✅ 已刷新
中文索引/data/knowledge-base/知识库索引.md✅ 已刷新
修复后的同步脚本/data/nanobot-workspace/scripts/sync_to_blog.sh✅ 已更新
首页备份/data/ysdmh-new/content/index.md.bak✅ 已恢复
博客提交ec1910f✅ 已推送

5.2 验证方法

python3 /data/nanobot-workspace/scripts/generate_kb_index.py
npx quartz build
cd /data/ysdmh-new && git log -1 --oneline

结果

  • 索引生成成功
  • Quartz 构建成功
  • 最新提交为 ec1910f chore: add knowledge backlinks and refresh graph

5.3 遗留问题

  • 当前只处理了核心文章,尚未覆盖整个知识库的所有文章
  • 后续可以继续做第二批、第三批主题互链
  • 可考虑以后做“自动候选互链”,但需要避免误链

六、反思与改进

6.1 做得好的

  • 这次没有停留在建议层,直接完成了改文、构建、推送闭环
  • 在发现同步风险后立即修脚本,而不是只口头提醒
  • 先本地验证再上线,避免把潜在错误带到线上

6.2 需要改进的

  • 手动 rsync 前应更早意识到 index.md.bak 也会受 --delete 影响
  • 下一步应继续扩大互链覆盖范围,不只停在首页核心文章

6.3 经验教训

⚠️ 重要教训,避免再次犯错

  1. “首页保护”不能只保护 index.md,还要保护备份文件

    • 错误做法:只排除 index.md
    • 正确做法:同时排除 index.md.bak,并在缺失时自动重建备份
  2. 知识库增强必须走完整发布链路

    • 错误做法:只改 markdown,不做站点验证
    • 正确做法:补链后重建索引、同步内容、构建验证、再推送
  3. 用户说“做”,就应该给结果而不是再给方案

    • 错误做法:继续解释为什么值得做
    • 正确做法:直接执行,并汇报真实结果与真实问题

6.4 后续计划

  • 按主题继续补第二批互链(自动化、部署、通知、加密等)
  • 视需要把首页推荐阅读进一步扩成专题导航
  • 若知识库继续增长,可增加“相关文章”自动推荐能力

七、参考资料


附录

相关文件

文件路径说明
/data/nanobot-workspace/scripts/sync_to_blog.sh博客同步脚本(已修复首页备份保护)
/data/nanobot-workspace/scripts/generate_kb_index.py知识库索引生成脚本
/data/ysdmh-new/content/index.md博客首页
/data/ysdmh-new/content/index.md.bak首页备份
/data/knowledge-base/知识库索引.md中文知识库索引

关键结果

  • 博客仓库最新提交:ec1910f chore: add knowledge backlinks and refresh graph
  • 本地 Quartz 构建:成功
  • 核心文章互链:已完成第一批