用 Git Bisect 二分查找:精准揪出引入 Bug 的罪魁祸首

背景 我的 Hugo 博客使用了 PaperMod 主题,在一次升级后(从 10d3dcc 升到 154d006),右上角的导航菜单出现了样式错乱:菜单项间距变大、悬停效果失效、整体位置偏移。 一开始我尝试在 custom.css 中覆盖样式,改了好几轮都没完全解决。因为我不确定是主题的哪次提交引入了问题——中间可能隔了几十个甚至上百个 commit。 传统的做法是逐个 commit 回退测试,但效率太低。这时候,git bisect 就是最好的工具。 ...

2026年7月26日 · 4 分钟 · Chow Ray · PGP SIGNED

📘 TortoiseGit 子模块核验手册:如何看懂 PaperMod 改了什么?

前置条件:你刚刚执行完 子模块更新 操作,且 TortoiseGit 提示更新成功。 目的:在正式提交(Commit)之前,快速审查主题作者(Aditya)到底更新了哪些功能或修复了哪些 Bug,防止升级导致博客样式崩坏。 🏆 招式一:提交窗口“隔空透视” (最推荐) 适用场景:日常快速升级,只想知道“大概更新了什么内容”。无需离开当前界面,效率最高。 ...

2025年12月25日 · 3 分钟 · 1195 字 · Chow Ray · PGP SIGNED

📘 TortoiseGit 子模块更新(升级)操作手册

适用场景:当 Hugo PaperMod 主题发布了新版本,你需要将本地的 themes/PaperMod 文件夹升级到官方最新版时。 1. 核心操作:勾选策略 在博客根目录,右键 -> TortoiseGit -> 子模块更新 (Submodule Update)。 请严格按照下图勾选(四项全选): 选项 (中文) 选项 (英文) 状态 核心理由 (Why) 初始化子模块 --init ✅ 勾选 防漏。万一主题作者新增了内部依赖,这能保证配置被正确初始化,有备无患。 递归 --recursive ✅ 勾选 防套娃。如果 PaperMod 内部还引用了别的子模块,这个选项能一并更新,防止报错。 远端跟踪分支 --remote ✅ 勾选 ⭐ 升级核心。只有勾选它,Git 才会去下载“最新版”。如果不勾,Git 只会将主题重置回你上次记录的旧版本(原地踏步)。 变基 --rebase ✅ 勾选 防冲突/保整洁。如果你不小心改动了主题里的文件,或者文件权限变了,“变基”能把你的改动“浮”在最新版之上,保持历史线是一条直线,比“合并(Merge)”更干净。 2. 关键后续:提交变更 (Commit) 点击“确定”并显示成功后,工作只完成了一半! ...

2025年12月25日 · 2 分钟 · 923 字 · Chow Ray · PGP SIGNED

重构实录:Hugo+PaperMod 的终极现代化改造

摘要:记录了一个 17 年老博客从 Netlify 迁移至 Cloudflare Pages 的全过程。涵盖了构建环境配置、Profile Mode 深度定制、以及基于 Python 脚本的 URL 架构重构 ( 中文转 Slug + 301 重定向闭环 ) 。 1. 基础设施:Cloudflare Pages 构建环境 为了解决 Hugo PaperMod 主题 CSS 不生效的问题,必须锁定 Hugo 的 Extended 版本。 Cloudflare 后台设置: 位置:Settings -> Environment variables ...

2025年12月17日 · 4 分钟 · 1938 字 · Chow Ray · PGP SIGNED

上帝视角:为 PaperMod 接入 Microsoft Clarity 用户行为分析

在折腾完博客的 UI 和排版后,是时候关注一下「里子」了。 对于个人博客来说,Google Analytics ( GA4 ) 显得过于庞大且复杂。我们更关心的是:用户到底看了什么?他们在哪里停留?为什么他们离开了? 这时,Microsoft Clarity 是一个绝佳的选择。它完全免费、不限流量,且提供两个杀手级功能:热力图 ( Heatmaps ) 和 会话录屏 ( Session Recordings )。 本文记录了如何在 Hugo PaperMod 主题中,以最符合工程规范的方式接入 Clarity。 ...

2025年12月16日 · 3 分钟 · 1105 字 · Chow Ray · PGP SIGNED