20260131: The "Read-it-Later" List
我在首页的 navigation 区新增了一个「Reader」页面。
页面的内容,现在大部分是我每天遇到的、想看一下、但是没有耐心读的英语长文。
尽管目录页面还是尊重原文,采用原本的英语标题,但是每个文章详情页面都有「中文」和「英文」两个版本。
为什么做了这个页面?
在 之前的文章 里面提到,随着大模型翻译水平的提升,从 25 年下半年开始,我在遇到想看的英语长文的时候,已经更倾向于直接扔给大模型翻译成中文,然后阅读母语了。
为此,我自己有一个本地保存的中英对照 read it later archive 文件夹,并且最近在 vibe-coding 一个 RSS 阅读器,以便于直接在 RSS 阅读器里就可以一键转中文。
事实上我本来有个更激进的规划:RSS 阅读器应该在检测到这是一篇高置信度的非中文文章的时候,就直接后台给它翻译为中文再呈现。后来,我觉得还是一定会需要大量的短文保持英语阅读量,避免退化得过快(退化已经是不可避免的了),所以放弃了这个想法。
最近发现 ChatGPT 和 Kimi 最新版 K2.5 的中文翻译能力都有肉眼可见的退化:
- ChatGPT 会在大篇的中文里突然蹦出俄语;
- Kimi K2.5 会遗留很多本来可以翻译的英文部分。
现在的大模型翻译仍然是不完美的,我觉得保留一个 online archive,记录从现在开始到未来很多年里,大模型翻译从「基本可用」到「非常完美」的进步,其实也挺有趣的。
当然,作为一个不怎么能维护好自己的电脑配置、一言不合就会情绪上头重装系统的人,强制自己 commit 到 github 仓库里,也是一种防止本地 archive 丢失的办法。
最后就是,实现这些页面的难度很小,我本来就有一个 Claude Code skill 来做这件事,如今只是把它的核心内容变成 CLAUDE.md,其它内容都几乎原封不动地复制一份到博客仓库里就好了。
这个页面怎样工作
和我的很多其它工具一样,它也是一个纯本地、纯手工的慢速流程。
主要包括几个步骤:
- 用 Obsidian 的插件 来把英语文章页面转换为 markdown 格式。我不喜欢 Obsidian,但是它的 web clipper 确实是我试过的同类产品里最好的;
- 把 md 格式的文件添加到一个目录里,然后告诉 Claude Code 或者 Codex 遵循仓库里的 CLAUDE.md 来工作;
- Claude Code 或者 Codex 会先按照我给出的 简单 prompt 来翻译一份中文版本的 md 文件,然后把这两个文件分别生成 HTML 页面,最后更新 Reader 首页,添加一个条目;
- 在这个过程中,图片也都会被下载下来,放到一个目录里,供本地保存和被 HTML 文件引用——我坚持所有数据都要有纯离线可用版本。
以前在本地用过脚本来规范化 md 文件和中英文 HTML 的输出,但是自从有了 Claude Code 和 Codex,我已经懒得专门去终端运行任何脚本了——自然语言打字指挥多方便啊,it's not like 我很缺 token 钱,对吧 :-)
实际表现
这个页面上的文章,是从 01.29 开始的。翻译和转换的过程都用到了大模型。
目前的页面上,有的文章是 Kimi K2.5 翻译和操作(基于 Claude Code),有的是 GPT-5.2(基于 Codex),主要看心情和当下的实际情况(比如时间)。
可以看到:
- 「机翻腔」还是有的,但是不同于早期的机翻腔,现在的已经基本不影响意义的理解了;
- 细究起来,问题也还是不少的,尤其是 K2.5 的作品,甚至一定程度上是能看出来稳定的问题特征点的;
- 在页面的细节上(比如标题部分),其实不管是 Claude Code 还是 Codex,K2.5 还是 GPT-5.2,每一次也都有细微的差别。
后面我有可能会再调一调 prompt,优化一下产出效果。不过我觉得意义并不太大,毕竟现在的这个版本我已经凑合用了半年多了。
也有可能给每篇文章添加一个头部 callout section 来写点儿简评(如果有的话),不过也觉得意义不大,我一般沉默寡言,没有什么要评论的,多看少说。
样式一直都很粗糙,因为直接复制了我自己本来的 local archive 的样式。但是这显然是我最不 care 的事儿,甚至在一定程度上我就是喜欢这种粗放原始、意味不明的 rough edge 很多的状态。
最后
所有的保存到本地和翻译行为,都没有经过授权。搞不好以后哪天,这个 Reader 页面会导致我的整个博客被下掉,but I just don't really care :-)
也没有什么复杂的即时备份措施,更新完以后会找个时间把整个博客文件夹拷到移动硬盘上(覆盖掉上一次拷的),而已。