Cloudflare + github + pelican打造静态博客
已经不知道这是第几个博客了,这次玩点更复杂的,用Cloudflare + github + pelican打造静态博客。
静态博客系统是一种不需要数据库和后端服务器的博客平台,它可以通过生成静态的HTML文件来展示博客内容。静态博客系统有很多优点,比如速度快、安全性高、部署简单等。本文将介绍如何用cloudflare和pelican搭建一个静态博客系统。
cloudflare是一个提供免费CDN(内容分发网络)服务的网站,它可以帮助我们加速网站的访问速度,同时也提供了一些其他的功能,比如SSL证书、DNS管理、防火墙等。pelican是一个用Python编写的静态博客生成器,它可以通过Markdown或reStructuredText等格式来编写博客文章,并且支持多种主题和插件。
要用cloudflare和pelican搭建静态博客系统,我们需要以下几个步骤:
- 注册一个域名,并将其解析到cloudflare的DNS服务器上。
- 在cloudflare上开启SSL证书,并设置好相关的规则和页面规则。
- 安装Python和pip,并用pip安装pelican和Markdown等依赖包。
- 用pelican-quickstart命令创建一个新的博客项目,并修改配置文件和主题文件。
- 用pelican命令生成静态文件,并将其上传到cloudflare的workers sites服务上。
- 在workers sites上设置好路由和缓存策略,并测试访问效果。
以上就是用cloudflare和pelican搭建静态博客系统的基本流程,具体的细节可以参考以下的链接:
- https://www.cloudflare.com/zh-cn/
- https://docs.getpelican.com/en/stable/
- https://developers.cloudflare.com/workers/platform/sites
但是,这次使用的并非上面的步骤,而是使用github作为静态博客的存储库,不需要再本地生成静态文件后上传,只需要上传pelican的配置文件和md,利用cloudfare的pages自动编译生成静态文件。记录步骤如下:
一、github
1.从Github Desktop下载最新软件,并安装。
2.在github上创建新的项目,名字任意(我用的是peizhi.github.io),public或者private都可以。
3.利用Github Desktop把peizhi.github.io克隆的本地,路径可以是path/to/you/blog。
二、pelican
1.安装python3.7以上的python环境(最好是3.7版本,这样和cloudflare的本版相同)。
2.安装pip。
3.安装pelican:
python -m pip install pelican
4.导出当前python环境支持运行pelican的所有库:
pip freeze > requirements.txt
5.如果你的python版本大于3.7,那么最好打开requirements.txt,把里边的包的版本好删除,例如:
pelican==4.0 修改成 pelican
6.把requirements.txt放到path/to/you/blog目录。
7.在cmd中切换到path/to/you/blog目录,执行命令:
pelican-quickstart
8.上一步会生成pelican的基本配置文件和文件夹,content目录中存放的就是post的具体内容,以markdown形式撰写,下面是默认生成的例子:
Title: My super title
Date: 2010-12-03 10:20
Modified: 2010-12-05 19:30
Category: Python
Tags: pelican, publishing
Slug: my-super-post
Authors: Alexis Metaireau, Conan Doyle
Summary: Short version for index and feeds
This is the content of my super blog post.
三、Cloudflare
1.写好post放到content目录后,在Github Desktop中以此执行commint,push,就会把新增的内容提交到github上。
2.登录到Cloudflare dashboard,然后选择您的帐户。
3.在“帐户主页”中,选择“工作人员和页面”>“创建应用程序>页面”>“连接到 Git”。
4.选择您创建的新 GitHub 存储库,然后在“设置生成和部署”部分中,选择“Pelican”作为框架预设。您的选择将提供以下信息。
- Production branch: main(或者是master,根据你的实际情况填写)
- Build command: pelican content
- Build directory: output
5.选择“环境变量(高级)”,然后设置值为PYTHON_VERSION: 3.7
部署站点后,您将在 上收到项目的唯一子域。*.pages.dev,之后每次修改或者新增post后提交到github,cloudflare会自动去github取最新更新并编译成静态网页。