Bedic 全文索引

搜索公开内容

项目PROJECT

与Obsidian同步的博客搭建(一)——从 Obsidian 到公开网站

介绍当前真实运行的 Obsidian Sync、只读镜像、TypeScript 内容编译器、Astro 静态站与不可变 Release 架构。

更新
阅读
2 分钟

与Obsidian同步的博客搭建(一)——从 Obsidian 到公开网站

这个系列最早记录的是一套 Rust/Axum 动态博客。后来我真正把网站长期运行起来时,目标发生了变化:Obsidian 必须继续是唯一写作环境,网站只能读取明确发布的版本,服务器不能反向修改 Vault,构建失败也不能影响正在访问的页面。

因此当前方案已经不再是“让服务器直接读取 Markdown 并动态渲染”,而是一条有边界的发布流水线:

桌面 / Android Obsidian
        ↓ Obsidian Sync
远端 Vault(权威内容)
        ↓ 只读同步
Server Mirror(非权威镜像)
        ↓ TypeScript 内容编译器
Published Revision + Astro + Pagefind
        ↓ 验证
不可变 Release
        ↓ 原子切换 current
Caddy 静态托管

评论、点赞和浏览量由独立的 Waline/SQLite 服务提供。它可以暂时不可用,但不能拖垮文章、导航、搜索、RSS 或站点地图。

为什么不让网站直接读取 Vault

Vault 里既有公开文章,也有任务、密码、Inbox、私人日记和系统文件。只靠一个 publish: true 过滤不够:错误目录、错误类型、重复 slug、断裂附件或一次不完整同步,都可能把不该公开的内容带进网站。

现在每篇内容需要同时通过目录、typepublishpublish_revision、稳定 ID 和资源检查。网站构建只面对通过校验的编译产物,不接触原始 Vault。

最终效果

bedic-web-home-20260722.png

Blog 只放生活内容;Wiki 整理可持续维护的知识;Projects 记录配置、开发、部署和维护;Daily 只在主动发布后出现。网站首页不再伪装成 Obsidian,而是把这些公开内容重新组织成适合阅读的结构。

bedic-web-projects-20260722.png

本系列路线

  1. 本篇:目标、边界和最终架构。
  2. 与Obsidian同步的博客搭建(二)——内容编译与发布边界:如何决定一篇笔记能否公开。
  3. 与Obsidian同步的博客搭建(三)——不可变Release与交互服务:Release、搜索、评论与回滚。
  4. 与Obsidian同步的博客搭建(四)——Astro前端与阅读体验:静态前端、主题、移动端和可访问性。
  5. 与Obsidian同步的博客搭建(五)——服务器部署:Caddy、systemd、权限隔离和上线。
  6. 与Obsidian同步的博客搭建(六)——持续运维:内容更新、代码升级、监控和恢复。

这套方案适合希望继续在 Obsidian 写作、又不愿把整个 Vault 交给主题或托管平台的人。它比“复制 Markdown 到网站仓库”复杂一些,但换来的是清晰的隐私边界、稳定链接和可验证的回滚路径。

RESPONSE DESK / 读者来信

继续这场讨论

浏览 评论

指出疏漏、补充案例,或留下你在实践中遇到的新问题。

评论区将在接近此处时加载。