利用Zola将博客从Ghost迁移到Github Pages
目前采用的Ghost博客框架,是搭建在DigitalOcean上的,每个月需要花费我5刀。而我只把这个服务器用作博客,我也不需要服务器用做其他的事情,而且架设在服务器上需要更多的精力进行维护,那么不如就把博客迁移到Github Pages好了,成本低,而且也解决了博客内容备份的问题。
在写下这篇文章的时候,我习惯于把所有的记录都写在Notion中,不论是私人的还是公开的,后续大概也是如此。这一篇文章也是先在Notion上完成,然后黏贴到md文件中,进一步再上传至Github Pages。目前这篇文章的效果我觉得还是不错的,这也加强了后续我更新博客动力。
暂时发现的问题就是通过 Github Action 来进行网站构建,虽然不能说特别慢,但是在推送完代码之后还是需要等待一段时间。
静态网站生成器:Zola https://www.getzola.org/documentation/getting-started/overview/
Zola环境搭建
以下操作均在macOS上完成
Setp1: 安装Zola
brew install zola
Setp2: 初始化Zola仓库
zola init ghost.livexia.xyz
Setp3: 一些简单的zola命令
- 构建网站
zola build
- 本地预览
zola serve
- 编译检查
zola check
安装主题
参考的博客的主题应该是手写的?不确定我能在短期内实现,先选择一个主题,后续再看看是否有自己定制化的需求。
简单使用主题 even
cd themes
git clone https://github.com/getzola/even
在 config.toml
中启用:
theme = "even"
根据even文档,进一步修改 config.toml
并不是特别喜欢这个主题的样式,可能会找时间将我参考的博客的主题进行复制修改
Ghost内容迁移
在Ghost管理页面上导出数据,导出后应该是一个json文件。
利用工具ghost-to-md
批量转换:
Step1:安装工具 npm install -g ghost-to-md
Step2: 在Ghost管理面板中导出数据,执行命令批量转换。
ghost-to-md cheng-xu-yuan-de-sheng-huo.ghost.2021-12-20-00-54-57.json
虽然利用工具能转换大部分的内容到 markdown,但是仍有部分错误需要手动修复。工具转出的markdown 头部的信息是yaml格式,为了和Rust的语言生态保持一致,修改yaml格式的markdown为toml。
进一步梳理博客中的内容,将部分博客文章删除,并分类了未完成的文章。
Github仓库架设
详细说明参见:https://www.getzola.org/documentation/deployment/github-pages/
Step1:执行git submodule 来包含主题仓库。
git submodule add https://github.com/getzola/even.git themes/even
Step2:生成github personal token
Step4:在仓库的 Secert 里添加token,注意要取和下一步Action 脚本中的 Token 一样的名字。
Step5:添加Github Actions
域名确定和解析调整
原有域名为 https://ghost.livexia.xyz/ 需要调整ghost为其他的什么吗?暂时保持不动吧。
将ghost.livexia.xyz的域名解析进行修改,原有dns解析是在 https://dns.he.net/ (注意不是https://he.net/)
- 删除原有的A类域名解析
- 添加CNAME域名解析,到github.io 页面
- 在仓库的Pages页面中增加域名即可,参见:"Managing a custom domain for your GitHub Pages site."
安装评论插件
在安装教程里,我看见需要修改博客的模版文件,我不想去动even的模版文件,大概率我自己会写一个和参考博客的类似的模版,所以这个部分暂时挂起。
ToDo
添加Google Analystic到模版中
ToDo
DigitalOcean退费
收到第二封回复,告知我能够将我账户上的未使用的余额进行退款,而我需要在账单到期后进行余额补足。
账户中的所有余额都已经完成退费,而这个月的账单是3.43美元,如果我用PayPal进行支付,我需要最少支付5美元。