前言

本人是一位计算机专业的学生,而学习计算机往往需要在网上自学很多内容。在网上搜索资料的的时候,抛开臭名昭著的 CSDN 虽然里面还是有一些不错的内容,最常见到的就是各式各样的个人博客。这些个人博客往往质量都相当高,我从这些博客中学习到了相当多的知识,收获颇丰。秉着“前人栽树,后人乘凉”的思想,在享受了那么多人栽的树后,我也决定搭个自己的博客。不求能做到栽树的水平,能够记录自己的学习经历,也已经很满意了。

域名

搭博客的第一步,自然是拥有一个属于自己的域名

wall-breaker-no4.xyz 这个域名,是我在 18 岁生日时给自己购买的生日礼物。这个域名最初是在腾讯云上购买的,后面迁移到了 Cloudflare 上。主要目的是为了白嫖 CF 免费的 CDN,次要目的是规避国内建站所需要的实名和备案。

框架

市面上主要的博客框架分为以下两大类:

最开始,我计划参考经常访问的一个博客:P3TERX ZONE,使用动态框架 Typecho 来搭建我的博客。 但我最后还是选用了静态框架 Hugo 来搭建我的博客,原因如下:

  • 在搭建难度上,静态博客相比动态博客更简单 我菜死了
  • 静态博客可以靠 GitHub pages 之类的服务提供网站,可靠程度++
  • Hugo 对 Markdown 的支持很好,可以把 Hugo 和 Obsidian 联动起来,方便写文章
  • 我的朋友 @ECWU@Steven53 都使用 Hugo 来搭建博客,有问题可以请教 骚扰

部署和托管

由于我的域名在就在 Cloudflare 上,因此在网站托管提供商上,我选择了 Cloudflare Pages。 至于如何在 Cloudflare Pages 上托管 Hugo 站点可以参考官方文档

图床

图床可以选择图床提供商,或者自建图床。图床提供商有免费的也有付费的,如国外有 SM. MS,国内有七牛云 等。自建图床也可以使用各个厂商的对象存储来实现。但是最终我选择了 GitHub repository + Cloudflare Workers 来自建图床,原因如下:

  • 无论是收费还是免费的图床亦或是对象存储,都有容量限制。而 GitHub repository 只要不滥用,基本可以视作无限容量,对单个文件也没有限制大小
  • 在我的博客中,除了域名费用逃不开,所有环节都是免费的。秉着“能白嫖就一分钱不出”的穷鬼原则,在图床这自然是不会花一分钱的

自建的方法我参考了知乎上的一篇文章,将来有空了也会写一篇文章关于我自建的这个图床。

写作流程

使用模板来创建标头

Hugo 本身只需要用 Markdown 格式写成的文件放在 content/posts 下即可,并不需要用 Hugo 来创建 .md 格式的文件。因此只需在 content/posts 下创建 Obsidian 仓库,便可以在写博客时使用 Obsidian 来直接创建文件。

但目前还有一个问题:Hugo 在渲染博客时会读取文件标头内的内容,如时间、作者等 .md标头.png 而如果每次都要手动创建标头就太麻烦了,因此我试用 Obsidian 自带的 模板 功能来实现每次新建文件时自动创建标头。具体方法网上一搜就是,这里就不赘述了。

发表文章

在前面托管和部署中,我已经配置好了 Cloudflare 和 GitHub 的联动,所以我只需要将标头内的 draft 改成 false,并 push 到 GitHub 上即可。之后包括渲染网站、部署等操作, Cloudflare 会自动帮我完成。

我写了一个脚本来一键发布文章:

#!/bin/bash
git add .
# 获取本地时间并格式化为YYYY-MM-DD HH:mm:ss
commit_time=$(date +"%Y-%m-%d %H:%M:%S")
git commit -m "Update site at $commit_time"
git push

写在最后

说来惭愧,我在 20 年就已经拥有了搭建个人博客的想法,但直到前段时间,才终于把这个博客搭起来。非常感谢 @ECWU@Steven53 的帮助,如果没有他俩为我指点迷津,我在搭建这个博客的过程中想必得绕不少弯路。