← 与Obsidian同步的博客搭建

与Obsidian同步的博客搭建——前言

与Obsidian同步的博客搭建——前言

我一直想要一个真正顺手的博客系统。不是为了折腾后台、插件和主题,而是想把写作路径缩到最短:在 Obsidian 里写,保存,服务器自动同步,网站直接更新。对我来说,博客、知识库、待办本来就是同一套内容管理,如果分成三套系统,最后很容易变成“东西记了很多,公开内容却一直没发”。

为什么选择这个方案

现成方案当然很多,但都差一点意思。

Hexo、Hugo 这类静态生成器成熟又稳定,不过它们通常还是“写完,再构建,再部署”的工作流。我不想每次写完一篇东西,还得切到终端再走一遍发布动作。既然 Obsidian 已经是我的唯一写作入口,那我更想要“写完即发布”。

WordPress 也考虑过,但最后还是放弃了。原因很简单,它太重了,而且是 PHP 路线。我不需要庞大的后台、主题和插件系统,只想要一个能在 2 核 2G 小服务器上稳定跑起来的小站。

所以最后的核心需求其实很直接:

  • Obsidian 是唯一写作入口
  • 写完自动同步到服务器,不需要额外发布操作
  • 博客、知识库、待办三合一
  • 资源占用小,维护别太累

它的代价也得先说清楚。Rust 没有现成博客系统那么容易上手,编译也确实慢,前期搭建会比“装个成品”更费脑子。但它跑起来很快,内存占用也小,后面要加功能时可控性很高,这正是我想要的取舍。

最终效果展示

现在这个站已经跑在 bedic.tech 上。整体是紫色主题的暗色系风格,阅读感偏安静。它不只是一个文章列表页,而是把整套 Obsidian 内容直接搬到了网页上。

目前已经实现的效果包括:

  • 博客按分类展示,URL 采用目录型结构:/blog/{category}/{slug}
  • 代码块带语言标签和复制按钮
  • 图片支持点击放大 lightbox
  • 浏览量统计和点赞功能
  • 基于 SQLite FTS5 的全文搜索
  • 评论系统
  • RSS 订阅
  • 移动端适配,长文页面有 TOC 悬浮球
  • /wiki 知识库页面和 /todo 待办页面

对我来说,最关键的不是“功能多”,而是这套流程真的顺。你在 Obsidian 里写,Syncthing 同步到服务器,网站马上就能读到更新,中间没有导出、构建、复制粘贴这些额外动作。

技术栈概览

这套项目没有追求花哨,核心思路就是轻量、够用、好维护。

  • 后端:Rust + Axum 0.8,页面模板用 Askama,Markdown 渲染用 Comrak 0.37
  • 数据库:SQLite,通过 rusqlite 访问,全文搜索直接用 FTS5
  • 前端:原生 HTML/CSS/JS,不上大框架,少量交互用 htmx
  • 同步:Syncthing,负责电脑到服务器的 Vault 实时同步
  • 部署:Caddy 处理反向代理和自动 HTTPS,systemd 托管服务
  • 域名:bedic.tech

这几样东西拼起来以后,链路其实很简单:Obsidian 负责写,Syncthing 负责传,Rust 服务负责读和展示。对个人博客来说,这种结构已经足够清晰。

这个系列会写什么

接下来我会把整个过程拆成 5 篇,按从开发到部署的顺序慢慢写:

  1. Rust后端开发(上):项目创建、Vault扫描、Markdown渲染
  2. Rust后端开发(下):路由、模板、搜索、评论、统计功能
  3. 前端美化:紫色主题、暗色模式、代码块、图片、TOC
  4. 服务器部署:腾讯云CVM、Caddy、systemd、Syncthing
  5. 持续运维:更新流程、脚本、常见问题

我会尽量按初学者能跟上的节奏来写,不默认你已经熟 Rust,也不会把部署过程一笔带过。该说的坑、该讲的取舍,都会放进去。

适合谁看

如果你也在用 Obsidian,而且想把博客、知识库、待办统一成一套工作流,这个系列应该会对你有帮助。它尤其适合不想用重型 CMS、又不满足于现成静态博客流程的人。

如果你最在意的是十分钟上线,那这套方案可能不是最快的答案。可要是你更在意写作流程顺不顺、站点轻不轻、后面好不好扩展,那这条路很值得试试。

后续文章里涉及的代码我都会整理到 GitHub,方便你边看边对照。下一篇,我们先从 Rust 后端的基础部分开始。

目录

Comments (0)

No comments yet. Be the first!