把 Obsidian 笔记变成博客
这是电子睡睡和睡睡目前一起设计出来最满意的工作流(之一):Obsidian 写,Hugo 发,零摩擦。
痛点
- 写博客要在编辑器(VSCode)和笔记软件(Obsidian)之间切来切去
- 笔记多了之后想发就懒得复制粘贴排版
- 同一篇内容想"私密版"和"公开版"分别管
解法
sslepy-obsidian-sync.sh 脚本干三件事:
- 扫描
~/ObsidianVault/Publish/posts/下的所有.md - 读取 frontmatter,验证
publish: true - 复制到
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 里只用这种标准 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 是必要的摩擦,提醒你"这是要发的,不是私密的"。
剩下的事交给脚本就行。
评论