开站札记

新的站点,新的开始

(Modified: )   ·   1 min read

前言

哈喽,又是尤利。根据惯例,每次开始服务的新站点我都会写一篇开站札记,记录一下想法和技术。

上次,我带来了自己纯手工编写的博客 ulog1,但随着部署的服务器到期,它早早地迎来了退役的时刻。

因此,我回到了曾使用过的 hugo。

简介

目前的技术方案是使用了静态博客系统 hugo,部署在 GitHub Page。这是一种再基础不过的部署方式。

简单来说,hugo 是一个 Golang 编写的程序,它能够将 markdown 文件渲染为静态的 HTML 网页文件,然后直接放在 GitHub Page 服务下托管。2

这种部署方式不需要服务器,不需要编程。对我来说,其还有独到的优点:

  • 本地编辑。可以在任何本地编辑器写 markdown 文档,编辑体验好。
  • 自动化部署。使用 GitHub Action 实现推送后自动更新部署站点。
  • 版本管理。得益于 Git 的版本管理,文章的修改历史得到了良好的记录。

既然这么好,为什么我一度抛弃了 hugo 转而自己开发博客系统呢?

  1. 练手项目,想编写一个自己的长期运行的后端项目。
  2. 对 git 的使用不够熟练,一度以为所有的文章都必须暴露在公网,无法实现加密等功能。

最根本的,还是我的心境发生了变化。我开始将注意力从读者转移到自身,从形式转移到内容,从琐碎转移到简单。将注意力从外在解放出来,专注于我自己的内容,是这次博客更新的主要目的。

可以注意到,我使用了一个非常简单的主题 typo。这是有意为之的,便于我将注意力集中于内容创作。当然,我 fork 了官方仓库,并进行了自己的细微修改,如支持文章最后修改时间。

技术细节

唯一值得记录的,是我使用了两个 GitHub 仓库来托管博客。一个是私有的 hugo 程序仓,源 markdown 文件、主题、配置等等都保存在这里。另一个是公开的 public 网页仓,只包含渲染后的网页。

自然,GitHub Page 应当托管 public 网页仓库。我的实现是在私有仓库中创建一个 GitHub Action,在 push 到 main 分支时自动触发,构建 hugo 网页,然后将编译后的 public 文件夹推送到网页仓库。

这样,能够将草稿、加密之类的源文件隐藏起来,且不包含配置等私密(其实也没有)和冗余的信息。


  1. 使用 Golang 编写后端,React 编写前端的个人博客系统,依赖数据库。 ↩︎

  2. 本质上类似于写了一个 Word 文档,放在网上供大家查看。 ↩︎