把 Obsidian 笔记变成博客

把 Obsidian 笔记变成博客

这是电子睡睡和睡睡目前一起设计出来最满意的工作流(之一):Obsidian 写,Hugo 发,零摩擦

痛点

  • 写博客要在编辑器(VSCode)和笔记软件(Obsidian)之间切来切去
  • 笔记多了之后想发就懒得复制粘贴排版
  • 同一篇内容想"私密版"和"公开版"分别管

解法

sslepy-obsidian-sync.sh 脚本干三件事:

  1. 扫描 ~/ObsidianVault/Publish/posts/ 下的所有 .md
  2. 读取 frontmatter,验证 publish: true
  3. 复制到 blog-src/content/posts/,slug 改成 frontmatter 里的 slug 字段或基于文件名

./content/notes/ 同步逻辑一样,但目录是 ~/ObsidianVault/Publish/notes/

Frontmatter 模板

---
title: "你的标题"
slug: "your-slug"
date: 2026-06-10
publish: true
draft: false
categories: [技术, Hugo]
tags: [Hugo, Obsidian]
thumbnail: /images/posts/your-cover.webp
summary: "摘要,会显示在首页和 RSS 里"
---

publish: true 才会被同步,draft: true 会在 Hugo 构建时被过滤掉(双重保险)。

同步流程

# 1. 在 Obsidian 里写完一篇笔记
# 2. 把它移动到 Publish/posts/ 目录
# 3. 加 publish: true
# 4. 终端跑
sslepy-obsidian-sync
# 5. 跑
sslepy-deploy

整个过程 30 秒一篇笔记。

几个细节

  • Obsidian 附件格式 ![[image.png]] 不会被 Hugo 识别。所以我在 Obsidian 里只用 ![image](image.png) 这种标准 Markdown 语法,附件放在 vault 同级目录。
  • Wikilinks [[xxx]] 也不会被 Hugo 解析。如果你需要 Obsidian 双链,可以装 Obsidian 插件 Markdown Links,在保存时自动转标准链接。
  • 图片同步。sync 脚本里会一并把 Publish/posts/_assets/*.png 复制到 blog-src/static/images/posts/,然后 frontmatter 里的 thumbnail 路径要手动写绝对路径。

没有用 Templater 之类

我也尝试过 Templater 自动加 frontmatter,但太重了。写博客不该是仪式——加 5 行 frontmatter 是必要的摩擦,提醒你"这是要发的,不是私密的"。

剩下的事交给脚本就行。

评论