有了 Codex,女娲捏人也只用 7 小时——一个下午从零自制主题
这件事终于发生了:这是每一个折腾博客爱好者终将到来的时刻——从各种换主题、选插件,走到自己从头到尾定制一个主题。
自从换到 Hugo 之后,虽然说有很多特别精致的主题,效果也都很好,但是每个主题都稍微会偏离一点我的需求:Stack 主题觉得太过华丽,PaperMod 主题又有点过于简单。
我一直想要把以后的博客内容往更偏文字的方向走一点(虽然这两年啥也没写),尽量简化以便把注意力放在内容上,但又想要稍微有点俏皮的感觉。所以我经常在各种 awesome-hugo 仓库之间流连,却总觉得每一个主题都差点什么,不能完全如意。
终于,我对自己说:现在都有 Codex 了,为什么我不能自己写一个?
Codex、Claude Code 带来的科技普惠
在津津乐道播客里听到过一个观点:从前软件开发的逻辑,是先寻找共性,找到一个大多数人都共有的需求,然后围绕这个共性开发一个软件。而现在,可能每个群聊、每个班级,都能为自己独特的需求定制一个专属的小程序。
自从 22 年底 ChatGPT-3.5 面世,到后来的 Claude Code、Codex,一路看下来,AI coding 的能力在与日俱增。最开始的大模型,写个简单的 Python 脚本都可能会报错;到 25 年早期,Claude Code 已经能自己 debug;再到 Codex,甚至可以做到:它写出来的代码直接运行,在大概 90% 的情况下都不会有任何报错。
像当前这个博客主题,从 0 到 1,一共 29 次 commit,只出现过两次编译错误,而且都是因为调用了 Hugo 没有的接口。把报错贴给 Codex 之后,也都轻轻松松就解决了。

一个下午,Codex 帮我完成了页面整体风格的设计:分页、搜索、目录树、MathJax、代码块风格……可以说,除了评论功能之外,几乎把我想要的一切都实现了。对一个前端苦手来说,如果没有 Codex,我得自己查文档、抄代码、搜报错,才能实现现在这些功能,可能两个星期都打不住。
或许以后很多程序员都可以就地转职产品经理:只要能搭好架构,能够清楚地描述自己想要什么功能,Codex 就能帮你把它实现出来。
描述清楚「想要什么功能」,火过一阵又迅速过时的 Prompt Engineering,或许是当下面向大模型编程最重要的一项技能。
比如说:你不知道有「粘性定位(sticky positioning)」这个概念,就很难把「目录一直悬停在同一位置」这种视觉效果讲得足够具体;不了解多栏布局的思路,做出来的就是「一个页面一个布局」。在这种「言出即法」的年代,怎么把需求表达得精准,就显得格外重要。
至于为什么说是「当前」最重要——也许再过几年,套上脑机接口,真把 Codex 变成「指哪打哪」,那又是另一回事了。
现在的主题有啥特色
惭愧地说,其实就是把我平时刷博客时看到心水的点,全都往里塞了一遍。
第一次看到 莫比乌斯 的时候,就觉得:这个类纸的风格配上可变字重的设计也太好看了吧。

于是我就借鉴了一下:用了一个暖色加横纹的纸质背景,再配上 Noto Sans SC 字体。
Folo 文章页面目录结合进度条的设计也让我一眼心动:

那咱也复刻一手:

椒盐豆豉的布局好清新:

于是也做了一点小小的参考:

有什么是你自己的吗?
有的有的,Logo 遮罩还是很花了一番心思的。
我想保留这个用了多年的头像,又不想让一张彩色图片在类纸风格里显得太突兀,于是在原有图像上加了一层遮罩,做出了现在这种类似彩墨屏的效果:

还有上文提到的目录树。Folo 的原版设计已经很好看了,但我更想让每一条横条的长度都能对应章节名的长短,看起来更有一点「活」的感觉,于是就让 Codex 帮忙定制了一版。

你都划到这儿了,应该也能看出来,现在这个背景从上到下是有一个轻微的明暗渐变的。一方面是想到在台灯下看杂志时,铜版纸会有那种不均匀的反光质感;另一方面,也想在阅读过程中制造一点细微的亮度变化,让瞳孔不至于长时间维持在完全固定的状态。
听说看纸质书眼睛更舒服的原因之一,就是环境光本身是一直在缓慢变化的,而不是像屏幕那样提供一个完全稳定的光源。
@Grok is that true?
无论如何,目前实现的只是一个初样。后续在实际使用的过程中,我大概率还会在这个主题里继续加东西。
那么,代价是什么?
Claude Code / Codex 哪儿都好?也不见得。
知识不会自己跑到你脑子里来。省掉了查文档、抄代码、搜报错,也就意味着:我对当前主题的整体架构,其实没有多少理解。后续维护的难度,会随着代码越堆越多而逐渐升高。每一个小小的改动,都有可能不经意间破坏掉某个功能,而可能要在滚了好几个 commit 之后,才突然发现有个不知道是哪一次改动引入的 bug。
所以,我并不建议在任何「主业的、长期维护的、对外动态开放访问」的项目中,采用这种完全不 review 的 Vibe Coding 开发模式。
但是写个小脚本,给博客定制一个主题?
好用,多用!
评论