我如何使用 Obsidian, Hugo, GitHub 和 Cloudflare 搭建零成本、完全自主的博客
如何使用 Obsidian 编写博客并即时发布
2025年4月23日
最近我一直在使用 Obsidian 进行写作,这带来了巨大的改变。 本地优先的模型意味着所有内容都以纯文本形式存储在我的机器上,并且借助 Minimal 主题,界面保持简洁且免受干扰。
我的 vault 存储在 iCloud 中(Dropbox 或 Google Drive 也可以),因此笔记可以在设备之间无缝同步——我经常在手机上开始草稿,然后在笔记本电脑上完成。
对于发布,我使用 Hugo 搭配 Bear Blog 主题(快速、极简),并通过 GitHub 和 Cloudflare Pages 进行部署。 这种技术栈让我拥有完全的控制权:没有订阅费用、没有厂商锁定,也没有平台消失或更改策略的风险。
如果你:
- 正在使用(或想要尝试)Obsidian
- 不介意一些技术设置
- 喜欢使用基于 Git 的版本控制编写纯文本
- 想要一个快速、免费、可移植的发布流程
那么这种设置可能正是你所需要的。 设置完成后,发布就像切换草稿标志并推送到 GitHub 一样简单。
设置你的系统
这篇文章是对所有内容如何组合在一起的高级概述。 它不是一个教程,但如果你熟悉基本的开发工具,应该很容易理解。 如果有任何不清楚的地方,像 ChatGPT 或 Claude 这样的 LLM 可以很好地填补空白。
1. 安装和设置 Hugo
首先,你需要在你的机器上安装 Hugo。 安装完成后,创建一个新的站点:
hugo new site myblog
cd myblog
然后添加 Bear Blog 主题(或你喜欢的主题):
git init
git submodule add https://github.com/janraasch/hugo-bearblog.git themes/hugo-bearblog
更新你的 config.toml
文件以使用该主题。 有关配置选项,请参阅 Bear Blog 主题文档。
2. 将 Obsidian 连接到 Hugo
这是关键部分。 Hugo 有一个特定的文件夹结构,你需要将你的文章写在 content
文件夹中。 在该文件夹中,我创建了一个 blog
子文件夹来存放我的所有文章。
所以我的文件夹结构看起来像这样:
myblog/
├── content/
│ ├── blog/ <- 这是我写文章的地方
│ └── ...
└── ...
要设置 Obsidian:
- 打开 Obsidian
- 点击“打开文件夹作为 vault”
- 导航到你的 Hugo 站点的 blog 文件夹(myblog/content/blog)
- 选择此文件夹
这样,你在 Obsidian 中编写的所有内容都会直接进入 Hugo 处理的正确文件夹。
3. 设置 Front Matter 模板
在 Obsidian 中,确保你的文章包含必要的 Hugo front matter:
+++
title= "Your Post Title"
date= YYYY-MM-DD
tags= ["post"]
draft= true
+++
draft: true
标签至关重要——当你准备好发布时,你需要将其切换为 false
。
4. 在本地预览文章
在写作时,我使用 Hugo 的本地服务器,并启用草稿可见性:
hugo server -D
这让我可以在推送到线上之前,在浏览器中查看所有内容的外观。
5. 连接到 GitHub
为你的博客创建一个新的 GitHub 仓库,然后连接你的本地 Hugo 站点:
git remote add origin https://github.com/yourusername/yourblog.git
git add .
git commit -m "Initial commit"
git push -u origin main
如果你需要帮助,有很多 GitHub 教程。
6. 设置 Cloudflare Pages
- 如果你还没有 Cloudflare 帐户,请注册一个
- 转到 Pages 部分并创建一个新项目
- 连接到你的 GitHub 帐户并选择你的博客仓库
- 对于构建设置:
- 构建命令:
hugo --minify
- 构建输出目录:
public
- 构建命令:
Cloudflare 的自有文档很好地涵盖了这个过程。
发布流程
一旦一切都设置好,发布就很简单了:
- 在 Obsidian 中编写你的文章
- 准备好发布时,在 front matter 中将
draft: true
更改为draft: false
- 提交并推送到 GitHub:
git add .
git commit -m "Publish new post"
git push
Cloudflare Pages 将自动检测到更改并重建你的站点,通常在一两分钟内。
最后的一些想法
这种设置需要一些初始工作,但回报是巨大的。 一旦设置好,这个工作流程就会融入背景——我只需写作、提交和发布。 没有摩擦,没有费用,一切都掌握在我手中。 如果你正在寻找一种轻量级、可持续的博客方式,这可能值得一试。