Hugo on Github Pages via Github Actions

教程

Hugo Themes

PageModX

使用了 PageModX 主题,因为可以在侧边栏显示目录。在 hugo.yml 中的 params 添加以下参数:

params:
  showToc: true # Enables the Table of Contents
  TocOpen: true # Opens the ToC by default (optional)
  TocSide: 'right'

几年没维护了,官方的安装教程已经失效(所用 Github Actions 已被弃用),遂 git clone。然而配置文件也很难配,官方给的模板也很让人头大🤕

代码块渲染出问题了,有黑色四角 Screenshot 2025-09-06 at 4.08.00 PM.png Gemini CLI + 各种奇思妙想花了好久才解决😭😡😭😡😭。解决方案是在 hugo.yml 里面加了这些东西:

outputs:
  home:
    - HTML
    - RSS
    - JSON
markup:
  goldmark:
    renderer:
      unsafe: true
  highlight:
    style: dracula
    lineNos: false
    noClasses: false

Hugo-admonitions

Git仓库

用来渲染 Obsidian 的 Callout 的,效果不错。如图

Screenshot 2025-09-06 at 5.52.30 PM

图床

教程

Cloudflare R2 存图 + WebP Cloud 处理图片 + PicGo 自动上传,很棒啊很棒👍

PicGo

MacOS 用户如果喜欢截图后显示 floating thumbnail 的话记得给 PicGo 开启全盘读取权限,才能拖拽 thumbnail 上传。

教程中 Amazon S3 插件的“自定义域名”已经改成了“自定义URL输出模板”,设成https://img.example.com/{path}就好。变量详见插件官网.

Obsidian QuickAdd

Strings in Template File

一定要用双引号,因为单引号会被 Obsidian 在保存文件时自动去除,导致 Hugo 无法解析。 虽然貌似 yml 中字符串不需要引号,但是我也不清楚内部机理,反正能跑就行(

---
draft: true
date: "{{DATE:YYYY-MM-DD}}T{{TIME:HH:mm:ss}}+08:00"
title: "{{VALUE:articleTitle}}"
slug:
description:
categories: []
tags: []
---

因为这个插件相关的脚本和 template 是放在 obs_scripts/ 下的,而我的 Obsidian 仓库是在 Hugo 的 content/ 目录下的,所以要在 hugo.yml 中把 obs_scripts/ 给 ignore 了以免被 Hugo 处理:

ignoreFiles:
  - "content/posts/obs_scripts/.*"

后记

为什么突然想搭一个博客呢……本来是上哲学课听不懂,于是录音以复习。因为有转录和人声增强的需求,所以花费了大量时间精力建立起

  1. ffmpeg loudnorm 标准化音量
  2. UVR5 提取人声
  3. * Audacity 降噪
  4. Whisper 转录
  5. LyricsX 滚动显示转录稿

工作流,由于过程实在太累,所以想把它记下来,同时建立起博客以便学习其他东西。