1 概述
博客是一种可用于承载媒体信息(如文本、图片等)的媒体载体。为了能方便的管理自己的知识体系,现在想要分析如何使用较低成本构建一个博客。
本文选用的方案是 Cloudflare Pages(也可以用Vercel) + GitHub + Obsidian + 域名 方式进行低成本发布。
本文提供的方法仅用于学习和交流,请遵守当地法律法规,继续阅读本文表示你将自行承担任何后果,并且承诺与文档编写者无关,如不同意请关闭页面。
2 参考
3 方案概要
为了能实现线上发布博客,需要部署博客服务器,与此同时需要DNS服务器将域名解析为博客服务器的IP地址,在博客服务器上构建 HTTP/HTTPS 标准端口网页服务,通过域名解析服务器将域名解析成博客服务器IP,这样用户通过个人终端打开浏览器访问博客的域名的时候,就能通过路由器访问博客服务器。
简而言之,就需要准备这几样东西:
- 域名
- 博客应用
- 服务器
4 构建方法
4.1 域名的获取
如果想要获取域名,需要从域名提供商那里获得,以前有免费的域名,现在免费的不大好找,至于选择哪个服务体提供商, 这里引用 2023国内和国外域名平台对比,及注册优惠购买介绍 |远山外贸笔记 的两张图,自行选择适合自己需求的即可。
需要注意的事情是,国内域名需要进行备案,具体备案时间可以网上搜索一下。
域名获取成功后,需要先登录 Cloudflare 后台 ,然后在快捷导航中选择 Websizes
页面,点击 Add a size
然后填写你新申请的域名。
点击 Continue
继续, 然后会提示选择构建方案,为了简单看一下效果,可以先选择 Free方案(请注意Free方案需要先绑定信用卡或者绑定Paypal)。Free方案会有一些限制,对于访问量不大场景下的话已经够用。
接下来会提示你要不要创建主机,先点击 Continue
跳过。
然后到了 Change your nameservers
DNS 解析配置页面, 这一步很关键,要记录下 Cloudflare的 DNS解析服务器。
这里给了两个 Cloudflare DNS解析服务器
,要记录下来。然后到你获得域名的地方去配置域名,将域名的 域名服务器 配置填写成 Cloudflare DNS解析服务器
然后保存,等待一段时间即可。
再次回到 Cloudflare 的后台的 Websizes
页面,如果域名成功被 Cloudflare 托管的话,可以看到 Active 的标记, Cloudflare会在域名成功托管后给你的绑定的邮箱发送邮件提示你域名托管成功。
4.2 博客构建方案
4.2.1 Obsiidan 发布方案比对
这里使用方案是,基于 Markdown 文件,使用 Obsidian 作为编辑器,利用开源 Obsidian 解析框架 Quartz
进行 Markdown 博客发布。
引用一下 obsidian 目前最完美的免费发布方案 - 渐进式教程 - 经验分享 - Obsidian 中文论坛 分析的 Obsidian 发布方案比对:
可以自行选择自己合适的方案, 这里选择的是 Quartz
继续。
Quartz 可以通过 在Markdown里面添加 frontmatter
的 draft: true
属性来实现文件隐藏. 具体操作见 Authoring Content 。
4.2.2 构建博客
先fork 一下这个项目:
Quartz
: GitHub - jackyzha0/quartz: 🌱 a fast, batteries-included static-site generator that transforms Markdown content into fully functional websites
具体操作细节可以在这里看: Welcome to Quartz 4 操作步骤大体如下:
- Writing content in Quartz
- Configure Quartz’s behaviour
- Change Quartz’s layout
- Build and preview Quartz
- Sync your changes with GitHub
- Host Quartz online
然后再单独创建一个GitHub项目用于存放博客的内容。类似如下: GitHub - observerkei/blog-observerkei
然后在 fork 的项目 ^2cdbf9 中,将 content 和 新创建存放博客内容的GitHub通过如下命令连接起来:
如果 submodule 配置完成后重新拉取了项目, content目录也许是空的, 那么也需要先执行一下初始化再进行更新同步.
项目链接完成后保存即可,后续在博客仓库中更新后,就能在这个 fork的仓库拉取更新。
4.3 Cloudflare Pages 服务器发布
通过云服务可以发布已经配置好的博客,可以使用 Cloudflare Pages 或者Vercel 进行发布,这里选择了前者。
进入 Cloudflare 后台 Cloudflare | Web Performance & Security , 然后通过导航进入到 Workers & Pages
页面,创建一个页面 Create application
然后选择 Pages
点击 Connect to Git
(注意要绑定自己的GitHub帐号以便能获得项目内容) 也可以选择gitlab
然后在 Select a repository
列表中选择刚刚 fork 并配置好的Quartz
项目进行部署。
填写构建命令和构建文件夹,然后完成构建即可。 后面要选择一个域名进行发布。
以下是构建要填写的参数:
构建参数 | 内容 |
---|---|
Build command | npx quartz build |
Build output directory | public |
构建成功后,同样导航到 Workers & Pages
页面,进入刚刚构建的应用中,定位到 Custom domains
中
然后选择 Set up a custom domain
填入之前 ^a1b1b3 申请的域名,完成发布即可。
后续更新博客的时候,如果同步提交fork项目的commit, 由于 Cloudflare 会检测GitHub的变动,新内容就会自动部署到 Cloudflare Pages 中进行发布。
5 鸣谢
- Cloudflare | Web Performance & Security
- GitHub - jackyzha0/quartz: 🌱 a fast, batteries-included static-site generator that transforms Markdown content into fully functional websites
- GitHub - oldwinter/knowledge-garden: 我的第二大脑 second brain,我的数字花园 digital garden,用obsidian双链笔记软件写作而成
- 几分钟、零基础搭建个人网页!- 高速直连,基于Cloudflare Page - 知乎