再见,WordPress
这个博客已经从WordPress.com自托管。如果你是通过WordPress关注的,应该使用指向的RSS阅读器nolanlawson.com/feed反而。
WordPress忠实地陪伴了我15年,但我觉得是时候向前看了。有几件事促使我朝这个方向发展:
- 最近围绕WordPress的风波让我心里很不舒服,也削弱了我对它是否是一个好长期选择的信心。
- WordPress界面不断让我远离老派的纯文本Markdown编辑器(至今依然很棒!),我从未喜欢古腾堡那种缓慢、笨重、点击拖拽、误点的体验。
- WordPress每年收我110美元,而这些内容本可以用静态站点生成器免费托管在Cloudflare上。
当然,我离开WordPress后也失去了一些东西:
- 评论和回赠。说实话,这对我来说从来没觉得特别有价值。我已经运行过Mastodon实例,所以只要链接到那里的帖子,或者在Lobsters、Hacker News等平台上发帖我就行了。而且要跟上垃圾机器人(多亏了大型语言模型,他们变得非常有说服力)一直是一场持续的战斗。
- WordPress的粉丝。我猜WordPress有自己的准RSS系统,而我在那里有几百个粉丝?如果这能说服一些人转向纯RSS,避免依赖某个厂商,那我就不算损失了。
- 主题。我对2010年代初的复古啤酒怀念很多“弹簧装载”主题.我觉得这让我的博客多了点魅力,我自己也确实有不是在意外观,只是一直用复古主题,就像一个糟糕的发型。虽然也不是完全没维护,但这些年我多次调整CSS,比如加大字体大小、修正奇怪的布局问题、提升无障碍性等等。
话虽如此,我通过离开WordPress也收获不少。我不仅省下了一大笔钱,还给了自己一个机会去现代化风格,加入暗色主题,并以激进的(近)零JS和零追踪愿景提升性能。

在性能方面,我尽可能采用纯HTML/CSS,JS只在运行暗模式切换器、一个小型遗留URL重定向和搜索(通过以下方式)时弹出astro-pagefind),以及lite-youtube-embed偶尔用YouTube视频。
除非图片出现在帖子很早的位置,否则图片都是懒人加载的,所有都是系统字体,我对所有推文都预渲染了(针对我之前提到的推文)。
投机规则在支持它的浏览器上加快导航速度。
至于追踪,我决定干脆放弃它。当然我可以用Cloudflare自己的客户端追踪或其他服务,但1)很多读者本来就装了广告/追踪器拦截器,所以不准确,2)随着越来越多的网站收紧,这些数据的实用性也降低了推荐人政策(谷歌以前告诉我那些人真的会输入的搜索词!简直疯狂),3)看这些数字对我的心理健康可能也不太好。
意识到自己在黑客新闻上出现激增,虽然有点自负,但对我的焦虑可能弊大于利。
至于设计,我决定保留原主题的一些颜色和布局,同时大幅现代化:字体更大,没有渐变或阴影,也没有标签云(虽然我对标签云还是有些感情!)。
我还提升了无障碍功能:标题等级终于一致了(这些年我主要因为主页和每篇帖子页面混淆而搞砸了),新增了“跳转到主内容”链接,并且在车轴审计。

当然,因为现在是2026年,我非常懒(如果不是这样,我的博客也不会保留一个15年前的主题),所以我大部分工作都是用Claude完成的。
提示基本上是“这是WordPress导出,用Astro重建,尽情发挥。”它能这么容易自架,这点本该让像WordPress这样的老牌用户感到紧张——我不确定一个老旧的博客技术如何应对关键CVE在其模板引擎中(更不用说狂野与毛茸茸的插件市场)可以与经纪人打造的静态网站竞争。
祝他们好运,但我要下车了。
当然,确实存在一些问题:WordPress。它不能导出我的Markdown文件,只能导出HTML所以我不得不写一个小脚本,把它们从WordPress API里提取出来。
我还需要修正Astro在将Markdown转换为HTML和WordPress时的一些细微差别,并且必须设置RSS/Atom订阅源,这样订阅订阅者就不会察觉到差异。
(我见过多少次有人在从一个系统迁移到另一个系统时,突然把所有帖子都导入我的订阅源?)
这并不奇怪,因为你现在可以选择你想要多少虫子客服还自己发现了很多问题,包括链接损坏、我错过的垃圾评论,以及OpenGraph图片的问题。
我不想在太多旧帖子上“纠正”事实,但我确实清理了一些小的样式和链接问题。
切换到 Astro 也让我终于能获得合适的语法高亮功能(多年来我的 WordPress 主题不支持 ES6 语法一直让我很烦恼),我甚至自己写了语法式主题以匹配页面风格。
这类事情在大语言模型之前,我会觉得太放纵了(而且会分散写作的注意力),但现在只需一个提示即可。对于这类工作,我尤其喜欢克劳德文物因为我可以让经纪人推荐几种不同的设计。
// Random code snippet to show the colors
class Yolo {
woot() {
const yay = 'yay'
return `ES6 works now! ${yay}`
}
}总体来说,这基本上是我多年来一直酝酿的一个项目,终于多亏了编码代理,我才为它做了个正当的选择。我承认,这让我有些犹豫,想象我的网站设计,我在网络上的整个存在感,现在会变成一堆LLM垃圾,但我意识到我根本不在乎。
就像15年前我随便拿一个WordPress主题就这么做一样,我觉得让代理们给我表面装饰,我写内容也没什么大不了的。我个人仍然有个禁止大型语言模型触及我的散文但对我来说,设计就是一般般。
我读过很多博客,我都会立刻开机Firefox 阅读器模式总之,说实话,很多人的设计对我来说就像90年代的Flash开机画面。
而且,如果你的目标是“不让大型语言模型污染你放到互联网上的任何东西”,那么WordPress本身肯定在热切地吞噬LLM代码,所有社交媒体平台都在做同样的事,网页浏览器和操作系统也在做,所以......现在只要你在操作电脑,你就会与LLM输出互动。
这似乎就是世界的发展方向,我并不把代码看得那么神圣不可侵犯,以至于我觉得有必要让代码成为一片纯净的孤岛,置于一片混乱的海洋中。
无论如何,代理们做得比我好;我一直对Claude能想到像监听localStorage主题选择器中的事件,处理forced-colors也就是高对比度模式,RSS订阅阅读器的正确HTML格式化等。
总之,这就是新网站!除非你在我还在搬东西的时候看到这篇文章。再见了,WordPress,衷心感谢你这些年来托管我的博客。
你可以发表评论联邦.