这个博客是如何搭建的
这是本博客的第一篇文章,也是一份搭建记录。
本项目的目标,是把日常笔记、学习记录和长期思考整理成一个可以公开访问的网站。整个方案尽量保持简单:使用 Obsidian 编写 Markdown,通过 Quartz 生成静态网站,再借助 GitHub 和 Cloudflare Pages 完成版本管理与发布。
这套博客的核心
Obsidian 负责写作,Quartz 负责把笔记变成网站,GitHub 负责保存版本,Cloudflare Pages 负责自动构建和发布。
为什么使用 Obsidian
Obsidian 的核心内容是本地 Markdown 文件。
这种方式不依赖特定的内容管理平台,也不需要登录后台才能写作。标题、标签、双链、Callout 和文件夹都可以直接写入文件;即使未来更换博客引擎,文章仍然是可迁移的 Markdown 内容。
同时,Obsidian 本身已经承担知识整理和日常记录的功能。博客接入现有笔记流程之后,写作不需要额外维护一套独立的内容系统。
Quartz:把笔记变成博客
Quartz 是一个适合 Obsidian 内容的静态网站生成器。
Quartz 对 Obsidian Flavored Markdown 提供了较完整的支持,双链、反向链接、标签、Callout、目录和搜索等功能都可以继续使用。它生成的是静态页面,网站结构简单、加载速度快,也适合部署到 Cloudflare Pages。
当前的内容流程是:在博客的 phereblog 文件夹里编写 Markdown 文件,由 Quartz 读取这些文件,并生成网站需要的 HTML、CSS 和 JavaScript。
视觉设计
为了避免使用默认模板,本博客采用了一套偏编辑出版物风格的视觉方案。
整体使用偏暖的纸张色作为背景,搭配砖红色和蓝绿色作为强调色;标题使用衬线字体,正文保持克制的行距和阅读宽度。视觉设计的重点不是增加装饰,而是让网站更接近一本持续更新的个人刊物。
网站目前保留了几个主要阅读入口:左侧的搜索和文件探索,文章页的目录,文章之间的双链,以及首页的“最近写下”。随着内容增加,这些入口可以帮助读者在文章之间建立关联。
从本地笔记到公开网页
整个发布链路可以压缩成下面几步:
Obsidian 写作
↓
phereblog/ 中的 Markdown
↓ git push
GitHub main 分支
↓ Cloudflare 自动构建
Cloudflare Pages
↓
公开网站公开博客被单独放置在 phereblog 文件夹中,而不是把整个 Obsidian 仓库上传到 GitHub。这样可以将私人笔记、工作资料、附件和其他本地文件留在原有 Vault 中,只有明确准备公开的文章才会进入博客项目。
在本地预览时,可以在博客项目根目录运行:
npm run dev确认文章和样式没有问题之后,再提交并发布:
git add phereblog
git commit -m "发布新文章"
git push origin HEAD:main代码推送到 GitHub 后,Cloudflare Pages 会自动开始构建。构建完成,网站就会更新;如果项目绑定了自定义域名,访问域名看到的也是同一份内容。
后续写作方式
后续只需在 Obsidian 中新建 Markdown 文件,写好 frontmatter,再完成一次 Git 提交和推送即可。最小的文章头部大概是这样:
---
title: 文章标题
date: 2026-08-08
description: 一句话介绍这篇文章。
tags:
- 随笔
draft: false
---如果暂时不想公开,只需将 draft 改成 true,Quartz 就不会把文章发布到网站上。这样可以先完成内容,再决定公开时间。
一个开始
目前博客的内容、栏目和写作方式仍会继续变化。这个项目的价值不在于一开始就完整,而在于先建立一个稳定的写作和发布链路,再随着内容积累逐步调整。
搭建过程也说明,个人网站不需要一次完成所有设计。只要先让它能够承载文章,后续就可以在持续写作中形成自己的结构和风格。
构建备注
本次搭建和文章整理使用了 Codex Luna 极高模式,消耗 Plus 周额度 1%。