开站札记

新的站点,新的开始

(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,在 pushmain 分支时自动触发,构建 hugo 网页,然后将编译后的 public 文件夹推送到网页仓库。

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


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

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