← 返回文章列表
用 Obsidian 构建无感发布博客
介绍如何通过 Obsidian + Next.js + GitHub Actions 实现写完即发布的博客工作流
obsidiannextjsautomation
文章大纲
为什么选择 Obsidian 作为写作工具
写作应该是轻松的。打开 Obsidian,写完笔记,把 publish 改成 true,剩下的全自动。
这个博客系统的核心理念就是:写作和发布之间,零摩擦。
技术架构
整个发布管线如下:
- Obsidian 作为本地编辑器,支持 Wiki Links、图片嵌入、Callout 等语法
- Obsidian Git 插件 每 5 分钟自动 commit + push 到 GitHub
- GitHub Actions 检测到
vault/blog/变化后触发构建 - Next.js 构建静态页面,自动转换 Obsidian 特殊语法
- SSH 部署 到京东云服务器
Obsidian 特色语法演示
Callout 示例
这是一条笔记
这是 Obsidian 的 Callout 语法,会被自动转换为漂亮的卡片组件。
开发小技巧
使用 publish: true 控制文章发布状态,无需任何额外操作。
注意事项
图片必须放在 assets/ 目录下,否则无法正确引用。
高亮语法
这是一段普通文本,其中包含高亮的关键词,以及另一个重要概念。
代码块
function getPublishedPosts() {
const files = walkDir(BLOG_DIR).filter(f => f.endsWith('.md'))
return files
.map(filePath => {
const raw = fs.readFileSync(filePath, 'utf8')
const { data, content } = matter(raw)
if (!data.publish) return null
return { slug: slugify(filePath), content }
})
.filter(Boolean)
}列表和任务
- 搭建 Next.js 项目
- 实现 Obsidian MD 预处理
- 配置 CI/CD 管线
- 部署到京东云
数学公式
行内公式:
块级公式:
流程图 (Mermaid)
graph LR
A[Obsidian 写作] --> B[Git Push]
B --> C[GitHub Actions]
C --> D[Next.js Build]
D --> E[部署上线]这就是全部。写完之后,一个单词 publish: true 就能发布。