Log#
本文件最新条目在最上方(2026-09-19 起改为倒序排列)。 命令行查看最近 5 条:
grep "^## \[" wiki/log.md | head -5
Record of wiki operations, newest first.
[2026-10-29] synthesize | 2026-10-28《迟来18年的道歉和expansion》:《项狄传》落在 读书.md 新小节(264→265),并订正 读书方法论 的「四阶」旧注#
- 入库(stage A,cron 已跑):
tools/sync_posts.py抓到 1 篇新文(4753 words,分类读书, 标签项狄传),语料 1659 → 1660;已核_catalog.tsv1660 行 =find sources/posts -name '*.md' | wc -l1660 个。工单inbox/2026-10-28.md已标 handled。 - 落点:
读书.md新增小节「2026-10:《项狄传》与「经典」定义的 expansion」,sources:264 → 265(按分类关键字,已核),正文首句 264 → 265,时间线 2026 行补「项狄传」。 未新建页面,未改mkdocs.ymlnav。 - 跨页(两页,均 bump
updated): 读书方法论.md§7 的旧注「四阶:……但从未展开——系列止于三阶」订正为「四阶至今仍未写出」: 该篇自称系列第四篇,却明确「这一篇不往上加阶:那本书的阶,加不上去」;§5 补入本篇对「经典」定义的 第二条扩张(情感轴/手法轴,作者称之为 expansion)。sources:14 → 15(该页口径= 实际引用的语料篇数,改前实测 14 篇,本次新增 1 篇)。卡尔维诺.md:补隐形的城市(结构论)末条与「交叉链接」一条——两书共用同一个 「讲不完/写不完」的不等式;老卡封《项狄传》为「我们这个世纪所有先锋派小说当之无愧的祖先」 (该篇未说这句出自哪本书,本页照记、不补出处)。sources:10 → 11(同口径)。文学创作.md未改(该页不提《项狄传》;2026-10-04 那次提及已在读书.md内作了交叉说明)。- 内容(逐条回原文核过):①道歉对象是 2008-12-30《一本需要严肃对待的闲书——评〈巨人传〉》 (847 页、近 60 万字、约 30 天;「需要严肃对待的闲书」出自该篇「要把搞笑当做一件正事来处理」)—— 该篇此前未进入任何综合页,这是它第一次被引用;②狄利克雷函数(「有理点取 1,无理点取 0」) 与第四卷第十三章的「三百六十四倍」(dT/dt ≈ 1/364 ≪ 1);③三阶/形态与接受史(1759 首卷售罄、 约翰逊博士、萨克雷、费里尔 1798、什克洛夫斯基 1921、叔本华、尼采《最自由的作家》); ④「经典」定义扩张;⑤献辞与「这本书的伟大,建立在读者读不完之上」。
- 书目事实一律回书目库核过(6 本):
01642《项狄传》(蒲隆译,译林 2006-04 第 1.1 版,673 页, 543 千字,精装,ISBN 7-80657-812-9,2010-07-23 购入)、02086《现代汉语词典(倒序本)》 (商务印书馆 2026-02,1,797 页)、01711《英国文学史(一)》(梁实秋,新星 2011-08,446 页)、01728《Cyrano de Bergerac》、00070《故事新编》(鲁迅,人民文学 1973-05,129 页)、01549《巨人传》(拉伯雷/成钰亭译,上海译文 2007-07,847 页、588 千字——与博文「847页、近60万字」 对得上)。tools/extract_books.py重跑:377 本不变(本次 5 处新提及全落在已在册的书上)。 - 一处数字不一致,照记不调和:2010-08-15《电子书》说《项狄传》「原价32.60元,我花了70元,
增值一倍有余」,书目库
01642的购买价格却记 ¥33(其内容简介写「4年间……溢价到了70元」)。 两说并记(同类先例:00666的「定价两块三/实付 ¥2」)。 - 23 个「意」逐个数过(本 wiki 清点):本意…着意恰 23 个,与原文自陈一致。
- 顺带订正三处旧数(本次入库前就已滞后):仓库根
index.md「博客归档(1659 篇)」→ 1660;wiki/index.md的sources: 1659→ 1660、元数据一行「全部 1657 篇文章」→ 1660 (这处 1657 早在上批就已少 3);读书总览一行的描述补「项狄传与经典定义」。 - 引文门禁当场挡下 3 处(值得记):初稿里
卡尔维诺.md的隐形的城市(结构论)(wiki 侧的 小节标签穿了引号)、读书.md的4年间,这本书从32.6元溢价到了70元(书目库内容简介)与定价两块三 / 实付 ¥2(wiki 侧括注)三处穿了引号但不在语料里,audit_quotes.py --check直接 FAIL。 三处全部改用反引号,audit_allowlist.txt仍 12 条,未新增(教训与 2026-10-26 那次相同)。 - 验证(四道门禁全绿):
gen_index.py→overview.md + sources.md written (1660 posts);extract_books.py→377 unique books across 315 posts;lint_wiki.py→29 files | 718 citations | 225 internal links,OK(引文 711 → 718,内链 217 → 225);audit_quotes.py --check→ 12 处均为已批豁免、无过期;build_site.py→mkdocs build --strict通过、staged 33 wiki pages、3104 rewritten to blog URLs, 0 left unresolved(3085 → 3104)。 - 本次已发布:
bash tools/deploy.sh(门禁 + 构建 + rsync + checksum 复核无输出=远端与本地site/逐字节一致)。 - 线上实测(发布后):
/wiki/pages/读书/HTTP 200、77,677 B(发布前 57,424 B),含新小节标题、狄利克雷4 处、项狄传17 处,指向sources/posts的<a href>0 处;新引文已改写为https://blog.rsywx.net/2026/10/28/a-18-year-late-sorry-and-expansion/;/wiki/pages/读书方法论/(51,408 B)含「四阶(至今仍未写出)」、/wiki/pages/卡尔维诺/(47,545 B) 含「当之无愧的祖先」,两页同样 0 处sources/posts链接;/wiki/的sources: 1660与 「全部 1660 篇文章」、首页博客归档(1660 篇)、/wiki/log/含本条目均已生效。 已发布、未提交 git(git 提交由作者本人处置)。
[2026-10-26] correct | 中国通史笔记 分册错位 + 一处张冠李戴(作者指出:为何跳过第一、三、七、九、十册)#
- 作者指出:该页「阅读脉络」只有
卷二/卷四/卷五/卷六/卷八/清六个小节, 跳过第一、三、七、九、十册,且「清」未标册号;问「是否有什么特别理由」。 - 判定:没有理由,是错的。 原分节是按印象排的,而书目库自己就有权威的分册记录:
rsywx.net/books/00558.html–00567.html十册,每册页面都列「相关书评」字段, 与_catalog.tsv里《中国通史》分类的 16 篇笔记一一对应、零遗漏零重复 (3+3+1+2+2+1+1+1+1+1 = 16)。这是本页此前没用到的一份现成权威映射。 - 查出五类错(逐条回原文与书目库核过):
- 张冠李戴:唐朝一节的两条引文挂在 2008-08-29 吾与点也(一篇论语笔记)上;
grep该文无「唐」「宦官」字样。原句出自 2007-04-14 宦者为患(第三册 P149)。 - 第四册错置:儒释道、死后的事(均引第四编)被放在「卷二」之下。
- 六、七册合并:乱!(第六册=辽、夏、金)与大哉乾元(第七册=元)挤在同一个「卷六 元」。
- 第八册错置:明两作离的「Challenge」段被挂在唐朝一节下。
- 九、十册合并:反清复明(第九册)、毕(第十册)合成一个无册号的「清」。 另有 5 篇全文零引用:百姓原来是贵族、一个女人和三个男人的故事(第一册)、 分分合合、你有信仰吗?(第二册)、战还是不战(第五册)。
- 改动:
阅读脉络重写为第一册…第十册十节,节前加书目库分册对照表 (册次/书目库编号/本册范围照抄书目库「内容简介」原文/笔记篇数);补入上述 5 篇; 16 篇各归其册;修好张冠李戴。sources:仍 16(分类关键字计数,本就正确)。 - 顺带订正两处(同页内,非本次新引入):
- 卷首引文标注「范文澜,卷二」→「第二册」(与全页口径统一)。
- 开头那句「一个国家和管理这个国家的政府并不完全是一回事;对国家归属感不应和对政府归属感 混为一谈。」是压缩引文(原文是两句:“一个国家和管理这个国家的政府并不完全是一回事”, “对国家的归属感不应该和对政府的归属感混为一谈”),已改回原文; 并把「批评少数服从多数」那半句移回它真正的出处(大道之行,天下为公)。
- 另记一处易混(已写进页面):
乱!里的「第三卷」是《马克思恩格斯选集》第三卷 (书目库00917),不是《中国通史》第三册。 - 三处被引文门禁当场挡下(值得记):初稿里
卷二/…/清、 「农民起义造成内战、耗费国力」、「汗,狂汗,瀑布汗,成吉思汗」三处穿了引号但是 wiki 侧的 概括/漏字,audit_quotes.py --check直接 FAIL。按原文改为 「正是由于农民起义,造成内战,从而耗费了国力」「汗,狂(大、暴)汗,瀑布汗,成吉思汗」, 第一处改用反引号——教训是:wiki 侧的分节标签不该穿引号,穿了就会被当成引文查。audit_allowlist.txt仍 12 条,未新增。 - 验证(四道门禁全绿):
lint_wiki.py→29 files | 711 citations | 217 internal links,OK (引文 705 → 711);audit_quotes.py --check→ 12 处均为已批豁免、无过期;build_site.py→mkdocs build --strict通过、staged 33 wiki pages、3091 rewritten to blog URLs, 0 left unresolved。 - 已发布:
bash tools/deploy.sh(门禁 + 构建 + rsync + checksum 复核无输出)。 线上wiki/pages/中国通史笔记/已含「第一册」…「第十册」十个节标题。
[2026-10-26] synthesize | 2026-10-26《书海拾贝》:藏书线落在 读书.md 新小节(263→264),并顺带订正一处计数#
- 入库:
tools/sync_posts.py --no-build抓到 1 篇新文(2078 words,分类读书, 标签藏书),语料 1658 → 1659;已核_catalog.tsv1659 行 =find sources/posts -name '*.md' | wc -l1659 个。tools/extract_books.py重跑: 374 → 377 本(新增00195《中国金银镍币图说》、00397《书剑恩仇录(上)》、00432《鹿鼎记(五)》——后两本即三联版金庸 36 册的首末两册)。 工单inbox/2026-10-26.md已标 handled。 - 落点:
读书.md新增小节「2026-10:书海拾贝 —— 藏书里的六颗珠子」,sources:263 → 264(按分类关键字,已核);正文首句的 263 亦改为 264。 未新建页面,未改mkdocs.ymlnav。wiki/index.md的sources1658 → 1659, 「读书总览」一行的描述补「藏书拾贝」。 - 内容(逐条回原文核过):①「任氏有无轩」首页统计
1,829 册 · 727,904 页 · 484,222 千字 · 3,026,892 次访问,与轩名由来
(先严《任氏有无轩铭名记》,落款「岁在公元一九九零年农历庚午处暑前一日」;
「有儿万事足,无官一身轻」→ 山阴听蛙阁主人替他把「儿」字改成「书」字);
②搬家与书(阊门皋桥堍 → 石路 → 三元一村 9 年 → 新城花园 8 年 → 湖左岸 17 年 →
2023 西园路;「每次搬家都是先搬书」);③六颗珠子逐条:
00666卡尔维诺 《隐形的城市》、00195《中国金银镍币图说》、00118《生死在上海》、01862《天鹅绒监狱》、00066《〈论语〉批注》、00397–00432三联版金庸 36 册 (00397→00432 恰为 36 个连号,与「36 册」自洽);④统计之外:《资本论》三卷 初版(该篇明言「我没有登录」,故不在 1,829 册内、无书目链接);⑤收束于 《铭名三记》的「足迹」。 - 书目事实一律回书目库核过(6 本,
rsywx.net/books/<id>.html),其中三处与博文 可互补或需分开记:00666书目库作花城出版社/陈实译/1991-01/149 页/ ISBN 7-5360-0778-7(1991-06-29 购于上海,实付 ¥2——与博文「定价两块三」 不是同一个数,两者都照记);00066书目库记 1975-02-22 购于苏州观前新华书店、 ¥1;00195书目库记 2006-11-27 购于苏州、¥1(1939 年 6 月寰球邮币公司版)。 - 三处跨篇交叉点:
00666就是 卡尔维诺 页所记的「第 666 本书」—— 该页补入「初版只印了 1870 册」、二手 80–200 元与书目库出版信息;并把两条 「经典」措辞分开记:本篇「经典就是让人一读再读的作品」不是该页开头所引 2019 年那句「经典应该永远意犹未尽」。- 1,829 册接上 三公理检视 的藏书数字表(新增一行
2026-10-26;1,808 册 → 1,829 册,净增 21 册,已标明是 wiki 的算术), 并把《铭名三记》里凯恩斯「没有足迹」那段自陈补入该表下(该页「利他」一节的来源)。 01862《天鹅绒监狱》正是 读书方法论 §7「三阶」所用的 例证书——补书目库记录与「一行简介」。- 顺带订正一处(不是本次新文引入的):
读书方法论.md的sources:15 → 14 —— 该页没有「local citations」块,sources的口径应是实际引用的语料篇数(去重)。 改前实测为 13 篇,「15」是虚数;本次新增 1 篇(2026-10-26)故写 14。 - 验证(四道门禁全绿):
gen_index.py→overview.md + sources.md written (1659 posts);lint_wiki.py→29 files | 705 citations | 217 internal links,OK (本次新增 6 条引文链接:2026-10-26 出现在 4 页、2010-01-12 出现在读书.md);audit_quotes.py --check→OK: every flagged quotation (12) is an approved exemption (12 entries, none stale)(audit_allowlist.txt仍 12 条,未新增);build_site.py→mkdocs build --strict通过、staged 33 wiki pages、3085 rewritten to blog URLs, 0 left unresolved。 - 发布产物实测:
site/wiki/pages/读书/index.html里「书海拾贝」命中 4 处,1,829 册3 处、1870 册与2,875各 1 处;新引文已改写为https://blog.rsywx.net/2026/10/26/peals-in-my-book-collection/;读书/卡尔维诺/三公理检视/读书方法论四页均不含指向sources/posts的<a href>(grep 计数全为 0,确认不会 404)。 - 本次已发布:
bash tools/deploy.sh(脚本只跑门禁 + 构建 + rsync,不含任何 git 操作)。 发布前先用rsync -ainc量了差异:待传 13 个文件,恰为本次改动的 10 个页面 (读书/卡尔维诺/三公理检视/读书方法论/李自成与甲申/wiki/index/wiki/log/wiki/sources/wiki/books/wiki/overview)+search_index.json+sitemap.xml(.gz), 无意外项;其余 ~114 个文件只是 mtime 不同、内容逐字节相同。 发布后脚本自带的 checksum 复核无输出 = 远端与本地site/逐字节一致。 - 线上实测(发布后):
/wiki/pages/读书/HTTP 200、64,666 B(发布前 57,424 B), 「书海拾贝」4 处、「1,829 册」3 处、指向sources/posts的<a href>0 处;/wiki/的sources: 1659与「藏书拾贝」均已生效;/wiki/log/已含本条目;卡尔维诺页「1870 册」、三公理检视页「1,829 册」线上均可 grep 到。 已发布、未提交 git(git 提交由作者本人处置)。 - 顺带订正一处(发布后复查首页时发现):仓库根
index.md(对外首页)原写 「博客归档(1657 篇)」——这是旧数,且在本次入库之前就已经少了 1(上一批 入库后应为 1658)。本次改为 1659(=_catalog.tsv行数 =sources/posts下*.md文件数,两者已核相等)。该页属手工维护层,任何脚本都不会生成或覆盖它, 所以只能靠人(或 agent)在每次入库后顺手核对——这是本次第二次踩到同一个坑 (上一批wiki/index.md的sources:同样滞后),故记在此。 - 待办:
wiki/pages/50本书.md那处先前遗留的未提交改动(书评外链/reading→/readings)本次仍未触碰;该文件不在本次待传清单里, 说明它早在上一批发布时就已上线(线上实测rsywx.net/readings), 仅本地 git 尚未提交。
[2026-10-16] synthesize | 2026-10-16《音乐库升级小记》:按作者要求严格落在 影音娱乐.md 的 ## 音乐 一节(81→82)#
- 入库:
tools/sync_posts.py --no-build抓到 1 篇新文(2374 words,分类电影、音乐、游戏、娱乐,标签音乐),语料 1657 → 1658;已核_catalog.tsv1658 行 =find sources/posts -name '*.md' | wc -l1658 个。 工单inbox/2026-10-16.md已标 handled。 - 落点由作者指定:严格落在
## 音乐小节。该页另两个小节是## 电影与剧、## 游戏; 博客把音乐/电影/游戏存为同一个分类(电影、音乐、游戏、娱乐),所以「音乐」在 本 wiki 里不是独立页,而是本页的一节 —— 与schema.md「合并分类的 hub 必须用全名 标题」的约定一致。新增小节「音乐库升级:两周进八张专辑(2026-10-16)」, 未新建页面,未改mkdocs.ymlnav。 - 内容:①音乐素养的来处(先严厂里改制做的一体机、先慈从音乐老师处借唱片); ②MP3 → 无损(FLAC/WAV)的两条线路与两个工具(Workbuddy、Nicotine+/Soulseek「搜魂手」); ③八张专辑逐张记其掌故(梅耶斯《四季》的瓜奈里「维厄当」琴、吉列尔斯柴一 1955/1979 两版对照、奥伊斯特拉赫、勃兰登堡 1·5·6、亨德尔《水上音乐》、克尔提兹德沃夏克全集、 卡拉扬《图画展览会》)。
- 两处跨篇交叉点(均逐字回原文核过):
- 卡拉扬《图画展览会》就是 2026-10-02《从稻田到心田》里那张 DG「第 227 张」 (两篇同为「《图画展览会》+勃拉姆斯《第二交响曲》」的搭配)——已在页内点明, 免得被当成两张碟。
- 八张名单与 2025-01-27《听音乐吧》自陈的偏好对上(交响乐「我最喜欢的倒是
德沃夏克」;扩到歌剧、协奏曲一类则是「莫扎特、维瓦尔第、巴赫、柴可夫斯基」)。
该篇此前未被任何页面引用(
grep零命中),本次一并补入引文列表。 - 一处工具观察(未改代码):工单把本分类判为「candidate hubs: none — new topic?」。
原因是
tools/sync_posts.py的hub_keywords()取wiki/index.md里[<X>总览]的 链接文字(此处为影音娱乐总览→ 关键字「影音娱乐」),而分类串是 「电影、音乐、游戏、娱乐」,两者不匹配。页面的 frontmattertitle是全名 (lint_wiki.py据此计数,故sources:必须按分类关键字写 82),只有候选提示 因此漏报。属提示层的 cosmetic 缺口,本次不动 index.md 的链接文字(该页是手工维护层)。 - 验证(四道门禁全绿):
gen_index.py→overview.md + sources.md written (1658 posts);lint_wiki.py→29 files | 699 citations | 213 internal links,OK(本次新增 4 条引文 链接:2025-01-27 与 2026-10-16 各在引文列表与正文出现一次);audit_quotes.py --check→OK: every flagged quotation (12) is an approved exemption (12 entries, none stale)(audit_allowlist.txt仍 12 条,未新增);build_site.py→mkdocs build --strict通过、staged 33 wiki pages、3072 rewritten to blog URLs, 0 left unresolved。 - 发布产物实测:
site/wiki/pages/影音娱乐/index.html里「音乐库升级」命中 5 处; 新引文已改写为https://blog.rsywx.net/2026/10/16/music-lib-upgrade/、 2025-01-27 篇改写为https://blog.rsywx.net/2025/01/27/listen-to-music/; 该页不含任何指向sources/posts的<a href>(grep 无匹配,确认不会 404)。 - 待办:本次尚未
tools/deploy.sh发布;另wiki/pages/50本书.md有一处先前遗留 的未提交改动(书评外链/reading→/readings),本次未触碰。
[2026-10-04] lint | 年末读书小结只列了 2 篇(实为 15 篇);登记 Obsidian 库为第二语料源;新建 50本书 页#
- 起因(作者指出):「读书总览」里的「年度读书小结(现存)」只列了 2016、2021 两篇,
而年末总结类文章实有 15 篇。「(现存)」这个措辞本身就是误导——它让人以为语料里
只有这两篇读书小结。顺带牵出一个更重要的缺口:
#50本书这个项目在整个 wiki 里 完全不存在(改动前grep '50本书' wiki/pages/*.md零命中)。 - 第二语料源(本次新增,已写进
schema.md):作者的 Obsidian 库/mnt/ugreen-sync/My Books/Working/My Own Writings Managed by Obsidian, CIFS 挂载//192.168.150.245/Sync,不在 git 里。含博客文字/<年>/、书评/<年>/。 按既有硬规矩,库内一切路径只写纯文本、绝不写成链接(否则公开站点必然 404)。 为什么必须要它:sources/posts/**只收已发表的博文,而只写在库里、没发成博文的 书评(2025 年 9 篇)根本不在语料内。 读书.md重写「年末小结」一节(sources仍 263:这 15 篇多为 Uncategorized, 分类关键字计数不变,lint 不受影响):- 列出全部 15 篇,逐篇按内容(不是标题)核对,分体裁标注。真正的独立读书小结 只有 4 篇(2016、2019 汇总、2021、2024),其余 11 篇是年末总结带读书小节或逐月记事 附带;2008 与 2019 年终总结两篇几乎不涉读书。
- 各年自述本数只在原文明说时才记(2009 约12、2016 12、2017 18、2019 8、2020 18、 2022 33),其余年份明说「书不多」而无数字,一律不列,不估算。
- 集群表加一行 50本书。
- 两个坑写进页面(都是本次实际踩到的):
- 数字只在图片里。2021、2022 的读书时间线是 Visme 生成的图片,书单与本数只在
图上(2021 图上写「一共读书13本」并列 13 条;2022 图上 8 本),文字语料只剩
<img>。 2020 年度总结所配的图与读书无关——是那张 Data→…→Conspiracy Theory 梗图, 我一开始差点把它当读书记录,开图看过才排除。 - 图上是精选不是全量:2022 正文自述 33 本、图上仅 8 本。图上书单不能当年度数。
- 2025 年没有写年终小结,据证据补记(作者确认为有意不写)。从库的
书评/2025/与当年博文整理:新买新读 7 + 重读 2 = 读毕 9 本,对上自述「将将10本上下」。 三处经作者指正后才定稿,记录在此以免重犯: - 《这本书叫什么?》不算:2025-08-04 那篇分类是「编程、软件、技术」,讲一道 GPT-5 答不出的逻辑题,该书只作为谜题类型的出处被引述,不是重读。 →教训:书名 grep 不能用来数年度书单,必须看有无真实阅读行为。
- 《美国文明的兴起》只读完了上册(正文明言尚未开始看下册),故上、下两册只计 1 本; 该书评的篇名「一本大书的一半也还是大书」原意即「两册中的一半」。
- 《拉奥孔》是重读,不计入新书。
- 差额 1 本按实记,不补书名(应即下册未读及个别未单独成篇者)。
- 新建
wiki/pages/50本书.md(已登记进mkdocs.ymlnav 的读书组与wiki/index.md; 这是本次唯一改 nav 的理由)。内容: - 2020-05-28 的心愿:50岁-59岁这10年中看完50本书(引自 2024-01-28《古巴唐人》, 该句在语料内逐字可查)。
- 作者自书的分年表:2020 12 / 2021 13 / 2022 8 / 2023 14 / 2024 3 = 50, 第50本为《古巴唐人》。这是唯一权威口径。
- 提前六年达成:作者当时自述「过了春节,我才54岁」——四年读完原定十年的指标; 其后 2026 年另有 4 篇带标签文字,累计已超过目标。
#50本书标签作为成员判据:库内共 71 个文件带此标签(书评/67 +2026年/4), 故本页sources: 71。但标签只表「属该项目」、不表「读于当年」—— 例《奥德赛和史诗之惑》读于 2025、成文于 2026。- 与年末小结的两套数字明确切开:本项目口径(2020 起,标签+分年表)vs 年末小结自述 口径;2020 年本项目 12 本 vs 年末小结 18 本,两者都正确、不可混用。
- 引文门禁抓到 3 处,全是同一个毛病:我把自己的话套进了「」
(「某书是否属于本项目」「小结是图片、没有文字」),以及一处库内原话
(「虽然还没有开始看下册」,该句只在 Obsidian 库里,语料内查不到)。
三处均按 schema 改页面、不加豁免:前两处去掉引号,第三处改为不加引号的转述。
tools/audit_allowlist.txt仍 12 条,未新增。 (另注:库内原话不可加引号引用——引文门禁只认sources/posts/**。) sources/_books.tsv有 4 个书号缺口:02068/02069(美国文明的兴起 上下)、02080(The Song of Achilles)、02081(国家与生活机遇)在博文中只以上/下卷形式出现, 或仅存在于库内,故未进书目索引。四个书号都已回书目库页面逐项核对 (02068 比尔德译于干,商务印书馆2010,863页;02080 Miller;02081 周雪光,中国人民大学出版社2015)。 这些书同样不会自动进wiki/books.md——该生成物只收博文正文里出现的书链。- 验证(四道门禁全绿):
gen_index.py→1657 posts;lint_wiki.py→29 files | 695 citations | 213 internal links,OK;audit_quotes.py --check→OK: every flagged quotation (12) is an approved exemption (12 entries, none stale);build_site.py→mkdocs build --strict通过、staged 33 wiki pages、3067 rewritten to blog URLs, 0 left unresolved。 另实测:site/wiki/pages/50本书/index.html已生成、导航已收录、 引文已改写为blog.rsywx.net/2024/01/28/chinese-in-cuba/, 库路径在产物里是纯文本、不是<a href>(grep 无匹配,确认不会 404)。 - 本次已发布、未提交 git:
bash tools/deploy.sh跑完门禁 + 构建 + rsync。空跑rsync -azn --delete --stats:0 删除、2 新建(50本书页 + 其目录), 83 → 84 个文件;--delete无可删之物,不会误伤。传后rsync -ainc复核 0 行差异 = 逐字节一致,远端 84 个文件。线上实测/、/wiki/pages/读书/、/wiki/pages/50本书/、/wiki/pages/卡尔维诺/、/wiki/pages/文学创作/、/wiki/log/、/sitemap.xml均 200;新页正文(50岁-59岁这10年中,要看完50本书、第50本、提前约六年、#50本书)、年末小结:读书相关篇目(全部 15 篇)、合计读毕 9 本线上均可 grep 到,导航已收录50本书。git 提交由作者本人处置。 - 一个差点造成线上事故的建议,已否决:作者提出该站有 toc 插件、建议页面里直接写
[toc]免得手工生成目录。实测后否决:本 wiki 是 MkDocs Material,不是作者的 Grav 站,[toc]在 MkDocs 里不是指令、会原样渲染成字面文本(已用最小样例验证)。 且本 wiki 的右侧md-nav--secondary侧边栏本就由标题自动生成目录(新页 12 条), 无需手写。加[toc]只会让页面出现可见的字面[toc]而真目录仍在侧栏。 教训:Grav 与 MkDocs 是两套生成器,语法不可互相照搬;本次未做任何相关改动, 线上实测[toc]出现次数为 0。
[2026-10-04] synthesize | 2026-10-04《嶺南十三講》读后札记:读书 262→263、卡尔维诺 8→9、文学创作 131→132#
- 入库:
tools/sync_posts.py --no-build抓到 1 篇新文(851 words,分类读书,标签 文学/评论),语料 1656 → 1657,工单inbox/2026-10-04.md(已标 handled)。 该篇属读书分类,hub 的sources当场变陈旧,lint 闸门如期拦下——这正是设计意图。 - 综合落点(3 个现有页,不新建页,
mkdocs.ymlnav 与wiki/index.md主题列表未动): 读书.md(262 → 263,updated → 10-04):新增「2026-10:叶兆言《嶺南十三講》与 「怎么写小说」」一节。含三点提要(教不会 / 动笔写比什么都重要 / 先放后收)、 反对过分强调「体验生活」的立论及作者的自我修正(「小说都不敢这么写」说明现实超越 想象,故必要的生活体验还是有用的)、p58 与 p65 两段引文、书目事实。 集群表另加一行 创作方法 →文学创作.md。卡尔维诺.md(8 → 9):「命运交叉的城堡」条补 2026 年第三次援引,并标出 措辞较 2008 年转弱——由「最严谨的例子当属」降为「卡尔维诺玩的一个游戏」。 这是本页唯一一处需要注意的语义变化,不标出会被后来者当成作者态度的一贯表述。文学创作.md(131 → 132):新增「外部坐标:叶兆言《嶺南十三講》」一节,与本页 「创作观(作者自述)」并列。落笔前先把两边的写法核过:叶先生主张先放后收 (不预设立意与人物定位),博主自己的实践却是先确定结构再下笔;页面写成 「外框先立、内文自然生长」,并显式标注该对照为 wiki 归纳、非原话。- 书目事实一律回书目库核对(未照常识补):三本都开了
rsywx.net/books/<id>.html取原始字段——《嶺南十三講》叶兆言,生活·读书·新知三联书店,2026-07-01,294 页, ISBN 978-7-5753-1276-9;《项狄传》斯特恩译/蒲隆译,译林 2006-04; 《命运交叉的城堡》卡尔维诺译/张宓译,译林 2001-01。 书目库 02091 页的「内容简介」是错的(写的是「和嘉蔚应邀去心田里……和鹿茸哥相聚」, 系另一篇书的文案误入),故该字段未被采用——书目库里出版社/ISBN 这类硬字段可用, 简介不可信。 - 一处交叉发现:该篇是 2026-10-02《从稻田到心田》的同一次购书的第二次记录
(两篇都写心田里/鹿茸的书店,书目库同一本记 2026-10-01 购于苏州 ¥49.8;
10-02 那篇写的是签名版)。已在
读书.md点明,避免被当成两笔独立购书。 - 引文门禁抓到 1 处,是我自己造的:初稿在
卡尔维诺.md写「为『文学发生机制 并不需要主线』的例证」——这个短语语料里没有,是概括却套了引号。按 schema 改页面、不加豁免:改用原文逐字表述(「很反常规的立论」「把文学发生的机制讲窄了」)。tools/audit_allowlist.txt仍 12 条,未新增。 - 一处 lint 拦截:
wiki/index.md的 1656 → 1657 改动使 mtime 超出updated, lint 报「file modified on 2026-10-04 but page-metadata says updated: 2026-10-02」, 已把该页updated一并 bump 到 10-04(该页是手工维护层,脚本不得覆盖)。 sources:口径说明:本页文学创作的 131 一直是作品篇数而非引文链接数 (全页 77 条去重引文),故加一篇读后札记写成 132;卡尔维诺9 则与去重引文数一致 (8 → 9)。两页口径不同,已在文学创作.md正文写明,免得后来者误以为漏计。- 验证(四道门禁全绿):
gen_index.py→overview.md + sources.md written (1657 posts);lint_wiki.py→28 files | 677 citations | 207 internal links,OK;audit_quotes.py --check→OK: every flagged quotation (12) is an approved exemption (12 entries, none stale);build_site.py→mkdocs build --strict通过、indexed 1657 post permalinks、3049 rewritten to blog URLs, 0 left unresolved、 3 处资产引用核对通过。extract_books.py重跑:374 本 / 313 篇(02091 的提及篇数 1 → 2)。 - 本次已发布、未提交 git:
bash tools/deploy.sh两次跑完(脚本只跑门禁 + 构建 + rsync, 不含任何 git 操作)。真传前先rsync -azn --delete --stats空跑:0 删除、0 新建、 83 个文件(与远端原有 83 个相同,无孤儿文件),确认--delete不会误伤才传;传后rsync -ainc复核0 行差异 = 远端与本地逐字节一致,远端仍 83 个文件。 空跑时抓到一处真漏:根index.md(对外首页,手工维护层)仍写「1656 篇」—— 上一轮只改了wiki/index.md,漏了这两个不同的文件。已改为 1657 并重发, 线上从 2004–2026 年博客归档(1657 篇)已生效。 教训:wiki/index.md与根index.md是两处独立的计数,都要查。 线上实测/、/wiki/pages/读书/、/wiki/pages/卡尔维诺/、/wiki/pages/文学创作/、/wiki/log/、/sitemap.xml均 200;新增的两节标题 (2026-10:叶兆言《嶺南十三講》与「怎么写小说」、外部坐标:叶兆言《嶺南十三講》(2026)) 线上 grep 得到,引文已改写为blog.rsywx.net/2026/10/04/lingnan-13-lectures-review/。 git 提交由作者本人处置。
[2026-10-03] synthesize | 补整理 2026-07-29《邓煜证明上帝不会一直掷骰子》:在 4 个现有页补 9 条,不新建页#
- 起因:该文早已随首批语料归档并进了
sources.md,但综合层只有自组织页时间轴 上一行摘要(自组织建页时留的),其余内容未被整理。按作者选定的方案 B(不新建页), 在 4 个现有页各补 2–3 条;mkdocs.ymlnav 与wiki/index.md未动(两者只登记新页面)。 - 一处必须记下的自我纠错:初查时我以为该文含「定域性/光锥/太阳毁灭 8 分半钟/
概率与波函数」一段,回原文逐条
grep核实时全部为 0 命中——那几段实际出自 2017-05-03《再从缠绕的意念说起》(已在意识-时间-超越页 L34),与本篇无关。 起因是搜索工具返回的片段不可靠。相关条目当场作废,改用本篇实有的量子内容。 教训:搜索片段不能当证据,落笔前一律回sources/posts/**逐字核对。 - 各页改动(引文全部回原文核对,命中后才写):
自组织.md(sources14 不变,updated→ 10-03):时间轴 2026-07 那行重写,补上 「复杂的微观相干性在大样本极限下发生了自发的『退相干』」与反向断言;第二节末新增 「2026-07 的数学背书(补记)」小节,收哲学总结、退相干作为前提、绝对相干反而发散 爆破三条,并附三条限度标注:量子↔社会类比是作者自陈的并不成熟的类比、 「宏观世界不需要上帝」是作者自己的合理拓展(原文写明「我将邓煜的证明加以合理拓展」)、 标题里的「上帝」是爱因斯坦与蒲柏之争的回声故只取机制一段不取神学框架。哥德尔-数学-时间.md(7 → 8):「数学史基调」补希尔伯特 23 问与第 6 问题 (含两小朵乌云、大厦已经完成、几率论与力学那段弱化要求)、三个尺度(牛顿微观 / 玻尔兹曼介观 / NS 宏观;后一阶段已解,前一阶段 2026 年由邓煜补上),并标出一处 wiki 侧并置:同一份公理化执念在数学上撞上不完备、在物理上仍在推进。「思想链结」与 「跨越链接」各加一条指向自组织。意识-时间-超越.md(5 → 6):该节末加一段「九年后的补充读法」——测不准从 「认识的限度」翻转为「世界之所以稳固的原因」,同一门量子力学 2017 年支撑 「意识不可解释」、2026 年支撑「秩序不需要设计」。按计划未开新节(该页已有 「20 世纪三大否定性定理」,再写即重复),只在「链接」加自组织。科幻与公理体系.md(10 → 11):三体节补「不可预测性从设定升级为定理」,含 脱水曲线那句、误差指数放大、苏州最高/最低温对照与「纳维-斯托克斯方程是我几乎没学会 的方程」的坦承;沙丘节补「预知为何致命」的物理侧注脚,并与退相干那面并置。- 刻意没做:不收 2026-07-27《王虹证明了什么》(属另一条 ICM 线,收进来会抬高各页
sources:,留作日后单独处理,该文目前仍只挂在sources.md);不动书目索引 (00677《混沌——开创新科学》已在wiki/books.md,原文行文写的《混沌:开创新科学》 是简称,书名一律以书目库为准);不碰sources/(append-only)。 - 引文门禁抓到 4 处,全是同一类错:我把自己的概括套进了「」(「我们无法认识世界」
「世界之所以稳固的原因」「客观规律只起规范作用」「也许不成熟的类比」)。按 schema
规矩改页面、不加豁免——后两处改为原文逐字表述(
对系统的形成只是起到规范的作用、我想到一个也许很不成熟的类比),前两处去掉引号改为加粗/纯文本。tools/audit_allowlist.txt仍为 12 条,未新增。 - 验证(四道门禁全绿):
gen_index.py→overview.md + sources.md written (1656 posts);lint_wiki.py→28 files | 670 citations | 202 internal links,OK;audit_quotes.py --check→OK: every flagged quotation (12) is an approved exemption (12 entries, none stale);build_site.py→mkdocs build --strict通过、3038 rewritten to blog URLs, 0 left unresolved、3 处资产引用核对通过。 - 本次已发布、未提交 git:
bash tools/deploy.sh(脚本只跑门禁 + 构建 + rsync,不含任何 git 操作)。真传前先rsync -azn --delete --stats空跑:0 删除、83 个文件(与远端原有 83 个相同,无孤儿文件),确认--delete不会误伤才传;传后rsync -ainc复核无输出 = 远端与本地逐字节一致。线上实测/、自组织、哥德尔-数学-时间、科幻与公理体系、意识-时间-超越、/wiki/log/均 200;4 页正文的引文已改写为blog.rsywx.net/2026/07/29/deng-proves-god-not-always-throw-dice/,新增段落 (如果微观分子全部步调一致、九年后的一个补充读法、三个尺度)线上均可grep 到。 git 提交由作者本人处置。
[2026-10-02] deploy | 上线 2026-10-02 新文综合;DEPLOY.md 改记「公钥免密已生效」#
- 发布:
tools/deploy.sh跑完三道门禁 + 构建后同步至tr@go4pro.org:/home/tr/wiki。 发布前先rsync -azn --delete --stats空跑:0 删除、83 个文件(与远端原 83 个相同, 无孤儿文件),确认--delete不会误伤后才真传;发布后rsync -ainc复核无输出 = 远端与本地site/逐字节一致。线上实测/、/wiki/pages/{游记,影音娱乐}/、/wiki/{sources,log,books}/均 200;游记页的引文已改写为blog.rsywx.net/2026/10/02/from-farm-field-to-heart-field/(sources/未公开), 站内搜索索引(jieba 分词)能命中新内容。 - 免密登录:
DEPLOY.md此前记的是「当前未配置公钥免密、脚本会提示输入密码」, 已不成立 —— 实测-o BatchMode=yes直连成功,服务器接受的正是本机~/.ssh/id_ed25519(SHA256:SwoPiOBNdSJt0a49n/lG2RPKXax1BrVAaGulNAS3+Ic)。 三处改掉该说法(第 1 条、服务器信息表的 SSH 行、第 6 条发布脚本),并新增 「最近一次发布(2026-10-02)」状态段(83 个文件 / 6.0M,取代 2026-09-18 那句 已过期的「72 个文件 / 4.4M」)。tools/deploy.sh头部同一处过时注释一并更正,bash -n语法检查通过。 - 本次发布未含 git 提交:阶段 B 的改动与新语料仍在工作区(含此前 09-21 的 LICENSE/mkdocs 改动),等作者决定如何切分提交。
[2026-10-02] synthesize | 新增 2026-10-02《从稻田到心田》:游记 51→52,音乐线入影音娱乐#
- 阶段 A(
tools/sync_posts.py):从博客 REST API 抓到 1 篇新文 —— post 9973 「从稻田到心田:长假前两日活动小结」(2026-10-02 · 1860 字 · 分类太宗本纪|游记· tags 乡村、心田、稻田),落盘sources/posts/2026/2026-10-02-from-farm-field-to-heart-field.md, 目录 1655 → 1656 行,worklistinbox/2026-10-02.md。门禁如期拦下:游记hub 的sources:与目录对不上(51 vs 52),站点构建与发布因此被扣住。 - 阶段 B(本次综合):
游记.md:sources:51 → 52(按分类关键字实测),updated→ 2026-10-02, 标题年份 2007–2025 → 2007–2026,补 local citation,新增「2026:从稻田到心田」一节 与行程表一行。该文同时被[影音娱乐](影音娱乐.md)引用(音乐那半篇), 按作者 2026-09-20 定的「分类只是便利标签、归属看内容」,不因博客分类而在影音页缺席。影音娱乐.md:新增「从删 MP3 到换无损:雨果发烧碟与卡拉扬(2026)」,把 2009 年 「删除所有 MP3 下载」那条技术事故接上 2026 的无损化与卡拉扬 DG 第 227 张;sources:仍为 81(该文不在电影、音乐、游戏、娱乐分类内,按内容引用不计入 分类计数——这是schema.md写明的刻意不一致),只 bumpupdated。- 数字同步:全库 1654 → 1656(
wiki/index.mdfrontmatter 与正文、根index.md、文学创作.md的占比句),schema.md参考值(游记 52 · 太宗本纪 64)按今日重算。 - 未做(有意):
太宗本纪(64 篇)仍无 hub 页 —— worklist 提示「这些文无处可落」, 但本篇不属该线(太宗本纪是个内容松散的分类标签,2007–2010 那批是拟史日记, 本篇是 2026 年的现实活动小结),故按内容归入游记;建太宗本纪hub 留作日后整簇工作。 - 验证(四道门禁实测,全绿):
gen_index.py→overview.md + sources.md written (1656 posts);lint_wiki.py→28 files | 662 citations | 196 internal links,OK;audit_quotes.py --check→OK: every flagged quotation (12) is an approved exemption (12 entries, none stale);build_site.py→ 1656 permalinks、3030 rewritten to blog URLs, 0 left unresolved、3 处资产引用核对通过。 书目另跑extract_books.py→ 374 本 / 312 篇,新文的叶兆言《岭南十三讲》(02091)已入索引。 门禁抓到我一处:游记.md里我自己写的「人怎么在那里生活」被引文门禁判为无出处 (那是 wiki 侧的概括、不是原文),按门禁的规矩改页面(改为不加引号的加粗),而不是 往 allowlist 里塞一条 —— 这正是该门禁设计要挡的东西。 产物核对:site/wiki/pages/游记/index.html与影音娱乐/index.html里该文的引文链接 全部指向blog.rsywx.net/2026/10/02/from-farm-field-to-heart-field/,wiki/sources/列出该文, 站内搜索索引(jieba 分词)能命中「心田」「雨果」。
[2026-09-21] site | 页脚加一行免责声明:本站内容由 AI 辅助整理#
- 动作:
mkdocs.yml的copyright:追加第二行「本站由 AI 辅助整理,可能存在错漏, 请以原始出处为准。」,全站每页页脚都会显示。为拿到第二行,两行写进同一个copyright值、以<br>分隔——Material 把该字段原样(不转义)渲染进partials/copyright.html, 这是不加主题覆盖文件也能换行的唯一办法(覆盖正是 MkDocs 2.0 会打断的东西)。 - 权限说明:该行是免责声明,不是许可条款。
LICENSE.md的「同步提示」原写「mkdocs.yml的copyright:页脚与本文件内容一节必须一致」,已改为只约束第一行,并写明第二行照留, 避免日后改许可时把声明删掉或把它当作许可条件。 - 署名改名(同日后续):页脚第一行的
© 2004–2026 任颂华(rsywx)改为© 2004–2026 任氏有无轩主人;LICENSE.md的「署名格式」一并改为「任氏有无轩主人,来自 …」 (作者选定,2026-09-21),使转载者照抄的署名与页脚一致——两处是同一身份的两个副本。 未改sources/posts/**与 log 历史条目里的本名:那是原始语料与历史记录,不是显示身份。 - 验证:
site/**/*.html页脚含这两行(均位于md-copyright__highlight内),site/中旧名任颂华(rsywx)只剩 1 处,就在本条目里(记录改名前后,见上); 除此之外全站再无该串。第一次核对时写的「整个 site/ 中不再出现」是错的—— 这条 log 本身被发布(wiki/log.md在导航里),凡在 log 里写出旧串,站点里就必然有它, 所以这类「全站不得出现 X」的自检必须在写下这句话之后再跑一遍。
[2026-09-20] tooling | 引文来源门禁上线:deploy.sh 现在会因「查不到出处的引文」而中止#
- 动作:
tools/audit_quotes.py增加--check(门禁)、--tsv(生成豁免行)、--min-len; 新增豁免清单tools/audit_allowlist.txt;tools/deploy.sh在构建与同步之前依次跑lint_wiki.py与audit_quotes.py --check,任一非零即中止(set -e), 发布路径上再也拿不到一句无法回查的引文。另:deploy.sh改为优先使用.venv/bin/python3(mkdocs 装在那里;cron 场景也需要绝对路径),并修掉 schema 里指向「第三个门禁」的旧措辞。 - 豁免清单只收两类(每条都写明理由):① 作者在审阅对话中给出的口径与数字
(「方法与趣味的简省,不在拥有量」、每秒 5 字/2 小时、75.8 本/12 本、10 美元订阅、对 AI 的评语);
② 界面文案与构建日志(MkDocs 的「正在初始化搜索引擎」、
build_site.py的 jieba 行)。 另有两条例外单独标出:读书方法论那两句疑似作者口述、博文查不到,页面已就地注明“暂按口述保留”。 共 12 条,与当前 12 处可疑引文一一对应。 - 防烂机制:
--check不仅报「未豁免的可疑引文」,也报过期豁免(条目再也匹配不到任何引文就报错要求删除), 所以清单不能靠遗留条目蒙混过关。 - 实测(双向验证):
- 正向:当前状态
--check→OK: every flagged quotation (12) is an approved exemption (12 entries, none stale),exit 0。 - 反向:临时新建一页写上语料中不存在的引文后跑
tools/deploy.sh→ lint 通过、audit 门禁 FAIL、 deploy exit=1,日志中同步 site/出现 0 次(确认 rsync 根本没执行);测完即删除该页。 - 验证:清理后
tools/deploy.sh全绿(lint exit 0;audit --check exit 0;3008+ 条引文 0 未解析), 远端复核逐字节一致;wiki/schema.md的「三个门禁」表已升为四个门禁(引文可回查性单列一行)。
[2026-09-20] correct | 引文审计(批次 6–8):59 → 12,剩者皆属「作者口径/界面文字」#
- 本批处理 11 页,把 59 处可疑引文降到 12 处(且剩余者按作者裁定保留)。共四类修法:
- 伪引文/伪出处(重建页):
意识-时间-超越原有一整节「意识宇宙」+题引“层层嵌套的模拟”+ “意识是物理客观规律的一部分,不是 epiphenomenon”“物理学正走向‘意识首先’”“如果一个人能预见未来, 则预见本身已使未来改变”——全部在语料中零命中。核对后确认:2015-09-29那篇其实是 朋友康华岳的书评(博主“特此收藏”转载),原页却把其中的观点当作博主的“译者注”“译者引言”, 还凭空安了一节《意识宇宙》(该文根本没提这本书)。已按四篇原文重写本页:翻译缘起与两次出版意外、 他自写的封面折页介绍、康华岳书评的论证线(并明确标注作者)、2017-05-03思客读书会那条 “定域 → 概率与波函数 → 观察 → 缠绕 → 意识”的完整线、2013校对摘录、《文城》的量子隧穿落点。 - wiki 自己的标签被写成引文(去引号,不动内容):
读书(跨越时代…)、译书记录(技术人×博客自学者)、人生的下半场(规范驱动…)、政治-哲学-制度(三个提法)、编程(AI 如何作为协作者)、三公理溯源(三处小标题)、自组织(四处)、读书方法论(两处)、科幻与公理体系(科学本身也必须自洽)、教育方法(两处)、AI编程进化(四处)。 - 压缩/串行引文改回逐字:
科幻与公理体系“法则零——人类作为整体”(并改引到2013-02-09 我机器人,原引2012-10-10无此句);教育方法“你觉得哪个字/字母你写得最好? 标一个笑脸好不好?”;哥德尔-数学-时间“只有11/12/13三章才是真正地在讨论问题”、 “抛弃自己的小系统,转而思考这些较大系统的元规则”(原为繁体“拋/轉”);AI编程进化“从‘宪法’到 ‘计划’再到‘任务清单’,完全不是VC……”;影音娱乐《流浪地球》两个主题的原句 (“用于牺牲”按原文照录,不代改)。 - 又两处信息待记:
读书方法论的“开辟三条街、治黎民于一党”与“做管理咨询项目时……”—— 两条都不在所引博文里,但都读着像作者本人的自述,按“作者口径保留”处理,只去掉错挂的出处 并标注“未见于博文,暂按口述保留”。 - 剩余 12 处(全部保留,非错误):
三公理检视6(作者界定「方法与趣味的简省,不在拥有量」、 旧注解、每秒 5 字、75.8 本/12 本、10 美元订阅、作者对 AI 的评语)、读书1(同一条作者界定)、站内搜索3(MkDocs 界面文字「正在初始化搜索引擎」与构建日志行)、读书方法论2(已注明为口述)。 - 工具:
--explain的证据行让「伪引文 / 轻微改写 / 非博文来源」三类可以逐条分辨;本轮口径全程一致 (MIN_LEN=8、剥离标点与 HTML 标签)。 - 验证:
lint_wiki.pyexit 0(28 页 / 引文 657 → 659 / 内链 192);build_site.pyexit 0, 3025 条引文链接改写、0 条未解析;已 deploy,复核逐字节一致。
[2026-09-20] correct | 引文审计(批次 5):卡尔维诺 10 处 → 0,并补齐遗漏的出处#
- 本页两类问题都最典型:凭空联句 + 无据年份。
- 题引联句造假:原页题引作“没有《隐形的城市》,或许就不会有《看不见的城市》…… 但我还是喜欢《隐形的城市》这个译名”,
前半句是《马可瓦尔多》腰封上的话(“没有《马可瓦尔多》,或许就不会有《看不见的城市》”),
被换成了《隐形的城市》;已还原并标明是腰封语。另一句“经典应永远意犹未尽”原文作
“经典应该永远意犹未尽”,而“不是‘欲言又止’……更不该是‘为尊者讳’”出自
2019-06-21 如果我只能为你推荐一本书——该文是本页“意犹未尽/乐而不淫哀而不伤/《隐》最高评价” 三处引文的真正出处,原页一处都没引。 - 「作品地图」表的年份全部无出处(1965 寒冬夜行人、1975 我们的祖先、1978 命运交错的城堡、
1988 六月的莲花),且与事实不符;「六月的莲花」在 1655 篇语料里零命中。表已删除,改为
语料可考的三个写作年(《马》1963/《隐》1972/《帕》1983)+
2010-10-25那篇逐本列出的购书日期表。 - 引文压缩/改字(均已改回逐字):“纯文学可以这样写”→“这部作品让我第一次见识到纯文学作品可以这么写”; “只是描述,不给出答案”→“只是描述,而不刻意给出答案和结局”;“穷尽文学技巧与结构,让你领悟纯粹之美”→ “穷尽文学写作的技巧和结构,让你领略文学的纯粹的美”;“油条氽太老、豆浆有豆腥气”→“油条氽的太老,豆浆有豆腥气”; “几乎沉默的交流”→“他俩交流的时候,大部分时间里都是沉默的”;“作者真实意图永埋脑瓜”→“作者的真实意图将永远埋藏在他当时写作时的脑袋瓜里”。
- “像卡夫卡一样戛然而止”不是原文——卡夫卡在原文里是“另一种续写写法”的假设,与戛然而止无关; 已改为原文“就是将小说戛然而止,给腰斩了”。
- 错引出处:“他让我能沉入文字去思考结构,又能跳出文字去思考意义”原引
2010-10-25,实出自2020-01-14; “坚实的内核和规则”(2008-06-26)与“先确定结构,再下笔”(2020-01-14)本是两句,原页并成一句。 - 坏字:
一发而不可收拑→ “一发而不可收拾”。sources: 6 → 8。 - 工具改进(本轮):比对前先剥掉 HTML 标签与链接标记——语料保留原始 WordPress HTML,
正文里带
<a>的句子此前永远匹配不上,会误报(例:“我似乎看到了《寒冬夜行人》的雏形”)。 另:短于 10 字的引文会被跳过,故MIN_LEN已降到 8,并支持--min-len。 - 剩余:59 处 / 17 页(三公理检视 7、读书方法论 7、意识-时间-超越 6、哥德尔-数学-时间 5、 教育方法 5、自组织 5、AI编程进化 4……)。
- 验证:
lint_wiki.pyexit 0(28 页 / 引文 645 → 656 / 内链 190);build_site.pyexit 0,0 条未解析;已 deploy。
[2026-09-20] correct | 引文审计(批次 4):三处伪警句 + 令狐虫误记扩散到第四页#
- 审计工具口径收紧:
MIN_LEN10 → 8(新增--min-len)。原因:阅读不是消费,是投资。这类 9 字假引文正好落在旧阈值下被当作“太短不判”而漏检——旧口径低估了问题规模。 改口径后:旧口径 47 处 → 新口径 69 处(多出的 22 处原本藏在“太短不判”里)。 - 三处伪格言(写作时当作博主原话,语料里一句都没有):
读书.md:“阅读不是灌输,是找到另一个系统来检验自己的系统。”——出处写的是内部页读书方法论.md(且标签写“不可对文字二阶求导”,指向错文件)。已换成该篇原文: “要求二阶导数,必须先要求一阶导数。数学如此,文字也如此。”并改引到真正的原文链接。编程.md:同一条伪格言又被用作「三个公理」的题引,且引向读书.md——两页互引。 已删(该节本就有三条有据的引文)。读书方法论.md:“阅读不是消费,是投资。”——挂在2008-03-27 怎样来读书名下, 该文(已通读)没有这句话。已换成同篇逐字引文“这些东西写的时候没有任何功利的想法, 因此可以很‘纯’”。- 令狐虫误记扩散(同一错在第四页):
编程.md「三个公理」第 1 条与自组织.md的 2005-11 时间轴行,都把评论区那句“(小型的)社区,大家平等交流”当成博主的主张;自组织.md更据此 论证博主“否决网络课堂的中心—辐射模式”——方向正好相反:博主在2005-11-25帖中提的是 “采用管理员提问而会员回答的方式”(中心式),令狐虫才是主张社区的那位。两页均已改写并加更正说明; 连同上批的三公理检视/三公理溯源,同一误记共涉 4 页(另:自组织.md所引“按兴趣自行 加入与脱离”出自评论者 95927)。 - 剩余:69 处 / 17 页(卡尔维诺 10、三公理检视 7、读书方法论 7、意识-时间-超越 6、 哥德尔-数学-时间 5、教育方法 5、自组织 5、AI编程进化 4……)。其中相当一部分属“作者审阅口径” 按裁定保留,故待核量低于条数。
- 验证:
lint_wiki.pyexit 0(28 页 / 引文 644 → 645 / 内链 191);build_site.pyexit 0, 0 条未解析;已 deploy。
[2026-09-20] correct | 引文审计(批次 3):李自成与甲申 8 处 → 0#
- 按七篇原文(2008-04-07/08/10、2016-05-14、2023-09-12/15/19)重写本页正文,修正分四类:
- 坏字/胡话:原页「姣客行第;红娘妇媚、李信怠慢」「“开封”=“开”,“封”字从古不同」—— 两句都不是原文,也不是中文;已按原文重写李信与红娘子、开封之围两节。
- 凭空引文:原页称姚雪垠有“写李自成者,盖十六世纪春秋意气之作”之语,任何一篇语料里都没有; 已换成原文那句“此书十卷本,300多万字,乃是中国文学史上不多的宏幅巨制”。
- 错字引文(最要紧的一处):原页作「其与脱胎换骨何异哉」,原文是「此类二阶导数,以时人之虑 断古人之心,其与削足适履何异哉」——一字之差,意思全反。 同类已逐条改回逐字:“恳王爷放山人仍回江湖,从此不问世事,常做闲云野鹤”、“把自己训练成 复辟奴隶制的帮凶”、“‘我’的祖上一定是‘最幸运’的”、“窥一斑而知全豹”等。
- 张冠李戴:原页把“第二历史/第二小说”与《史纲评要》都挂在
2023-09-12名下,该文并无此内容 (“第二历史/第二小说”见于2008-06-26 蚂蚁蚂蚁等);“波内尔式异源异质来源”应为《1984》里的 奥勃良;哥白尼原则与“常识”本是两条不同定理,原页并作一条且带坏字“冷僠”。 - 重建后:一阶(定理一至四分开列,每条带逐字引文)、二阶(郑伯克段于鄢、1974 年《〈论语〉批注》、 姚雪垠的省略与“避讳”结论)、三阶(《天鹅绒监狱》组织架构与系列收束)三段并列,全部可回查。
- 剩余:47 处 / 14 页(三公理检视 6、卡尔维诺 6、读书方法论 6、意识-时间-超越 5、 AI编程进化 4、哥德尔-数学-时间 4、教育方法 4、读书 3……);其中凡属作者审阅口径者按裁定保留。
- 验证:
lint_wiki.pyexit 0(28 页 / 引文 647 → 644 / 内链 193);build_site.pyexit 0, 3010 条引文链接改写、0 条未解析;已 deploy,复核逐字节一致。
[2026-09-20] correct | 引文审计(批次 2):中国通史笔记 归零、两处张冠李戴更正#
- 作者裁定(本批执行口径):审计命中的引文里,属于作者在审阅对话中给出的口径(博文里没有) 的,一律保持原样,不加标记、不去引号。所以「可疑」≠「有错」,只修行文中可归到某篇博文、 而那篇博文里却没有的那一类。
中国通史笔记.md:11 处 → 0 处(逐条回 2007–2008 原帖核对后修正):- 篇数 16 篇核对无误(
_catalog.tsv中《中国通史》分类 16 篇,全在 2007);sources: 20 → 16。 - 讹字造成的假引文:「土地还是这块土地,归属却经过数次易手。史官文化延续是文化与经济, 而非皮肤基因」——原文是“土地还是这块土地,而归属却经历了数次易手”+“人种基因的延续也不能 完全成为一个判断依据”,已按原文重写。
- 压缩式引文(读着对、逐字不对)改回原文:《中国通史》第八编 p13 朱元璋那段、“任何改革措施… 都有自己的 pros & cons”、“1500本书,读一本大概需要一个月,1500个月就是140年”、 “我比较感兴趣的,是朝代的更迭、帝王的兴替…”、“宋献策本来就是一个江湖术士…”, 以及范文澜第四编 p247“缺乏鬼神的威力,最大限度只能管人(民众)的生前,不能管人的死后”。
- 张冠李戴:“不要闲着没事,把位移对时间求三次导!否则,你就是一个jerk!”原页挂在
2007-05-31 改还是不改名下,实际出自2023-09-12 不可对文字进行一阶求导,已改引并注明。 - 串页引文:“各种宗教可以并存…绝不会成为各教派宗教战争的导火索”原引
死后的事,实出自2007-04-22 儒释道,已改引。 - 「对死后不可知的补白」「Challenge / 4M / PDCA」等不是引文,是页面自己的概括——已去引号改写。
三公理溯源.md/三公理检视.md:一处张冠李戴更正。 两页都把 2005-11 「创立一个小型社区,大家平等交流」当作博主的主张(并列为「利他的行为原型」); 回原文核对:那是2005-11-25 关于成立一个编程论坛的想法帖子评论区里令狐虫的话 (2005-11-29 13:03 by 令狐虫),博主在该帖自己的主张是论坛“采用管理员提问而会员回答的方式”, 因为“可以有一种‘帮带’的关系存在于管理员和会员之间”。两页均已改写并补上引文链接 (原行根本没有出处链接,本身即违反引用纪律)。另:三公理检视引《蛋壳》时增写的 「例外只在「时事能验证自己公理时」才破」在原文中不存在,已删。- 剩余:55 处 / 15 页(李自成与甲申 8、三公理检视 6、卡尔维诺 6、读书方法论 6、 意识-时间-超越 5、AI编程进化 4、哥德尔-数学-时间 4、教育方法 4……)。 其中不少按上述口径属保留项(作者口径),故实际待核量低于这个数字。
- 验证:
lint_wiki.pyexit 0(28 页 / 引文 641 → 647 / 内链 194);build_site.pyexit 0, 3013 条引文链接改写、0 条未解析;已 deploy,复核逐字节一致。
[2026-09-20] correct | 引文审计工具 + 逐页重建(批次 1):企鹅欧洲史 整页重写#
- 作者要求:把扫出的伪引文真的修掉,不是只讨论。故新增工具并开始逐页重建。
- 新增
tools/audit_quotes.py(只读,未入门禁):取wiki/pages/*.md上每一处 “…”/「…」, 与sources/posts/**做去标点比对(引号、顿号、书名号、markdown 记号一律剥离,免得把 「加了内层引号」误判成伪造),允许……截断(分段各自逐字命中即通过),其余按 8-gram 覆盖率 打分,低于阈值报告;--explain打印语料中最接近的位置作为证据。 首轮 229 条 → 改对口径后 80 条:三分之二是比对口径造成的假警报,这一步本身值得记。 - 批次 1:
企鹅欧洲史.md—— 整页重写。原页标题作「索普皮尔 / P.E. James」,而索普皮尔在 1655 篇 语料中零命中,该系列作者姓名语料根本没有(按 schema 纪律留空,不照常识补);原页 6 处引文 全部查无出处。真实来源是 7 篇 2019 年笔记:第五卷《基督教欧洲的巨变——1517-1648》01929(63 万字 / 838 页,分五篇)+ 第二卷《罗马帝国的遗产:400-1000》一篇。新页按原文重写为: 基督教世界意识→欧洲意识的毁灭、权力的正当性(含郭沫若《十批判书》引语)、人口·城市·贸易、 贵族与社会分层、观察天地·了解世界、第 9-10 章、第二卷的六大转折与「道德化的政治行为」。- 一处重大误读(原页凭空造出方法论):
2019-02-11 来自ki的拷问…被读成「来自 KI(Bard / Claude) 的拷问」,并据此编出「借助 AI 拷问作者是否客观」。该文 slug 为kazuo-question、正文通篇是 石黑一雄《被掩埋的巨人》书评——ki = 石黑一雄(Kazuo Ishiguro),不是 AI。已改正,并只保留 该文与本系列的真实关联(第二卷 p326 亚瑟门卫高文 Glewlwyd Gafaelfawr 的 4.19 补记)。 科幻与公理体系.md—— 5 处引文改回逐字(《神们自己》评语、《北京折叠》「不算」、「甚至比 阿西莫夫的机器人三定律还少了一个」、「不明觉厉」那句、升维替代体系的两条公理拆分引用)。- 剩余:审计全文(只读、不入 git)在
inbox/quotes-audit-2026-09-20.txt;现余 69 处 / 17 页 (中国通史笔记 11、三公理检视 8、李自成与甲申 8、卡尔维诺 6、读书方法论 6、教育方法 4、 哥德尔-数学-时间 4、AI编程进化 4……),继续一页一页回原文核。 不得批量「去引号」了事:其中一部分是作者在审阅对话中给的口径(如「方法与趣味的简省, 不在拥有量」)——那不是伪内容,只是不出自博文,如何标注需作者定夺。 - 验证:
lint_wiki.pyexit 0(28 页 / 引文 626 → 641 / 内链 194);build_site.pyexit 0, 3007 条引文链接改写、0 条未解析;已 deploy,复核逐字节一致。
[2026-09-20] correct | 《对我影响最大的十本书》整页重写:原表为伪,书单实为 11 本#
- 作者指出:该页表格「totally not what I listed」。逐字核对两篇原文后确认——整张表是凭印象
编的:
没有时间的世界在两篇原文里根本没出现过(却是原表的第 1 与第 7 条);沙丘、合作的进化、凯恩斯传都不是书单条目;基地长老会大设计不是书名,是 2012-10-10 一篇日志的标题。原表 10 条里只有《神们自己》《这本书叫什么?》《霍乱时期的爱情》三本对得上。 - 唯一出处(两篇)与真实书单(原有顺序):
2026-06-27 对我影响最大的十本书详解(上)六本:《隐形的城市》00666、《霍乱时期的爱情》00790、《神们自己》01903、《叫魂》02065、《日本权力结构之谜》01979、《美国宪政历程: 影响美国的25个司法大案》01631。2026-06-28 对我影响最大的十本书详解(下)五本:《地理的报复》01831、《常识》01848、 《混沌——开创新科学》00677、《这本书叫什么?》01723、GEB01740。- 下篇脚注:「最终是11本书——不要在意这些细节。」→ 11 本,不是 10 本,页首与表头已按此写。
- 书号来自
sources/_books.tsv(除《三体》01699、《百年孤独》00979、《基地》01732、 《法律简史》01997、《上帝掷骰子吗?》01724等旁证书;上帝创造了整数与合作的进化在书目库中无记录,故不写书号)。 - 新页结构:书单表(序 / 书名 / 为何影响,逐条回引原文并用作者原话)+ 新增「取舍」一节
(原文点名但不在书单内的书:卡尔维诺另三种、《百年孤独》、王尔德、
基地系列、三体、 《法律简史》、《上帝掷骰子吗?》、GEB 先导书),+ 三信条(含四步思想构建路径)+ 新增 「另一份《书友们推荐的书》(勿混淆)」一节。sources: 2 → 3(补2026-06-05书友书单, 用于与前一份列表划清界限:该书单里作者自己加粗的 9 种中,8 种与本页书单重合,只有「基地系列」不在)。 - 连带订正(伪内容已扩散到 5 页,均已按原文改回):
哥德尔-数学-时间.md:GEB「先导书」原写《这本书叫什么》、《沙丘》/《三体》、《没有时间的世界》、 《凯恩斯传》、《合作的进化》→ 改为原文名单《混沌》《这本书叫什么?》《三体》《上帝创造了整数》 《凯恩斯传》《合作的进化》;并注明 GEB 是书单最后一本。科幻与公理体系.md:原作「《三体》在十大影响书中被《神们自己》取代」→ 改为《三体》从未 入选,书单里的科幻是《神们自己》,《基地》系列是「也是很值得一看的」。卡尔维诺.md:《隐形的城市》明确为书单第一本,引语补回原文的内层引号;《霍乱》一行改为 原文措辞(「我个人觉得《霍乱时期的爱情》更加令人震撼,而不是魔幻」),删去原文没有的 「比百年孤独更令人震撼」。读书.md:三公理表的「含义」栏原为伪引(「复杂即混乱」「一个观点用简单语言说不清楚」 「造福他人」「不易被操纵」在语料中一句都查不到)→ 改引有据的三处:《凯恩斯传》译序 (公理体系「结构异常简单却又异常严密」;利他是凯恩斯的「公理」)、2017-07-26 数学与科技 译者序(自洽=既完备又一致)、三公理检视(作者对「简单」的界定)。- 顺带扫出(另一页,同源问题):
读书方法论.md「反模式」节有一条误引2026-06-27(“情绪代替思考”)——原文无此意,已删;同节另两条及其上方引语在所引日志 (2024-02-18 叫魂、2008-03-27 怎样来读书)中同样逐字查不到,已在该节加「待核」标记, 留待作者定夺,本次未改写。 - 验证:
tools/lint_wiki.py→ exit 0(28 页 / 引文 607 → 626 / 内链 193);tools/build_site.py→ exit 0,2992 条引文链接改写、0 条未解析。 - 教训(防再犯):书本条目这类「可枚举、可逐条核对」的内容,必须逐本回到原文的小标题去核,
而不是核对话术——原表每一条都读着通顺,且引用了正确的日志链接,所以链接能通、语义全假。
同一批伪内容会顺着引用链扩散到多页(本次 5 页),发现一处即应顺链全查。
另:页头
sources:记的是该页引用的语料篇数,不是书单条数,勿混。
[2026-09-20] deploy | 上线:引文回改 + 年表「书目库」列(远端与本地逐字节一致)#
- 上线内容:本日全部改动 —— 《译书记录》引文逐条回改(含 quasi-philo 署名更正、出版社更正), 以及年表新增「书目库」列(8 行书号链接 + 表下图例)。
- 执行:
./tools/deploy.sh(=build_site.py→rsync -avz --delete→rsync -ainc字节复核)。 脚本自带的复核无输出,即远端与本地逐字节一致;本次传输 37,347 字节。 - 上线后的独立复核(不依赖 SSH):
- 站点地图 URL 集合:本地
site/sitemap.xml与https://wiki.go4pro.org/sitemap.xmldiff无输出,完全一致。 - 实取线上页面
…/wiki/pages/译书记录/:HTTP 200;「书目库」出现 4 次; 书号链接 9 个(8 行 + 图例),ID 与本地一一对应: 01822 / 01855 / 01882 / 01887 / 01928 / 01958 / 01979 / 01983 / 01984。 - 未做:本次没有跑
tools/sync_posts.py(阶段 A)。若要拉新文,顺序应是 先同步 → 阶段 B 综合 → 再 deploy,否则站点又会落后于仓库。 - 过程记录(值得记,避免重犯):我一开始去手工跑
ssh -p 22220 …做所谓「预检」,纯属多余 ——tools/deploy.sh本身就是完整入口,且该机已配公钥免密(作者已明确指出)。另外用cat看长文件时终端被 pager 占住(alternate buffer),后续命令全被吞掉,白耗两轮。下次:直接跑脚本; 读文件用编辑器而非cat。
[2026-09-20] correct | 书目元数据一律以藏书目录为准;年表新增「书目库」列(作者指出我漏用现成索引)#
- 作者指出(本日最重的一条反馈):博主有全量藏书目录
rsywx.net,我却在前面几条里 靠grep语料 + 常识去推断著者与出版社,放着可靠来源不用。核查后确认这是流程性错误; 而且更糟:索引本来就在仓库里 ——tools/extract_books.py早已把 「书目 → 书号 → 提及日志」生成为sources/_books.tsv(374 条)与wiki/books.md, 而年表里 8 本书全部已在索引中(01822/01855/01882/01887/01928/01958/01979/01983)。 即:我完全不必向作者索要链接,书号就写在博文正文里。 - 取数方式:作者明确只能查公开书页
https://rsywx.net/books/<id>.html;带 Bearer 的接口 不在对话/日志里使用(凭据不进上下文)。 - 核对结果(出版社一项原本全对,现在全部有据): | 书号 | 作品 | 出版社 | 出版日期 | 著者(书目库字段) | |---|---|---|---|---| | 01822 | 缠绕的意念 | 人民邮电出版社 | 2015-09-01 | 【美国】雷丁 | | 01855 | 凯恩斯传:一个利他主义者的七面人生 | 电子工业出版社 | 2016-05-01 | 【美国】Hines | | 01882 | 搜索:开启智能时代的新引擎 | 中信出版社 | 2017-05-01 | 【美国】韦茨 | | 01887 | 数学与科技 | 电子工业出版社 | 2017-07-01 | 【美国】《科学新闻》杂志社 | | 01928 | 谁是下一个乔布斯 | 中信出版社 | 2018-11-01 | 【美国】布什内尔 | | 01958 | 对冲 | 中信出版社 | 2020-01-01 | 【美国】施拉格 | | 01979 | 日本权力结构之谜 | 中信出版社 | 2020-10-01 | 【荷兰】沃尔夫伦 | | 01983 | 帝国与蛮族 | 中信出版社 | 2020-12-01 | 【英国】希瑟 | | 01984 | 数据安全实操指南 | 中信出版社 | 2021-01-01 | 【新加坡】谢泼德森 |
- 前两行练笔(《911调查委员会报告》《上帝创造了整数》)只存在于
rsywx.com/doku.php, 书目库无记录,故留—。 - 01979 的出版日期 2020-10-01,反过来确认了本日早先那处「2026 → 2020」的订正。
- 01882 题记「个人与中信合作的第一本书」与 01928 题记「第二本」互为印证 —— 这正是判定 01855(凯恩斯传)不在中信名下的旁证。
- 01958 书目库出版日期 2020-01-01、购买日期 2019-12-21、题记「总算在 2019 年底完成」—— 年表写「2019/2020」有依据,保留。
- 年表结构变更:新增「书目库」列(
[01822](https://rsywx.net/books/01822.html)形式), 表下加图例写明两列分工不可互代(书目库管著者/译者/出版社/出版日期,备注与英文书名管语料)。 每行元数据现在都能点开原页核对。 另据书目库补:《搜索》备注加「与中信合作的第一本」, 《数学与科技》「负责数学部分」→「负责数学卷」(书目库题记:合作翻译,翻译的是数学卷), 《日本权力结构之谜》《数据安全实操指南》原书栏补著者(沃尔夫伦 / 谢泼德森)。 - 删掉我自己推的两处英文书名:上一轮我把《帝国与蛮族》写成 Empires and Barbarians、
《谁是下一个乔布斯》写成 Finding the Next Steve Jobs。书目库没有「原名」字段
(英文原版记录
01825 Universal Man同样只列标题与著者),这两个书名无任何出处,已删, 只保留书目库支持的著者(Peter Heather / Nolan Bushnell)。 - 写进约定(
wiki/schema.md「Conventions for synthesis pages」):新增「书目类事实只能来自 书目库」一条 —— 含默认动作(先用_books.tsv定位书号,再开书页核对)、 「引文靠语料、元数据靠书目库,两者不可互代」、以及「书目库无原名字段,缺就留空,不要推」。 - 验证:
lint_wiki.pyexit 0(28 页 / 618 引文 / 189 内链全部解析);build_site.py→ 引文链接全部改写、0 条未解析。
[2026-09-20] correct | 《译书记录》2018 行补原著作者 Nolan Bushnell(作者给链)#
- 作者给链:
rsywx.net/books/01928(《谁是下一个乔布斯》),并指出原著作者是 Bushnell。 - 书目库核实:中信出版社、出版日期 2018-11-01、ISBN
978-7-5086-9454-2(7-5086即中信前缀,与同页「中信」自洽)、著者【美国】布什内尔、译者任颂华、185 页、 分类号 F272.92(人才管理);题记「这是我和中信合作的第二本出版的书」—— 与本页备注「与中信合作的第二本书」呼应(该备注出自2018-12-20同一句话), 页数与博文「全书也只有寥寥 180 多页」也对得上。 - 著者名拼写:作者写作「Bushnel(l)」,语料与书目库均作 Nolan Bushnell
(
2018-12-20原文「诺兰·布什内尔(Nolan Bushnell)」并附维基链接),已照后者采用。 - 改动:原书栏
—→*Finding the Next Steve Jobs*, Nolan Bushnell。英文书名是按中文 书名对应补的,语料与书目库均无此字段(与《帝国与蛮族》同一处理,已在回复中说明待确认)。 - 验证:
lint_wiki.pyexit 0;build_site.py→ 引文链接全部改写、0 条未解析。
[2026-09-20] correct | 《译书记录》年表逐行补引;两行经作者给链核实(11 行)#
- 作者给链:
rsywx.net/books/01983(《帝国与蛮族》)、/01887(《数学与科技》)—— 正是上一条末尾我列为「无直接证据、未动」的两行。核实结果:两行原本就是对的, 出版社与年份一个字不用改。 - 01983《帝国与蛮族》:中信出版社、2020-12-01、ISBN
978-7-5217-2242-0、译者任颂华、 806 页、分类号 K126、标签「第一千年/罗马」——与2019-04-28 欧洲从400年到1000年讨论的时段完全吻合。 - 01887《数学与科技》:电子工业出版社、2017-07-01、ISBN
978-7-121-30841-3、 著者《科学新闻》杂志社、题记「合作翻译。翻译的是数学卷」——与备注「负责数学部分」一致。 - 补作者(作者指出,改用语料自证):《帝国与蛮族》原著作者 Peter Heather。
维基在本机被封,未采外部来源,而是语料互证:
2019-04-28「我正在翻译的《帝国与蛮族》 (作者 Peter Heather 的另外一本作品是《罗马帝国的陨落》)」+2023-08-12「我翻译了 彼得·希瑟的《帝国与蛮族》」。原书栏据作者确认填 Empires and Barbarians, Peter Heather —— 英文书名是中文书名的对应,不是另有出处(已向作者说明,勿当成已核实项)。 - 本次真正的增量:年表原来一行出处都没有,而依据全在语料里躺着。 逐行补了 11 个引用,
引文计数 607 → 618:
| 年表行 | 补引 |
|---|---|
| 911 报告 · 上帝创造了整数 · 缠绕的意念 |
2015-09-21| | 凯恩斯传 |2016-05-27| | 搜索 |2017-05-31(该文标题就是「译者短评」,正是这行备注的出处) | | 数学与科技 |2017-07-26(一直在语料里,却从未被本页引用) | | 谁是下一个乔布斯 |2018-12-20| | 对冲 |2020-01-04| | 帝国与蛮族 |2020-12-19(原文:「即将由中信出版社出版」) | | 日本权力结构之谜 |2026-06-27(「近乎收山之作」的原句) | | 数据安全实操指南 |2021-12-19(「应该是因为政府的立法」) | - 另修两处措辞:《数学与科技》备注补为「第二翻译,负责数学部分」(
2017-07-26:「接受 电子工业出版社郭景瑶编辑的邀请,担任《数学与科技》一书的第二翻译」);《帝国与蛮族》 备注补「2020-12 出版」。年表现在没有只写结论、不给依据的格子。 - 验证:
lint_wiki.pyexit 0(28 页 / 618 引文 / 189 内链,全部解析);build_site.py→ 2984 条引文链接改写、0 条未解析。 - 留白 → 更正(2026-09-20 同日):《谁是下一个乔布斯》的「原书」栏已由作者给链补齐
(见本文件最新一条日志);仅《数学与科技》仍作
——— 该书是《科学新闻》杂志社的 合译卷(数学卷),是否对应单一原书,语料与书目库都没给,故不填。
[2026-09-20] correct | 《译书记录》逐条回改:引文一律还原原文(作者:「字符级错误必须改正」)#
- 作者指令:「字符级错误:必须改正」,并提示引文里的错也可能是引用时引入的。 这条判断成立,而且本次核对发现:最严重的不是错字,而是引号里的字被改过 —— 错字看起来就像错字,而被转述的「原文」会被当成作者的原话,引号本身提供了虚假保证。
- 核对方法:该页每一条引文都
grep回原句后逐字比对,不读着顺眼就算。 - 引文还原(6 处,全部落在引号内):
- 开篇 —— 原文「直到 2015 年(或者说 2014 年)才完成了当译者的心愿」。
- quasi-philo 定义与比喻 —— 定义原文「确实有哲学内涵,但是(可能)提出者也没有完全 认知其哲学内涵的准哲学理论」;比喻原文是「用高中数学语言教学龄前儿童大学物理 专业教程一样」,页面两处都缺字。
- 三审 —— 原文「即使我能拿到稿酬,却不能有一个将我的名字印在书的封面之上的 机会,这是我不能忍受的」;页面作「能拿到稿酬,不能在封面上出现自己名字」。
- 元规则 —— 原文「不要将它作为一个纯粹的人物传记来看;多体会一下元规则的含义」。
- 凯恩斯传公理 —— 原文「如果(梅纳德)面临互相冲突的选择并需要就实际事务的推进 选择方法时,合理的原则总是选择最慷慨的路线。」(页面作「面临冲突择捧时, 总选最慷爰的路线」)。
- 《生命之轻与翻译之重》—— 原文「将其翻译成另外一种文字,进而再让读者自行得出 其中的意义,则额外进行了两次近拟(一次是在翻译时,一次是阅读时)」。
- 另 1 处引语在原页面根本不存在:翻译哲学首条作「译者看来,只是兴趣和分享的热望」, 而原文是「进行这些翻译都不是为了赚钱,也不为出名,只是兴趣和分享的热望」—— 前半句是凭空安的。
- 事实性更正(超出「错字」范围,但同属「不可回查即不得写」的纪律):
- quasi-philo 被记到「Einstein」名下 —— 实为博主自创的词(
2013-08-15原文: 「我所说的 quasi-philo,是我自创的一个词」);「Einstein」在讨论中的角色是开书单。 这是本次最重的一处:署名错人,比错字更容易被当真。 - 「中信编辑『光森』通知 CIP」 ——
2020-01-04原文只作「编辑大人」,未具名; 而语料里的光森(郭光森)属人民邮电(2015-09-21、2016-12-28)。已改为不具名 (「与中信编辑讨论」本身有原文支持)。 - 《凯恩斯传》出版社:中信 → 电子工业。三处互证:
2016-12-28 一九八四(「电子工业郭景瑶《凯恩斯传:一个利他主义者的七面人生》」)、2016-05-27(「电子工业出版社的景瑶编辑邀请我写一个译者序」)、书号978-7-121-28625-4(7-121即电子工业出版社前缀)。另有作者自己的旁证:2018-12-20说 《谁是下一个乔布斯》是「我和中信合作的第二本出版的书」(第一本是《搜索》), 那么 2016 年的《凯恩斯传》本就不该记在中信名下。同页《搜索》= 中信无误。 - 人名「凯恗斯」×2 → 凯恩斯;书名「《缠经的意念》」→《缠绕的意念》;小标题残留的 自问自答「(Skudelsky?— 实际为 Skidelsky)」→ 直书作者名(更正:此处初记的 Robert Skidelsky 也是错的,见文末「更正」);讹字 「读者水平陪太多,哲学训不及」→ 依原文改作「读者哲学底子不够」;「11 月获捷」 →「11 月编辑通知 CIP 终于拿到」;「光森斡旋」→ 原文「郭光森找到了我」。
- 顺带补一处漏引:翻译哲学第 2 条原本没有出处链接(只引原话不给出处,正是作者最
反对的形态),已补
2015-09-21的引用。 - 验证:
lint_wiki.py→ exit 0,引文计数 606 → 607(即上面那条补引);build_site.py→ 2973 条引文链接全部改写、0 条未解析;页内坏字扫描 (凯恗|缠经|择捧|慷爰|陪太多|Skudelsky|获捷|斡旋)现仅命中本日志。 - 教训(建议后续写进
schema.md):本页这类损坏是整段性的 —— 同一页 6 处引文同时 失真 + 1 处署名错人 + 1 处无出处引语。这不像是手误,更像上一轮 LLM 改写时凭印象复述。 因此核对手法只能是「grep定位原句后逐字比对」,不能只读页面对不对眼 —— 读着顺的错句最难发现。 - 更正(2026-09-20 同日,作者指出):
- 《凯恩斯传》原著作者不是 Skidelsky,本日志上一条也写错了。 作者给出
https://rsywx.net/books/01855.html:出版社电子工业出版社、出版日期 2016-05-01、
ISBN
978-7-121-28625-4、著者字段Hines、译者任颂华。全名见作者自己的英文博文2016-07-01 keynes-vs-hayek:「my translation of Richard Davenport-Hines' Universal Man has been published」;2017-01-07 读书回顾将作者记作「海因斯」。 该页表头与详述小标题均已改为 Richard Davenport-Hines,并加了一条「勿混淆」提醒。 - 同一错误还在第二个页面:
wiki/pages/对我影响最大的十本书.md第 6 行原作 「《凯恩斯传》(Skidelsky)」,已改为(Richard Davenport-Hines),updatedbump 至 2026-09-20(两页均改后重跑门禁)。 - 出版社一处确认无误:作者确认「确实是电子工业的」,与上一条的推论一致。
- 教训(比错字更值得记):书目表格里的「作者」栏不能用常识补全。同名《凯恩斯传》
不止一本,中文译名又一样,而凯恩斯最有名的传记作者恰好是 Skidelsky —— 于是「常识」
把一本 Davenport-Hines 的书归到了 Skidelsky 名下,而且读起来完全通顺。这与本页
其他损坏同源:没有任何一个字是错字,整句话却是假的。回查口径:中文译名靠语料,
作者/出版社/年份靠书目库(
rsywx.net/books/<id>)。
[2026-09-20] correct | 《译书记录》补全三家出版社 + 订正《日本权力结构之谜》出版年(作者给数)#
- 作者给出的数据:《谁是下一个乔布斯》《日本权力结构之谜》(作者简称「日本权力」)、
《数据安全实操指南》三本的出版社均为 中信。表格「出版社」列原为空(
—),已补全。 - 核对(均在语料中可回查,未凭印象填写):
- 《谁是下一个乔布斯》——
2018-12-20 乔布斯在哪里:「是我和中信合作的第二本出版的书」, 据此补备注「与中信合作的第二本书」;2018 年 12 月出版(2018-12-23 2018年度总结)。 - 《日本权力结构之谜》——
2020-11-03 日本权力结构之谜读后感:「承蒙中信孙未末老师的 努力和辛劳,我最新的译作……终于付印」。 - 《数据安全实操指南》——2017-03 交稿、2021-01 出版,拖了整 4 年
(
2021-02-02 老大哥在看着你)。 - 顺带订正(表格外的事实错误):该页把《日本权力结构之谜》的年份写成 2026,实为
2020。两处语料互证:
2020-10-02 经得起历史考验的审判(「该书已经付印,不日即将 上架」)、2020-12-29 2020年度总结(「今年是我的翻译出版大年,总共出版了两本书: 《日本权力结构之谜》和《帝国与蛮族》」)。旁证:该行原本就插在 2020 与 2021 之间, 与它自己写的 2026 自相矛盾 —— 排序位置反而比年份更接近事实。 备注「近乎收山之作」无误,出自2026-06-27 对我影响最大的十本书详解-上(「作为我翻译工作的近乎收山之作」),指的是作者当下的自我评价,与出版年无关,勿连带删改。 - 验证:
python3 tools/lint_wiki.py→ exit 0(28 页 / 606 引文 / 189 内链);updated已 bump 至 2026-09-20(日期纪律)。 - 待办(只记不改,等作者定夺):该页另有若干字形讹误,其中一处落在引文内部, 与「引文必须可回查」的纪律直接冲突,故本次未动:
- 引文被改字 —— 页面作「面临冲突择捧时,总选最慷爰的路线」,
2016-05-27 凯恩斯传译者序原文为「如果(梅纳德)面临互相冲突的选择并需要就 实际事务的推进选择方法时,合理的原则总是选择最慷慨的路线。」 - 人名/书名错字 —— 「凯恗斯」(应作凯恩斯,同页出现 2 次)、 「《缠经的意念》」(应作《缠绕的意念》,与同页年表写法不一致)。
- 疑似讹字 —— 「读者水平陪太多」(疑为「差太多」)。
- 残留的迟疑标记 —— 小标题「《凯恩斯传》(Skudelsky?— 实际为 Skidelsky, 2016)」
里的
?与「实际为」是上一轮撰写留下的自问自答,不该出现在成品页。 这几处像是字符级串味(同页多字同型损坏),建议按语料逐条回改,而不是重写整页。 更正(2026-09-20 同日):以上待办已全部执行;核对过程中又发现 2 处未列入的 事实错误(quasi-philo 署名错人、《凯恩斯传》出版社有误)。明细见本文件最新一条日志。
[2026-09-20] site | 去掉 Google Fonts,改用系统字体栈(作者要求)#
- 背景:作者问「是否值得换主题」。核查后发现问题不在主题,而在字体 —— 每个构建
出的页面都在拉
fonts.googleapis.com的 Roboto / Roboto Mono,并内联:root{--md-text-font:"Roboto"}。Roboto 没有汉字字形,中文正文必然回落到系统 字体:等于每个中文读者都白下载一个用不上的字体,何况那是渲染阻塞的跨域请求。 - 改动:
mkdocs.yml:theme.font: false。依据templates/base.html:65{% if config.theme.font != false %}—— 该分支同时输出 preconnect、外链样式表 与内联字体变量,置false三者一起去掉。assets/stylesheets/extra.css:新增「FONTS」节,显式给出系统字体栈 —— 正文system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Noto Sans SC", "Source Han Sans SC", "WenQuanYi Micro Hei", sans-serif; 等宽ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", "Courier New", monospace。 只设font: false不够:主题自身的兜底栈(-apple-system, … , Arial, sans-serif)不含任何中文字体,中文仍会落到 OS 默认(Windows 上历代曾是宋体)。- 两个文件都写明「为什么」与复核方法,沿用本站文档习惯。
- 验证(构建产物实测):
site/下含fonts.googleapis.com/css或 preconnect 的 HTML 文件数 0;site/index.html内联--md-text-font:"Roboto"计数 0;extra.css已带上述两个变量。三道门禁通过(build 0 left unresolved / lint exit 0)。 - 明确不做:换主题。理由记录在此,免得反复起念 —— 主题不是瓶颈;Material 的 zh
翻译、jieba 中文搜索、
navigation.tabs/indexes与刚调好的侧栏折叠都是现成资产; 而 MkDocs 2.0 将重写主题系统且无迁移路径(见本日志 2026-09-19 的依赖锁定条)。 若日后仍想改观感,先调排版(行宽/行高/字号),不要先换主题。
[2026-09-20] synthesis | post 9968 改归「三公理」线:分类不是归属判据(作者指出)#
- 作者指出:post 9968「我一直是我自己。QED」应当更多系于哲学而非编程, 并给出一条通用原则 ——「分类是博客的便利标签,多数时候只是方便;不要被分类 牵着走」。核对该文内容后,判断成立。
- 该文实质:它是本 wiki 的缘起自述,且交代了两条纪律的出处 —— ①「定义权属于作者」(AI 把一条准则的定义悄悄收紧,再拿这个更严的版本去证明 作者没做到);②「引文必须可回查」(AI 曾凭空写出作者某年生病的时间线条目, 又把《叫魂》的年代写歪一百多年、安上「晚明」的腐败叙事 —— 两处都「不像错误」)。 作者因此立规:原文一个字不许动;凡引原文必带可回查的链接 ——「假话就没有 地方可藏」。
- 交叉验证:这两处正是本日志 2026-09-18 记下的两次更正(
生活.md删除虚构的 时间线条目、政治-哲学-制度.md重写《叫魂》段)。作者追述与 wiki 日志一致。 - 改动:
wiki/pages/三公理检视.md:新增「六、这套检验本身从何而来(作者自述)」—— 本页的做法(拿公理检验作者自己)本来就源自此文;sources:16 → 17。wiki/pages/三公理溯源.md:新增「作者本人的同一次回溯(2026-09-19)」—— 作者独立回溯的结论与本页一致(最早的不是 2024,而是 2009《BT群公理》; 「公理式的思维,比 2024 年早十五年」),落点为「我一直是我自己。QED」;sources:12 → 13。wiki/pages/编程.md:从引文列表移出该文(正文不再系于编程线),updatedbump 至 2026-09-20;sources:仍为 274 —— 它按分类关键字计数,与按内容判断的 引文列表允许不一致。wiki/schema.md:把上述原则写成约定(分类≠归属;计数按分类、归属按内容, 二者不等是刻意的),并顺手订正参考值:编程 273 → 274(09-19 起已变,漏更新), 日期改为 2026-09-20。- 顺手发现(同一原则的反面):
一日一得按内容/标题计 24 篇,但只有 22 篇带该分类(2008-09-20 厄里斯魔镜…、2008-11-26 上海俚语汇编被标为 Uncategorized)。该页取 24 是对的 —— 分类会漏计。另注:此前「24」曾被当成_catalog.tsv的分类计数,实为标题命中,口径已在schema.md标明。 - 一个被 lint 挡下的写法(值得记):本条目所属改动的初稿逐字引用了 AI 写错的
那句《叫魂》措辞,
lint_wiki.py的错字黑名单(TYPO_PATTERNS)随即报错 —— 该黑名单是字面匹配,不区分「断言」与「引用」。为不与闸门对抗,改为转述。 记录在此,以免后人误以为引文不准。 - 验证:三道门禁通过 ——
gen_index.py1655 篇;lint_wiki.pyexit 0 (28 文件 · 引文 603 → 606);build_site.py0 left unresolved (2969 → 2972 条引文改写)。
[2026-09-20] fix | 侧栏折叠的真正元凶:撤下 navigation.sections(作者线上复现)#
- 现象:上一条
fix只撤了navigation.expand,作者在线上页面 (/wiki/pages/教育方法/)看到「所有主题都摊着、根本没法折叠」。 - 根因(模板 + CSS 实证,非推测):
partials/nav-item.html中,当navigation.tabs与navigation.sections同时启用时,level 2 且 parent.active 的分组会被打上md-nav__item--section;而主题 CSS 对小节的规则正是:.md-nav__item--section>.md-nav__link>[for]{display:none}(折叠控件被隐藏).md-nav__item--section>.md-nav{display:block;opacity:1;visibility:visible}(子项被强制展开)。两者叠加 = 既看不到折叠箭头,也收不起来。 - 上一条为何误判:只按
nav_item.active→checked与md-toggle--indeterminate两条分支推演,漏看了is_section这条分支。 教训:Material 的「能不能折叠」由模板分支 + CSS 双重决定,只数checked属性会得出错误结论;改导航类 feature 后应直接数构建产物里的md-nav__item--section与for="__nav_..."是否存在。 - 改动:
mkdocs.yml移除navigation.sections(保留navigation.tabs/navigation.indexes)。分组只靠 nav 缩进,四个小节回归普通md-nav__item--nested;注释写明「勿启用 navigation.sections」及其 CSS 依据。 - 验证(构建产物):
教育方法页md-nav__item--section计数 5 → 1 (仅剩 level 1 的「主题」—— 这是navigation.tabs的固有行为:侧栏根节点始终 展开,其下四个分组才是可折叠的);checked仅__nav_3(主题)与__nav_3_2(公理与机制=当前页所在),读书/思想与科学/技术与生活未勾选;四个分组的折叠 label(for=__nav_3_2..5)均已渲染。 - 待办:本次改动需重新构建并发布;发布后请以线上页面复验(本次不再凭静态推演 下结论)。
[2026-09-20] tidy | 收尾:清掉四处遗留(僵尸预览进程 / worklist 标记 / 读书页结构 / 提交)#
- 来源:作者问「有没有遗留的活儿」,逐项排查后发现的四处,本次一并收尾。
- ① 僵尸预览进程:
tools/build_site.py --serve --port 8001+mkdocs serve -a 0.0.0.0:8001连续运行约 1 天 21 小时(PID 535871/535873),系早前预览未关闭; 已终止并复核ps无残留。注意其绑在0.0.0.0,不只是本机可见。 - ② worklist 未标记:
inbox/2026-09-19.md缺STATUS: handled(09-18 的有)。 已补标记;该批次的日志条目见下方log-fix条。 - ③
读书.md结构:四条链接挂在「年度读书小结(现存)」之下却无小节标题, 中间多一个空行(此结构自 initial commit 即如此,不是某次编辑丢的标题,故不猜测 原标题)。已归入新小节「相关篇目」,并逐条读原文核对后加注:毕= 读完 《中国通史》十卷历时约一年;2008 那篇 = 自述读书方法;十本书(上/下)= 书单详解。 - ④ 「待补」小节撤下(逐条判定,不是整段删除):第一条「中国通史全序列 →
wiki/pages/中国通史笔记.md」指向的页面本就存在,改写为「参见」保留指针; 第二条「逐年读书时间线 → 交由年度页生成」是未实现的想法(gen_index.py只写overview.md/sources.md,没有年度页生成器),且本页上方已有时间线段落, 删除以免继续误导(对照本日志 2026-09-18 的教训条:遗留的「待补」会变成误导)。 - 过程中撞到的坑(值得记):
lint_wiki.py不检查log.md,而log.md会被 staged 并进入严格构建。本次在该条目里写了一个相对链接[中国通史笔记](中国通史笔记.md):lint exit 0 放行,但build_site.py --strict报wiki/中国通史笔记.md is not found并中止发布(deploy.sh因set -e不再执行 rsync,表现是「只有构建输出、没有同步输出」)。已改为反引号路径。 结论:在log.md里引用页面一律用反引号路径,不要用 Markdown 链接。 updated09-19 → 09-20(lint 的日期检查要求 mtime 不得晚于updated)。- 验证:三道门禁通过 ——
gen_index.py(1655 篇)→lint_wiki.pyexit 0 →build_site.py0 left unresolved。
[2026-09-20] log-fix | 补记 2026-09-19 阶段 B:综合「我一直是我自己。QED」#
- 为何补记:2026-09-19 的阶段 B 做了事却没留痕 —— 09-19 的 sync 抓到 1 篇
新文并在
inbox/2026-09-19.md列出工作项,wiki/pages/编程.md也确已更新 (mtime 09-19 14:29、sources:273 → 274、引文列表补入该文),但 log.md 里QED/我一直是我自己零命中,worklist 亦未标记。本条目只按可复验事实补记。 - 该文:post 9968「我一直是我自己。QED」(2026-09-19 · 2056 字 · 分类 编程、软件、技术 · tags AI、维客)。内容为本 wiki 的缘起:作者自述 22 年 (约 1650 篇、约 120 万字)的博客只存不联,摆出三个必答问题(我写过什么/我想说 什么/我想说的东西符合我自己坚守的公理么)与「能不能让别人也共享我的思考」, 提出让 AI 重组的设想;结论是可行但受 VPS 硬件所限(「不可以(没有钱)」)。
- 补记时的实际状态(已核对,非推测):该文在综合层只有引文列表里的一行,
页内正文尚无关于它的段落。是否把这条缘起线写进
编程.md(或索引页)正文, 由作者决定 —— 本条目只记录现状,不代替作者下结论。 - 数字同步:catalog 1655 行(含该文)=
sources.md1655 条 = 文件 1655 个。
[2026-09-20] fix | 侧栏改为「默认折叠、点击展开」:撤下 navigation.expand(作者要求)#
- 背景:作者要求「主题」列表默认折叠、点击展开。上一条
infra | 导航新增折叠加的是navigation.expand,效果相反 —— 该 feature 给所有非当前小节打上md-toggle--indeterminate,而桌面样式(main.css:@media screen and (min-width:76.25em))把该状态渲染为展开 (grid-template-rows:minmax(.4rem,1fr);visibility:visible),结果是全屏展开。 - 改动(仅
mkdocs.yml,配置层): - 删除
navigation.expand;保留navigation.sections(小节分组)与navigation.indexes(「主题」标签落在索引页)。 - 删除
theme.expand: 1—— 它不是 Material 的选项,无任何模板/脚本读取 (曾读起来像在控制折叠,实为无效键);注释按真实机制重写,并注明勿加回navigation.expand。 - 为何这样才对:
partials/nav-item.html仅在nav_item.active时勾选 toggle, 其余小节既无checked也无 indeterminate,落到折叠样式 (grid-template-rows:minmax(.4rem,0fr);visibility:collapse)。 - 验证(构建产物实测):首页 5 个 toggle 全未勾选、
indeterminate计数 0; 主题页(教育方法)仅__nav_3(主题)与__nav_3_2(公理与机制=当前页所在 小节)为checked,读书/思想与科学/技术与生活三节未勾选 —— 即「仅当前路径展开」。 - 已知细节:
aria-expanded仍由nav_item.active生成,与视觉展开状态不完全 等价(Material 既有行为,本次未动)。 - 已发布(2026-09-20):
./tools/deploy.sh成功 —— SSH 改用公钥免密(端口 22220,BatchMode=yes预检通过,不再需要交互口令);rsync 后rsync -ainc复核无输出(远端与本地逐字节一致)。线上实测:首页indeterminate计数 0,教育方法页仅__nav_3(主题)与__nav_3_2(公理与机制)为checked、 其余三小节未勾选;根页与教育方法页diff均为 0 行。 更正(2026-09-20 当日):本条结论不完整 —— 只撤navigation.expand并不够,navigation.sections仍把 level-2 分组变成不可折叠的小节标题。 以作者线上复现为准;真正的修复见本文件上方「侧栏折叠的真正元凶」条。
[2026-09-20] infra | 导航新增折叠:navigation.expand(作者要求)#
- 主题 -> 4 个小节后,左侧导航层叠:加
navigation.expand(Material for MkDocs 原生折叠/展开)。navigation.sections+navigation.expand配合:小节标题 作为 collapsible header,点击 ± 可展开/收起整组。 - 修复 build_site.py 抛 YAML
mapping values are not allowed here错误:theme.features:被误缩进至 6 空格(由 editor 多次插入导致),归正为 2。 - 验证:build OK(32 页 staged,0 left unresolved);渲染检查:site 导航含 5
个
aria-expandedtoggle(主题 + 4 小节)。
[2026-09-20] fix | 「教育方法」补上两篇落在外的 2025 年证据#
- 核查时发现教育线还撩出
3.3.3之后的 2025 年证据 2 篇,补入教育方法.md: 三个场加家庭 → 升学:2025-10-24 — 家长以「孩子成绩不好 → 出国/国际高中」回避国内高考卷,他判断为「Choice 的回避而非追求」,直接把 V-C-O 拉进升学决策。- 新增段
企业 → 个人成长的回路:2025-04-21 — Enterprise Ownership 被他扩张为「对自己的工作、自己的发展的 ownership」, 并自标为「与教育相关的话题」——把 V-C-O 在企业的迁移归结回教育本身。 sources11 → 13。- 验证:三道门禁通过。
[2026-09-20] synthesis | 新建《教育方法》:V-C-O 与 1-2-3-7-6(作者指出被忽略的一条线)#
- 作者提出:教育方法是被 wiki 忽略的一条线。核实后成立——核心是 Voice-Choice-Ownership(出自 IB,他在管理 SSIS 时提炼)。
- 证据时间轴:2019 SSIS 办学实践 → 2023-02 蜗壳小铺(V-C-O 首次成文 + 「对学习明确定义」为学校最高原则)→ 2023-10 从学校到企业(自相似映射)→ 2023-11 西浦交付(与人生三观同场)→ 2024-01 理论定性(由下而上的自组织)→ 2024-02 反面(定义固定→丢失 Voice)→ 2024-11 消极自由定调 → 2025-03 外溢到 Merit 之争 → 2025-09 体系定稿「1-2-3-7-6」+ 七个 Reflection 问题。
- 与既有线的交叉(均引原句):×自组织(2024-01-17「由下而上的自组织过程」); ×消极自由/LDM(2024-11-25 同篇);×三公理(2023-11 西浦同场);×求导 (七个 Reflection 问题=对自己的教育观念做三阶检查)。
- 限度标注四条:V-C-O 出自 IB 非原创;「管理 SSIS 的时候」为回溯表述; 证据全是成功叙事、无第一人称失败案例;2025-09 分享形式仍是单向交付 (与 V-C-O 自身精神存在张力)。
- 新建
wiki/pages/教育方法.md(sources: 11);归入导航「公理与机制」小节 (作者选定);自组织.md参见互链、wiki/index.md同步。 - 验证:三道门禁通过。
[2026-09-20] synthesis | 补记:《帕洛马尔》编号纵轴与求导三阶的同构(作者提出)#
- 作者指出:三阶求导与卡尔维诺《帕洛马尔》的编排(1.1.1 观察……3.3.3 思想) 相互呼应。
- 核实:作者未在语料中自陈过这层关联——他分别写过两件事(2020-01-14 对 《帕洛马尔》结构的分析:1 视觉经验/描写、2 人类学符号经验/描述、3 思辨经验/ 默思,27 篇,1.1.1 纯观察→3.3.3 纯冥想;2023-09 求导系列:事实/评述/形态), 同构是 wiki 的推断。按纪律标注为推断,不冒充作者观点。
- 写入:
读书方法论.md§7 末增对照表(观察↔事实=说了什么;经验↔评述=意义 如何被编码;思辨↔形态=存在的语境),并记下差异——卡尔维诺的三级同时并在 (27 篇循环铺排),求导三阶是有先后的操作次序(正对应一阶篇「不要随意求 高阶导数」的警告);sources14→15。卡尔维诺.md「跨越主题链接」加反向 指引(同样标注为推断),updatedbump。 - 验证:三道门禁通过。
[2026-09-20] lint-fix | 补上「求导」系列漏译的三阶(作者指出)#
- 作者发现:综合层只整理了「不可对文字求导」的一阶、二阶,三阶缺失。
- 核实:语料中三阶真实存在——
2023-09-19-不可对文字三阶求导.md,且篇末自设 终点(「这个求导系列也必须终止了」);另有 2023-10-09 思客十年演讲给出三句话 总结(真实性/用意/社会背景)。系 wiki 综合层漏译,非语料缺口。 - 三阶定义(补入):一阶=事实(真实性),二阶=评述(作者为何这么写), 三阶=形态(PESTEL)——「我们为何在现在、当下看到这些文字?」; 例证为《天鹅绒监狱》的真实组织架构(间谍囚徒/异见囚徒);系列引子为 2023-09-05《Don't be a ...》(jerk=位移三阶导);一阶篇留过「可能有四阶」 的口子但从未展开。
- 修改:
读书方法论.md(第 7 节扩为「一阶/二阶/三阶」并补系列起止与作者自评,sources11→14);李自成与甲申.md(概述与「阅读哲学」节补三阶,sources9→10);两页updatedbump。 - 验证:三道门禁通过(0 left unresolved / lint exit 0)。
[2026-09-20] infra | 主题导航从 24 条平铺改为四个语义小节#
- 背景:
主题标签下条目随页面增加持续变长(已 24 条平铺、无分组、顺序无语义)。 - 做法:
mkdocs.yml的nav.主题改为四个小节——公理与机制(生活/三公理检视/ 溯源/自组织/蛋壳与利他/人生的下半场)、读书(7 条)、思想与科学(5 条)、 技术与生活(6 条);theme.features增加navigation.sections使小节以 分组标题呈现。wiki/index.md仍是小节首页(navigation.indexes不变)。 - 维护约定(已写入 mkdocs.yml 注释):新增页面归入对应小节,勿再平铺。
- 验证:三道门禁通过(build_site 0 left unresolved,nav 目标全部存在)。
[2026-09-20] synthesis | 新建《自组织》:三公理的生成机制线#
- 作者提出:除三公理(简单·自洽·利他)外,还有一条与之强关联的线值得单列——自组织。
新建
wiki/pages/自组织.md(sources: 14)。 - 定位:自组织不是第四条原则,而是回答「秩序从哪里来」的机制线——三公理管 「系统应当怎样」,自组织管「样态如何生成」。锚点是 2024-09-30《合作是如何产生的》 原话:三公理与「自组织」在同一句话里同框(「简单、自洽……符合 GEB 和混沌的 基础(『自组织』)……这里不需要『大设计』」)。
- 逐句核对修正了两处搜索片段级误判(正是溯源页方法第 2 条要防的错): 「自相似和自组织的信徒」实出 2024-11-26 评沃神(非 2024-07-11 哈特曼篇, 后者的原话是「善不需要组织,它是自组织的……」);「自上而下的设计太脆弱」 实出 2026-06-28 十本书详解(下)(非 2020-11-03 日本篇)。
- 页面结构:证据时间轴 2005–2026(社区>课堂 → P2P 源头伦理 → 2023 定义级表述 → 2024 与三观同框 + 「信徒」自认 → 2026 良质/足球/邓煜);与三公理的三重关联 (简单=输入条件、自洽=工作态且同源于哥德尔、利他=涌现结果也是存续条件); LDM 作为操作化;四条限度标注(含把《BT群公理》刻意降级为「不作证据」, 以及 2024-11-26「大组织中自组织莫名消失」留下的开口)。
- 互链:三公理检视/溯源两页「参见」各加一条;
wiki/index.md、mkdocs.yml导航同步;两页updatedbump 至 2026-09-20。 - 验证:三道门禁通过(gen_index / build_site 0 left unresolved / lint_wiki exit 0)。
[2026-09-19] security | relaymail 口令轮换 + 本机改从 0600 密钥文件读取#
- 事件收尾:口令已在 VPS 轮换(
passwd relaymail+systemctl restart saslauthd, 22:27 CST),旧口令自本机实测已被拒(535);口令本体是 VPS 上 relaymail 的 Unix 口令(saslauthdMECHANISMS="shadow",Dovecot 走 PAM,同一口令)。 - 本机凭证改为一处:
~/.config/mail/relay.pass(0600,目录 0700)。 ~/scripts/mailsend.py重写:HOST/PORT/USER/FROM 走环境变量,口令取$MAIL_PASS→ 否则该文件;新增--verify(只认证不发送)。- 本仓库
tools/site_config.py(从模板回移)+config.py(gitignored, 含 BLOG_URL/BOOKS_BASE/MAIL_,不含口令*);sync_posts.py改用它, cron--notify无需任何环境变量。 ~/scripts/mail-setup-notes.md删除明文口令,改记旋转步骤。- 影响:检查前 cron 三条发信链路(check_status_v2 每 30 分、ups_alert 每 5 分、 sync_posts --notify 每日 4 点)因旧口令失效而静默失败;写入新口令后恢复。
- 验证:
site_config.get('MAIL_PASS')与mailsend.py get_password()均能从 测试文件读到值;--verify在未填口令时给出明确报错;仓库内已无明文口令 (仅存于本地 git 历史)。
[2026-09-19] infra | 公开仓库改为通用模板;个人层、语料与凭据撤出#
- 背景:此前把 1704 个文件整体入库(含 1655 篇语料、26 篇综合页、inbox/、 DEPLOY.md、deploy/ 的服务器信息)。作者要求公开的只是"别人能在自己的博客/ 归档上跑起来"的部分,个人内容不入公开仓。
- 做法:另建模板库
/home/tr/projects/llm-wiki-pub(22 个文件:去个性化的 tools/ +config.example.py+ 通用版wiki/schema.md+ mkdocs 骨架 + README + MIT LICENSE),force-push 覆盖taylorren/llm-wiki-rsywx的 main (单一提交 e66565c,并已 clone 复核远端只有 22 个文件、无语料)。 - 本仓库(个人实例)保留全部内容与旧提交,但已移除 origin,不再持有任何
远端;如需版本备份,另建私有仓:
git remote add private <URL>。 - 安全事件:
tools/sync_posts.py曾硬编码 SMTP 口令(relaymail@go4pro.org), 随初始提交推送到公开仓库约一小时。模板版已改为从config.py/LLMWIKI_MAIL_*读取,代码中不再有凭据。该口令必须轮换;若要彻底 清除旧提交,建议在 GitHub 删除并重建该仓库(force-push 后旧对象仍可能被缓存)。 - 模板工具两处改动值得回移本仓库:
build_site.py新增mask_code()(文档里的 示例路径不再被误当引文改写/计数);extract_books.py改用 DictReader 读目录 (本仓库版本仍硬编码 rsywx 前缀,功能正常,故未改动)。 - 验证:模板 e2e——把本仓库语料复制到模板目录运行全套工具,得到相同结果 (373 本书目 / 26 个 wiki 文件 / 522 条引文,lint OK,build 2885 改写 0 悬空); 空目录下 lint 与 build 亦通过(生成物缺失已容错)。
[2026-09-19] infra | 仓库入库 GitHub:排除 WXR 导出、同步状态与全部生成物#
- 远端 https://github.com/taylorren/llm-wiki-rsywx(main)。
.gitignore三层排除:①blog/(WordPress WXR 原始导出,18M,schema 规定 immutable);②sources/_sync_state.json(sync_posts.py 本地状态); ③ 生成物——wiki/overview.md、wiki/sources.md、wiki/books.md、sources/_catalog.tsv、sources/_books.tsv,本机以tools/gen_index.py/tools/extract_books.py/ 转换器再生。- 入库内容:LLM/手工维护层(
wiki/pages/、wiki/index.md、schema.md、log.md)、语料sources/posts/(1655 篇,与本地_catalog.tsv对齐)、tools/、assets/、deploy/、mkdocs.yml、根index.md。 注意:clone 后不完整——需在原机(有 WXR 与生成物)构建站点; 仓库页内的sources/posts/引文链接在 GitHub 上不可点(发布站上已改写为 博客原文链接,不受影响)。
[2026-09-19] tooling | 书目链接回收:digest 保留链接 + extract_books.py 书目索引#
- 缺口:digest.py 曾剥掉全部 HTML 标签,日志正文里的
<a href="https://rsywx.net/books/…">《…》</a>书链从未进入维客综合层 (全库 370+ 本书、300+ 篇日志受影响)。 tools/digest.py改为把锚点保留为 markdown 链接[文本](URL),今后综合 时 LLM 可见书链。- 新增
tools/extract_books.py:扫描全部正文(HTML 锚点 + markdown 链接两种 形态),写sources/_books.tsv(373 本 × 提及日志清单)并生成wiki/books.md书目索引页;已入 mkdocs 导航与维客首页链接。 - 验证:lint_wiki.py 退出码 0(26 页、522 条引文全数解析);
build_site.py 通过;
wiki/books.md引文链接逐一可点。
[2026-09-19] schema | 日期纪律成文:created 一次写定,updated 单调递增#
- 约定:新建页面同写 created 与 updated(相同);日后编辑只 bump updated。
- schema.md 页面约定更新;lint_wiki.py 补 created <= updated 校验(负向测试通过)。
[2026-09-19] lint | 页面日期的诚实性检查#
- 页脚日期上线后发现 wiki/index.md 的 updated 过时(当日两次编辑未 bump)。
- 更正 index.md,并给 lint_wiki.py 新增检查:文件 mtime 晚于 page-metadata 的 updated 日期即报错(无 git 可依,mtime 是唯一机器可读信号;按日历日比较)。
- 22 个既有页因插入 created 行被新检查抓到,updated 一并 bump 至 2026-09-19。
- 验证:lint_wiki.py 退出码 0,build_site.py 通过。
[2026-09-19] site | 页面显示创建/更新日期#
- 各
wiki/pages/*.md元数据补created:字段(2026-09-18 批次 / 2026-09-19 新页), 可考日期取自 log。 build_site.py新增with_date_footer():暂存时在带 page-metadata 块的页面末尾 注入可见行"本页创建于 X · 最后更新于 Y"(同日只显示其一);无元数据块的 自动生成页(overview/sources)不受影响。不用 git 日期插件(本仓库非 git 仓库)。- 验证:build_site.py + lint_wiki.py 通过;发布页脚已实测出现在 site HTML。
[2026-09-19] synthesize | 一日一得栏目专题页#
- 新建
wiki/pages/一日一得.md:24 篇全量归总(2008-09-09 开栏至 2011-01-01 Hogmanay 终篇), 按 词源与语言 / 时事评论 / 技术趣味 / 影视演出 四条主线梳理,24 条引文链接全数核实。 篇数以_catalog.tsv为准(schema 旧记 22,实为 24)。 - 已加入
wiki/index.md与mkdocs.ymlnav。
[2026-09-19] site | “主题”导航标签改为落在主题索引页#
- 原先“主题”标签默认跳到该组第一个条目(读书总览),非刻意行为。
- 改
mkdocs.ymlnav:“主题”组以裸条目- wiki/index.md设为组首页 (依赖已开启的navigation.indexes),并移除与之重复的顶层“索引”标签。 - 验证:build_site.py 通过,“主题”标签 href 为
/wiki/;lint_wiki.py 退出码 0。
[2026-09-19] log | 改为最新条目在最上#
wiki/log.md整体倒序(29 条),头部速查命令tail→head;schema.md约定同步:新条目插到头部说明之后。
[2026-09-19] site | 补许可声明 + 锁定依赖#
- 部署产物原先无任何许可声明。补齐三件:
requirements.txt:钉死 mkdocs 1.6.1 / mkdocs-material 9.7.7 / jieba 0.42.1 等当前版本(MkDocs 2.0 将有破坏性变更,勿盲升);mkdocs.yml加copyright:页脚:内容 CC BY-NC-ND 4.0 · © 2004–2026 任颂华;LICENSE.md:双轨许可(内容 CC BY-NC-ND 4.0,代码 MIT),与页脚需同步。- 验证:build_site.py 通过(页脚已出现在 site HTML),lint_wiki.py 退出码 0。
- 待办:重新执行
tools/deploy.sh把带页脚的产物发布到 VPS。
[2026-09-19] synthesize | 文学创作专题(作者自我创作归总)#
- 作者指出《十月,一个交大的午后》系列(11 篇)未归总,并要求为自我创作立专题。
- 新建
wiki/pages/文学创作.md,覆盖 8 组、共 131 篇(约全库 8%): ××的城市系列 19(仿卡尔维诺《隐形的城市》)· 交大午后 11 · 朋友们你们还都好 19 · 想和父母做的十件事 6 · 穿越网关的对话 9 · 独立短篇 2(假如冬夜一个旅人/1.27秒前的月亮)· 太宗本纪 60 · 零星诗词文字游戏 5。篇数均经_catalog.tsv核实。 - 页内 91 条引文链接 + 8 条跨页链接;已加入
wiki/index.md与mkdocs.ymlnav。
[2026-09-18] remove | 撤下首页题献(作者决定)+ 拆除两道哨兵#
- 作者决定:撤下首页题献。上一条
publish记录里作者提的 「硬要求:任何再生成都不能覆盖或遗漏它」——该硬要求已由作者本人撤销。 这是本条目最要紧的一句:护栏保护的是作者当时的意愿,不是祖训。 - 同批删除:
drafts/2026-09-18-有无之间.md(作者决定不写这篇博客文章)。drafts/目录随之清空并移除(该目录 2026-09-18 建立,仅存此一稿)。 - 改动范围(4 处工具/首页 + 3 处文档):
- 根
index.md—— 删除<!-- dedication: -->哨兵注释、两条---分隔线, 以及整段「献给我的先严、先慈」引言。 tools/lint_wiki.py—— 删除第 7 项dedication_guard()、DEDICATION_MARK常量、主流程中的errors.extend(dedication_guard());docstring 条目同步。tools/build_site.py—— 删除暂存后对<!-- dedication:的复核(原先缺失即SystemExit拒发)。tools/gen_index.py—— docstring 中「根 index.md 还载着题献」的括注删除。wiki/schema.md——index.md条目改为记录「曾有题献、已于本日撤下、 两道哨兵已移除」。- 验证:
lint_wiki.py退出码 0(24 个 wiki 文件,390 引用 / 146 内部链接全通);build_site.py成功(1654 permalink、2045 引用改写、3 个资产引用核对通过)。 - 一处刻意的取舍(记下来备查):作者选择了「不存档即删除」,故题献原文未抄入
本日志。本仓库不是 git 仓库,
docs/、site/皆为构建产物,下次构建即无残留 —— 即该段文字现已不可复原。此后果在删除前已向作者说明,作者仍选择不存档。 - 教训(写给下一位维护者):
dedication_guard()这类「不许删」的护栏, 失效方式不是被别人破坏,而是被作者本人改主意。所以写这类护栏时应当写明 它保护的是谁的哪个决定,以及该决定何时可以被谁撤销——否则下一位维护者 会把护栏当成不可触碰的祖训,反而拦住真正有权的作者。
[2026-09-18] site | 放大页眉图标(其实不必放大页眉)+ 修一个自己造成的回归#
- 作者的提法:「为什么不把页眉放大?」——核查后结论更简单:页眉本来就是 2.4rem 高, 而图标只占 1.2rem,一半的高度白浪费了。故不需要放大页眉,只需让图标 填满已有的那行。
- 实测几何(读
main.*.min.css,非估计):html字号为 125%/137.5%/150% (即 1rem = 20/22/24px)。.md-header__title{height:2.4rem}→ 页眉 48–57.6px;.md-logo img{height:1.2rem}→ 图标仅 24–28.8px。另已 grep JS bundle, 无 header-height 计量,故页眉是纯 CSS 内容撑高,放大图标不会影响锚点偏移。 - 做法:新增
assets/stylesheets/extra.css(含可调变量--llmwiki-logo-size,默认2.4rem= 与页眉行等高),由mkdocs.yml的extra_css引入;抽屉里的图标按 Material 自身比例设为 1.25×。文件内附 「若确实要比行还高」的注释块(需同时加高.md-header__title,代价是每页内容区变少)。 - 结果:图标 24–29px → 48–58px(约两倍),而页眉高度不变。
- 同时修掉一个我自己引入的回归(重点记下):把资产暂存改为「镜像路径」后,
docs/assets/logo.svg与docs/assets/favicon.ico的位置变了,而mkdocs.yml仍写着assets/images/...→ 生成的 HTML 指向不存在的文件,页眉图标与网站图标 均会 404。而mkdocs build --strict退出码是 0、无任何警告——MkDocs 不校验theme.logo/theme.favicon是否存在。 - 因此补上第三个门禁:
build_site.py现在解析mkdocs.yml,取出theme.favicon、theme.logo、extra_css的全部引用,逐个断言其已存在于暂存树, 否则报错中止。负向测试通过:把 logo 指回assets/images/logo.svg时输出build_site: mkdocs.yml references file(s) that were not staged: ...。 - 修正前述「两个门禁」的结论:现在是三个,各管一层。(详见
schema.md)lint_wiki.py查仓库内部一致性;mkdocs --strict查发布后可达性; 新的资产引用检查查 mkdocs.yml 与暂存树是否一致——这一层前两个都覆盖不到。- 日志修复:此前条目被错误拼接 ——Fact-check pass的 bullet 横跨了publish标题,且遗留孤立片段。已重建为 12 条结构完整的条目(新增tooling/verify/lint标题),并更正 SSL 记述(见上)。
[2026-09-18] site | 页眉图标改用作者提供的 assets/logo.svg#
- 作者放入
assets/logo.svg,要求替换标题「生活在远方」左侧的那个图标。 - 先辨清两个不同的位置(容易混淆):
- 页眉标题左图标 =
theme.logo← 本次改的就是它; - 浏览器标签图标 =
theme.favicon← 已设为 rsywx.net 的图标,未动。 - 接线:
build_site.py的资产复制从「只复制 favicon」改为清单式循环for name in ("favicon.ico", "logo.svg"),复制到docs/assets/images/;mkdocs.yml设theme.logo: assets/images/logo.svg。产物 HTML 现含<img src="assets/images/logo.svg" alt="logo">(页眉与抽屉各一处,已核对)。 - 对该 SVG 的唯一改动:补上
viewBox="0 0 435 435"——原文件只有width="435" height="435"而无 viewBox。仅新增坐标系统声明,未改任何图形或颜色; md5 由653706f9014cc60eb9e59109b942eb64变为9a76603b0d790e443e43106ebcde8e45。 如需还原,删掉该属性即可。 - 实测主题尺寸(读
main.*.min.css,非估计): - 页眉
.md-header__button.md-logo img { height: 1.2rem; width: auto }→ 约 19–24px; - 抽屉
.md-nav__title .md-logo img { height: 2.4rem }→ 约 38–48px。 - 需要作者目视确认的一点(已如实告知,未擅自改动):该 SVG 是 435×435 的插画,
底色为铺满的纯红方块(
#FD0000),并含数百个相近的红色路径(典型的位图描摹矢量)。 在页眉约 20px 的尺寸下,细节基本不可辨,观感上会呈一个小的红色方块。 若效果不理想,备选方案(本次均未做):① 换用简化或裁切过的标记(≤64×64); ② 去掉红底、改透明底;③ 页眉直接复用 favicon。 - 文件 22.5 KB,属静态资源,缓存友好;未做压缩或路径简化。
[2026-09-18] site | 站点图标改用 rsywx.net 的 favicon#
- 作者要求:取 https://rsywx.net 的 favicon 用于本站。
- 来源(已核对,非猜测):rsywx.net 的 HTML 声明
<link rel="icon" href="/images/favicon.ico">;该文件 51,262 字节, 内含单个 128×128 / 24bpp 图像。已保存为assets/favicon.ico, 与线上字节完全相同——md533d080e7c2c8ba4d382f697f501dcddd, 在/images/favicon.ico与/favicon.ico两个地址上取得同一结果。 - 接线:
build_site.py新增一步,把assets/favicon.ico复制到docs/assets/images/favicon.ico(文件缺失即SystemExit并说明原因, 避免theme.favicon指向不存在的文件);mkdocs.yml设theme.favicon: assets/images/favicon.ico。构建产物中的 HTML 现为rel="icon" href="assets/images/favicon.ico",已核对。 - 发布层的定义随之变更,并已同步多处文档:原先「只 stage
wiki/+ 根index.md」,现在还包括assets/(图标)。这一点此前写在三个地方且现在都 不准了,均已更正:mkdocs.yml顶部注释、DEPLOY.md首段、schema.md的结构节。 - 未做格式转换:本机没有 Pillow,故保留 ICO 不转 PNG(浏览器对 ICO 支持完整)。 保持与主站同一文件的好处是:两个站点的图标完全一致。
- 已知小事:产物里仍有 Material 自带的
assets/images/favicon.png(1,870 字节), 已不再被引用,属主题自带资源,未做清理。图标本身 51 KB 偏大,若日后想轻量化可转 PNG/SVG——本次未做。 - 未能本地预览该图标(无 Pillow,无法渲染 ICO),需在浏览器标签页上目视确认。
[2026-09-18] docs | 新增「站内搜索」页(原理与配置)#
- 作者要求:不改代码,只把搜索工作原理记成独立页面,并从索引页链入。
- 新建
wiki/pages/站内搜索.md(sources: 0——本页不引用博文,只描述本站工具链)。 - 链入位置:根
index.md的「从这里开始」、wiki/index.md的「运营」、 以及mkdocs.yml导航(与「维护规范」「操作日志」同组)。 - 机制(读源码核对,非推测):MkDocs Material 9.7.7 的 search 插件自身调用
jieba(
material/plugins/search/plugin.py,配置项jieba_dict与jieba_dict_user)。构建时把连续汉字串交给jieba.cut(),再用零宽空格 U+200B 连接回去:关于成立一个编程论坛的想法→关于\u200b成立\u200b一个\u200b编程\u200b论坛\u200b的\u200b想法; 同时把config.separator设为含U+200B的字符类[\s\u200b\u3000\-、。,.?!;]+。故mkdocs.yml中那句注释 「jieba is installed → Chinese segmentation works」对这个版本是准确的 (jieba 由插件自己调用,不需要外部 hook)。 - 索引产物:
site/search/search_index.json,约 738 KB,粒度是按标题切分的 段落而非整页(274 段 / 27 页);index: null表示没有预构建索引,由浏览器 现场用 lunr.js 建立(这就是搜索框「正在初始化搜索引擎」的含义);该文件 不带文件名指纹。 - 关键限制(已写入页面并作为排障条目):
- 浏览器端没有 jieba——查询串只按
separator切分,所以查询应当是一个词, 把整句中文粘进去仍只是单个 token,必须与索引中的词完全一致才命中; - 专有名词(人名/书名/自造词)若被 jieba 切错即搜不到,补救是提供
jieba_dict/jieba_dict_user词典; config.lang目前解析为['en'](只装英文词干),与主题language: zh并不同步;prebuild_index默认关闭——打开可省客户端 CPU,但文件更大,带宽受限时反而更慢;- 搜索是纯客户端的,没有服务端检索,整包索引下发给访客。
- 排障口诀(写入页面):搜索框一直停在「正在初始化搜索引擎」= 索引没下完, 不是「搜索坏了」;先在控制台看该请求的状态与耗时。
- 顺带记下与本页相关的运维事实:该索引文件无文件名指纹,故需要可重新校验
(与
DEPLOY.md的缓存策略一节同源问题)。
[2026-09-18] publish | 首页题献(先严、先慈)+ 防丢失哨兵#
- 作者要求:在首页「从这里开始」之上加一段题献,献给已故的双亲——这个 wiki 在某种意义上是要告诉天上的他们,这些年作者、肾后、老彼得一起经历了什么。 硬要求:任何再生成都不能覆盖或遗漏它。
- 落点:根
index.md(首页,手工维护层)。 - 先核查后承诺(不假设):
gen_index.py只写wiki/overview.md与wiki/sources.md,从不触碰根index.md;build_site.py用shutil.copy复制根index.md到暂存目录,且只改写副本。- 但鉴于作者要求的是「保证」,故加了两道哨兵,而非仅靠人工记忆:
lint_wiki.py新增第 7 项dedication_guard():根index.md必须含标记<!-- dedication:,缺失即报错退出并说明后果;build_site.py在 stage 之后复核暂存副本仍含该标记,否则SystemExit拒绝发布。- 负向测试通过:临时删去标记 → lint 失败并输出「…must be preserved」;
恢复后通过。构建则打印
dedication: carried into staged index.md。 - 标记写成 HTML 注释:存在于页面源码中,读者不可见(已在浏览器渲染层 验证题献位于「从这里开始」之前)。
- 题献文字取自其自身惯用语,而非代拟:称「先严」「先慈」;沿用
2023-07-16 搬家先搬书的史实——先严把书斋命名为「有无」(取自《道德经》), 又戏改为「有书万事足,无官一身轻」;署「岁在丙午年秋 儿 谨识」。 文字可按作者意思增删;作者是唯一定稿人。 - 顺带修正:
gen_index.py的 docstring 自称「Generate wiki/index.md and wiki/overview.md」,是假的(它写的是 overview.md 与 sources.md)—— 与本次「读书页误归属」属同一类「文档说错了谁生成什么」的问题,已改正, 并注明根index.md与wiki/index.md两处均为手工维护。
[2026-09-18] fix | 读书页主题表:错归属 + 漏两页 + 两处门禁各抓到一个真错#
- 作者提问:
读书.md的「主题集群」表似乎没列全主题(如左侧导航),「是故意的?」 - 核查:一半是设计,一半是漂移,另有一处错误归属。
- 设计:该表只列读书集群的主题页,不负责全站地图;全站地图在
wiki/index.md与左侧导航。 - 漂移(漏两页):
对我影响最大的十本书(sources 2)与企鹅欧洲史(sources 5)同属读书集群却不在表内——前者甚至在同一页正文里被引用。已补入。 - 错误归属:原括号作「依据
tools/gen_index.py分类统计」,这是假的。gen_index.py全文只有两处写出(overview.md、sources.md), 完全不生成主题集群,而表内也不含任何统计数字。已改为「人工归纳」, 并注明计数应到sources/_catalog.tsv或overview.md复核。 - 本条目最值得记的部分:两处门禁各抓到一个真实错误,互不替代。
- 我补的
[博客总览](overview.md)/[维客索引](index.md)从wiki/pages/出发 少了../→lint_wiki.py报 broken internal link。已改为../。 - 我又把
sources/_catalog.tsv写成可点链接 →mkdocs build --strict失败:target 'sources/_catalog.tsv' is not found among documentation files。 原因:sources/不参与发布(只 stagewiki/+ 根index.md),且build_site.py只改写sources/posts/*.md引文,不处理.tsv。已改为纯文本。 ——lint_wiki.py抓不到这一类:它检查的是仓库,而该文件在仓库里确实存在; 只有 mkdocs 检查的是发布产物。 - 教训(已同步写入
schema.md):凡指向仓库专用文件(sources/**、tools/**、blog/**、_catalog.tsv)的链接,在公开页面上必然 404, 必须写成纯文本(反引号)或改指发布层文件。两个门禁分工:lint查仓库一致性,mkdocs --strict查发布后可达性——两个都要跑,缺一不可。
[2026-09-18] infra | 一次误诊:不是缓存,是「最新条目在页末」#
- 报告:作者部署后「看不到日志更新」。
- 我先给的诊断是错的。我判定为「nginx 未发
Cache-Control→ 浏览器启发式缓存 → 看不到更新」。该诊断已被推翻:线上内容本来就已更新(当时实测线上wiki/log/index.html与本地构建逐字节一致 md560495d98…,三条新条目均在), 真实原因是——log.md是 append-only,最新条目在页面最底部,作者没有往下滚。 - 根因教训:我跳过了「你是在看页面还是看构建产物?」这最基础的一问, 直接推到了 nginx 层。先确认用户所见的界面行为,再给基础设施层的解释。
- 暴露出的真问题(属于 wiki 自身设计):
log.md已长到 19 条、300 余行, 「最新在页末」对读者不友好。Karpathy 原始建议的「条目前缀可被grep解析」 是给 LLM 用的,人类读者需要的是页首就能看到的最近条目。 → 已在log.md顶部加「最近条目」说明与 grep 提示(见该文件开头)。 - 一条独立成立、但不是上述症状原因的观察(保留备查):该 vhost 确实
未发送
Cache-Control,只有Last-Modified/ETag,带If-Modified-Since的请求返回304。这只意味着浏览器可以按启发式规则短期内复用旧副本, 属于可选加固,不是缺陷——普通刷新即可。已写在仓库 vhost 与DEPLOY.md中, 尚未部署,是否采用由作者决定。 - 另一条与缓存无关的风险(保留,仍然有效):
certbot --nginx曾改写服务器上的 vhost(加:443块与80→443跳转),而仓库副本只有:80;故覆盖式更新会 删掉 TLS 块。该警告不依赖上述误诊,独立成立。
[2026-09-18] query | 回溯全库:三条公理的形成轨迹(2005–2024)#
- 提问(作者提出,比本 wiki 此前的做法更好):应当回溯全部内容,看三条公理是否 「并非凭空而来,而是随时日逐步形成,只是到 2024 年才写清」。
- 新建
wiki/pages/三公理溯源.md(sources: 12,即引用的 12 篇原文)。 - 方法自律(重要):回溯阅读最易犯「把 2024 年的措辞读回旧文」之错,故定下三条: 优先用日期明确的行为而非说法;检索命中必逐句核对语义;同一遍扫查里同时找反证。
- 据此否掉一个假证据:
慷慨最早命中 2007-05-21《战还是不战》,看似能把利他 性情提前到 2007;核对后系「慷慨求一战的封建君主」,与利他无关,已乘弃。 - 结论:作者的说法成立,三条不是 2024 年凭空出现:
- 词汇线:「元规则」首见于 2015-12-01,2016 年密集出现(多篇), 2017 年继续,至 2024《滕王阁序》仍是同一术语——九州年连续词汇线。 (翻译《Universal Man》始于 2015-06,词汇线紧接其后。)
- 2009-02-23《BT群公理》:写下五条公理并作推论,明言仿《几何原本》五大公理 ——公理式思维比 2024 年早 15 年。
- 2016-05-27《凯恩斯传》译者序:把利他指认为凯恩斯的「公理」;明确讨论 元规则;称阿西莫夫三定律/谢顿模型/三体文明公理为「结构异常简单却又异常 严密的公理体系」(简单与自洽已并列);并写下自我应用的动机。
- 2017-07-26《数学与科技》译者序(关键):自洽被定义为「既完备又一致」, 明引希尔伯特与哥德尔,并且当作接受一个理论的前提(判据);更给出了 操作规程——「从那些所谓系统的『公理』出发……看看是否能得到有矛盾的两个结论」, 并断言「这便是思考的过程」。 → 即:本 wiki 在《三公理检视》中单独发现的「他的签名方法=检验公理体系是否被贯彻」 (如评《流浪地球》),不是推断,而是他 2017 年写下的规程。
- 利他:行为比命名早十一年——2005「社区 > 课堂」、2009 下载伦理(「不能让源头 死了」)→ 2016 命名为公理 → 2020 蛋壳落地。
- 简单:三條中最晚落到行为的一条——2016 年是审美/标准,2023 年(搬家扔书) 才成为动作,2024 年入列。这与《三公理检视》中它证据最薄的观察一致, 但解释不同:不是没执行,而是入队最晚。
- 附带发现:三条成形的两个关键节点(2016、2017 译者序)都是翻译序言—— 即他是在解释别人的体系时把自己的体系说清的。用他自己的话说,这是 「在一个更高(包含待证明系统)的系统里」审视系统;阅读与翻译就是他的「更高系统」。
- 三点限制(与结论一并记下,避免过度阅读):①「三条」这个集合本身确实只是 2024 年的产物——此前是三股并行线索,非现成三件套,整合才是 2024 的贡献; ② 来源自陈(汉尼拔/希尔伯特/凯恩斯)仅见于 2024(希尔伯特的作用自 2017 已在 运行,只是未点名);③ 本页检索是词形级,个别早期命中未逐句核对,已按方法标注。
[2026-09-18] query | 三公理的作者界定:简单 = 方法与趣味的简省,不在拥有量#
- 追问「请把 简单的反证据展开」后,做了实证取证,并据此修正了本页两处断言:
- 出处更正:三条并非「译《凯恩斯传》而来」——他写明「简单、自洽、利他。」
「这三条分别来自:汉尼拔博士、大卫·希尔伯特和梅纳德·凯恩斯」
(
2024-08-12 任氏有无轩重装上线)。自洽源自希尔伯特,正解释了它为何 在他手里是方法(检验公理体系是否被贯彻),而非性格。 - 断言更正:我先前写「他很少回头复核」是错的。他明说「写程序恰好能帮我 实践并验证这三条,at almost zero cost」。
- 「简单」的反证据取证(数字均取自原文,非推断):
- 藏书:1998 前约 771 册 → 2008 1,553 册 / 611,197 页 / 421,896 千字 → 2022 2,059 册(18 年年均 75.8 本)→ 2023 搬家后 1,920+ 册。
- 自算的读不完:
2008-11-14 书,看不完了……按每秒 5 字、每天 2 小时推算 需 32 年读完当时藏书;当时已读约 1/3,结论「还需约 20 年」。 - 速率差:2024 年统计 2007 年起 17 年仅 179 本书有笔记(年均 12 本) → 买入约为精读的 6 倍。
- 硬件:全屋 1 AC + 4 吸顶 AP + 4 入墙 AP、32G/4T Lenovo 服务器、 NAS DX4600(4 盘位/8G,2×2T RAID1 半数容量「浪费」)、2F 服务器、 相机/镜头/KPW3/iPad/Switch Lite;媒体 MP3→WAV→FLAC;炉石自 2016 每个版本预售。
- 反方向亦有实证(保留并写入):2023 搬家按明确标准扔书 (先慈 35 年前电大教材、过时工具书),藏书 2,000+ → 1,920+; 8 个顶天立地书架 A–H + 位置编码 + 自写藏书程序;书斋「有无」出自先严改写的 「有书万事足,无官一身轻」。
- 发现一处源内矛盾并只作标记:同一次 2023 搬家,
搬家先搬书记 「2000+ → 1920+ 册左右」,任氏有无轩重装上线记「变为 1808 册」,相差 112 册。 - 作者界定(决定性):问明「简单」的所指后,作者选定 「方法与趣味:简省在 方法,不在拥有量」。故:
- 「简单」成立;上述数字不是对公理的反证,而是对 wiki 自己那条注解 (「不外求、不铺张」)的反证。
- 已据此更正
wiki/pages/三公理检视.md(开篇结论、第二节判定、结论表、结尾) 与wiki/pages/生活.md(简单条的注解,并标明作者界定与日期)。 - 证据全部保留(它们可复核),只是「其指向」被更正。
- 方法论教训(已写入页面):维护者擅自把作者给出的公理改写成更严的版本, 再拿它去检验作者,是本页初稿的错误。定义权属于作者;维护者核对事实, 不替作者加严定义。此条对后续所有「检验类」页面有效。
- 源内数字差异已查明(作者解释,2026-09-18):此前标记为「矛盾待核」的 1,920+ 册 vs 1,808 册,实为两个叠加原因,非矛盾:
- 基数本身是估数(原文作「2000+ 册」「1920+ 册左右」),非盘点所得;
- 扔书是持续动作——搬家时扔了一批,之后仍在继续扔。两篇是不同时点的快照。 故 1,808 册(藏书程序盘点)为准数,2,000+ 与 1,920+ 均为估算。 已据此改写页面表格(标注估算/准数)与说明段,撤销「矛盾待核」标记。 附带事实:减书在他这里是常规动作,不是一次性事件。
- 教训延伸:引用作者的数字时要区分「盘点值」与「估数」。本 wiki 的
_catalog.csv同理——凡计数必与可复核来源对齐(见 schema 的计数约定)。
[2026-09-18] query | 三条元规则(简单·自洽·利他)是否真被执行?#
- 提问:基于对内容的深读,作者是否真的在践行他立下的 简单/自洽/利他。
- 新建
wiki/pages/三公理检视.md(sources: 13,即实际引用的 13 篇原文)。 - 先把准前提:三条是 2024-06-04 译《凯恩斯传》后立下的,原文措辞为 「可为余生之元规则耳」——那是面向未来的承诺,不是对既往的总结,故严格 检验窗口是 2024–2026,更早的帖子只能算倾向性旁证。此外它是决策规则 (用于「互相冲突的选择」),不是生活美学。
- 结论(三条强度并不相同):
- 自洽 = 活法,最强,未发现反例。证据不只在为人,更在方法:他把 「公理体系是否被贯彻」直接当评价标准(《流浪地球》的科幻三要素);拒绝混淆 「好电影」与「好科幻电影」两套尺度;三处对文本精确性的坚持(《Shine On》 倒装译名、《Queen's Gambit》→后翼弃兵、《At the End of the Day》歌词误读); 以及「不求人」的自建工具链与「不苛求」的克制评价。唯一张力由他本人明说: 审查所致的「思—写—发」断层,属被迫的行为差距而非逻辑矛盾。
- 利他 = 选择,真实但代价最小、范围有限。最有代价的一次是 2009 年的下载 自律(只用 eMule/BitComet,「不能让源头死了」);其余多为赞赏(蛋壳 1+0.5=0.5 是房东朋友的选择)、引用(凯恩斯原句)或低成本给予(翻译、开源 cubeman、 免费托管、公开 wiki)。范围指向共同体/源头,对匿名版权方无对应表述。
- 简单 = 取舍,作为原则成立、作为拥有量不成立。写作与提示词的「够用即止」 有实证(一句话提示词、「基本够用」、免费版自限),但收藏与订阅持续增长 (CD→WAV/FLAC、NAS、炉石预售)。成立与否取决于他自己给的注解 (「不外求、不铺张」),事实是双向的。
- 反身结论:他把三条立为「公理」,却很少像检验《流浪地球》那样回头检验它们。 真正的自洽要求这些公理也被其推论检验,而非只被引用——本页即该检验的第一次。
[2026-09-18] deploy | 全量上线 + 更正文档中的 DNS/HTTPS 状态#
- 用户在自己的终端执行
./tools/deploy.sh,发布成功。此前积压的内容至此全部上线: 李自成与甲申 / 政治-哲学-制度 的事实更正、1652 → 1654 的数字、日志结构修复、schema.md更新、阶段 A 收录的 2 篇新文、阶段 B 新建的影音娱乐hub。 - 线上实测(HTTPS):
/、/wiki/pages/{影音娱乐,编程,李自成与甲申}/、/wiki/{sources,overview,log}/全部 200;未知路径返回 404(MkDocs 404 页)。 - 逐字节复核:上述页面(另含
政治-哲学-制度、根index.html)本地site/与线上 md5 全部一致(8/8 SAME),确认 rsync + checksum 流程无误。 由此也解决了此前记录的「线上仍是旧构建」问题 —— 例如/wiki/pages/李自成与甲申/现已提供更正后的文本(崇祯皇帝,而非崇祯皇帟)。 - 文档更正:
DEPLOY.md当时仍写着「仅剩:DNS + nginx vhost + 证书」与 DNS 「暂无记录」,属过期信息,已改为「已上线(2026-09-18)」并补实测值 (72 文件 / 4.4M;LE 证书issuer CN=YE2,notAfter 2026-12-17,SAN 仅wiki.go4pro.org、不含 www)。tools/deploy.sh的收尾提示由http://wiki.go4pro.org/改为https://wiki.go4pro.org/。 - 核对
mkdocs.yml:site_url已是https://wiki.go4pro.org,canonical 与 sitemap 本就正确,无需改动。 - 教训记录:日志/文档里的「待办」在完成后会变成误导。部署类条目应写可复验的 状态,或在完成后紧接一条状态更新;本次两条历史待办已就地标注「已完成」。
[2026-09-18] synthesize | 阶段 B:综合 2 篇新文 + 新建影音娱乐 hub#
- 起因:阶段 A 收录 2 篇后
编程总览的sources:过期,闸门按设计失败 (272 vs 273)。本次完成阶段 B,闸门恢复。 - 新建
wiki/pages/影音娱乐.md(title: 电影、音乐、游戏、娱乐总览,sources: 81)。该分类此前零覆盖,也是 2026-09-17《荣耀经》的归属地。 - 命名要点:博客把电影/音乐/游戏/娱乐存成一个分类名,故页面标题必须用完整
字符串,lint 才能用 keyword 正确核数;若题为「音乐总览」,81 篇会全部被算作
音乐(因 keyword 是分类名的子串)。此规则已写入
schema.md。 - 三条线索,均只写已逐条核对的内容:音乐(Pink Floyd 三张专辑与《Shine On You Crazy Diamond》译名之争——他认为倒装不当,译「继续闪耀吧,你这疯狂的钻石!」; 1988 年那盘达明一派磁带;《荣耀经》2009 ↔ 2026 同一作品 17 年;《悲惨世界》音乐剧 40 周年现场;Oh, Michael);电影(《西线无战事》1930 vs 2022 的差异与蝴蝶结尾; 《流浪地球》6 分与「什么才算科幻」三要素;《后翼弃兵》的 QBD 开局 + AlphaZero/TCEC 那条 AI 线索;《隐藏人物》与复活节看《宾虚》的个人惯例);游戏(动森从帐篷到 KK 演唱会的逐日记录;炉石「休闲氪金玩家」与四种玩法)。
- 页首明确标注「首次综合,只覆盖上列已核对条目」,并说明 81 是上限:该分类 还「顺手」收了游记、摄影、软件等条目。
- 更新
wiki/pages/编程.md:sources:272 → 273,补 local citation,新增 「工具链现状(2026-09)」小节(WorkBuddy ★★★★ GUI / Copilot + Cline ★★★★★ 命令行;选用理由是「不需要很诡异的设置」;Copilot 10 美元每月、Cline 免费层可用 DeepSeek V4 Flash 与 GLM 5.3-Flash),并列出新增的两件自制应用:塔罗牌 (已上线go4pro.org)与火柴人 cubeman(已开源,未上线)。工具链演进图末行 补2026-09。 - 数字同步:1652 → 1654(
wiki/index.mdfrontmatter + 正文、根index.md、overview.md);schema.md参考值更新为 编程 273 · 影音娱乐 81,并补记合并分类 的命名规则。inbox/2026-09-18.md已标注 STATUS: handled。 - 闸门全绿:
gen_index(1654 篇)→lint_wiki.py(21 文件 · 329 引用 · 117 内链, exit 0)→build_site.py(24 页 · 1984 条引文改写 · 0 未解析),site/72 文件 / 4.4M。 - 待办(用户):部署仍未执行。密码需在用户自己的终端输入(agent 终端无法输入), 故线上版本仍落后于本地构建。
[2026-09-18] sync | 增量同步工具(阶段 A)+ 收录 2 篇新文#
- 背景:博客
blog.rsywx.net仍在更新,而归档止于 2026-08-31(WXR 导出日 2026-09-11)。用户提出用 cron 自动「抓取 → 分析 → 生成 → 同步」。 - 拆成两阶段:抓取/建目录/校验可自动化;综合(分析)不可自动化 ——
lint 只能查断链与已知错字,查不出「通顺但错误」的句子,而本 wiki 已经出现过
编造的时间线条目与描述失实的《叫魂》段落。故
tools/sync_posts.py只做阶段 A, 把待综合的清单写到inbox/<日期>.md(不发布),阶段 B 仍由 agent 会话完成。 - 选用 REST API(
/wp-json/wp/v2/posts)而非 feed:feed 实测 301/404; REST 支持after=增量、x-wp-total计数,另用modified_after=单独探测 「旧文被改」——after=只按发布日期过滤,2020 年的文章今天被改不会出现在其中。 - 渲染器统一:把 frontmatter/正文组装抽成
wxr_to_md.render_markdown(), REST 与 WXR 两条路径共用(避免两套格式漂移)。重构后做字节级回归:在空 ROOT 重新生成整棵树,与线上diff -rq→IDENTICAL,目录diff→CATALOG IDENTICAL。 - 命名约定:新文件用 WordPress
slug(本身唯一,正好从根上避开「老彼得五上奖状」 那类标题同名冲突),slug 为百分号编码/非 ASCII 时回退标题 slug,冲突再加-<post_id>。不重命名历史文件。 - 本次收录 2 篇(博客上确为新增,抓取窗口 2026-08-01 起共 6 篇,4 篇已知被跳过):
2026-09-14 近期AI使用报告(post 9956,1322 字,编程、软件、技术,tag AI)2026-09-17 荣耀经(post 9964,1876 字,电影、音乐、游戏、娱乐, tags 维瓦尔第/荣耀经/音乐) 目录 1652 → 1654 行,文件 1654,sources.md1654 条,三者一致。- 幂等性已验证:重复运行输出
nothing new: wiki is up to date,exit 0。 - 闸门按设计失败:收录后
编程总览的sources:272 已过期(现为 273),lint_wiki.py报错、站点构建与发布被刻意中止,以免公开页面自相矛盾。 这正是阶段 B 的触发信号,不应通过放宽检查来消除。 - 状态文件
sources/_sync_state.json:日期游标 +post_id → modified_gmt基线。 基线采取惰性学习:首次发现某文被改只记基线并报「moved」,下次才能确证漂移。 (曾试一次抓全 1654 篇的基线,17 页分页,两次都在中途挂起,遂弃用该方案。) - 每页之间加 0.3s 间隔,并对请求做指数退避重试 —— 连续请求后该主机响应明显变慢。
- 待办(用户):① 重新部署仍未完成 —— 之前的
./tools/deploy.sh两次都停在 SSH 密码提示(工具的终端无法输入),故线上仍是旧构建:缺少李自成/政治-哲学-制度 的事实更正、1652 去重后的数字、日志修复、schema.md更新,以及这 2 篇新文。 ② 阶段 B 综合:inbox/2026-09-18.md已列出工作项(编程总览待更新;电影、音乐、游戏、娱乐尚无 hub —— 顺带一提,2026 的《荣耀经》与 2009 年2009-11-13-荣耀经gloria-in-excelsis-deo是同一曲目,可交叉引用)。
[2026-09-18] correct | 重复文章去重(1653 → 1652)+ 日志修复#
- 数据缺陷:
sources/_catalog.tsv有 1653 行但sources/posts/只有 1652 个文件 ——tools/wxr_to_md.py用wp:post_date_gmt+ 标题 slug 生成文件名, 而博客把《老彼得五上奖状》发了两遍(post_id 29412012/01/04/与 29432012/01/05/...-2/,正文同为 464 字),两条记录的 GMT 日期都是 2012-01-04, 于是第二条覆盖了第一条的文件,却仍在目录里留下两行。 - 后果(已随本次修复消失):
wiki/sources.md重复列出该文;overview.md报 1653 篇 / 1,230,576 字(多算 53 字)。 - 采纳去重方案(正文相同 → 同一篇文章)。
wxr_to_md.py现在:正文相同则 丢弃重复条目并打印被保留的链接;正文不同则加-<post_id>后缀而绝不覆盖。 文件写入从convert_item()移到main(),在冲突判定之后执行;目录新增post_id列。 - 去重保留的是首发那篇的 URL(
.../2012/01/04/peter-award-first-half-grade-5/), 该文件的source:由此从-2版本改为首发版本。 - 安全性验证:先在
/tmp用空的 ROOT 重新生成整棵树,与线上树逐字节diff -rq—— 1652 个文件中仅上述 1 个文件的source:行不同,其余完全一致, 之后才就地重跑。跳过计数不变(705 type / 152 status)。 - 加固:
gen_index.py改用csv.DictReader并在列缺失/字数非法/路径重复时 报错退出(原实现if len(parts) != 6: continue会静默丢文章);lint_wiki.py新增第 6 项检查:目录不得有重复或失效路径。 - 数字同步:
wiki/index.md(frontmatter + 正文)、根index.md、overview.md均改为 1652。schema.md的类目参考值复核后不变(读书 262 · 编程 272 · 游记 51 · 太宗本纪 63 · 一日一得 22),因为该文属 Uncategorized、未计入任何主题簇。
[2026-09-18] correct | 游记·铝镁炸鸡 6 补吕向阳#
- User caught a miss: 铝镁炸鸡 6 summary omitted 吕向阳 ("羊", 1969–2016), the
2班 classmate who died young. Rewrote 第 6 篇 entry + new subsection
「附:吕向阳同学」, cross-citing
2016-11-14-吕向阳同学葬礼悼词(the eulogy, written by the author, read by 应晖; died 10/20 of heart failure, Houston). - Lesson: series summaries built from first-30-line reads can miss payloads buried late in a post; read series finales in full.
[2026-09-18] lint | 错字 / 幻觉清扫#
- Typo/hallucination sweep (extended
lint_wiki.pywith a rare-character typo blocklist, negative-tested): 意识-时间-超越.md: 纠缭→纠缠 (4x), 隧穫→隧穿, "此公里"→此公理.政治-哲学-制度.md: 哈耺克→哈耶克 (had regressed), 泰伦→泰伯, 伯野叔齐→伯夷叔齐, 崇祃→崇祯; rewrote the 《叫魂》 section — it had claimed "晚明的合法腐败 / 官僚腐败走到极点、民不聊生 / 再读", none of which is in the post. 《叫魂》 is 孔飞力 on 1768 年(乾隆三十三年); replaced with the post's real content (p284-285 上了膛的武器, 周雪光"运动式"管理, 剪辫的政治含义, "毋纵毋苟").李自成与甲申.md: 崇祃→崇祯 (2x).- Verified accurate: 李贽《史纲评要》, 托克维尔"旅行家告诉我们…"语录。
[2026-09-18] verify | 事实核查 + 游记 hub 补源#
- 游记 hub deepened with verified sources: 2009 山东 (6 diary + 3 散文: 圣·孔 / 道·墙 / 尽·天), 2009-09-29 《自然景观耶?人文景观耶?》 as the "人文 > 自然" 宣言, 2007-10-10 出门旅游通知 + full 五篇 titles, 2017 厦门三日游记 1-3.
- Fact-check pass over all hub pages (numbers verified against
sources/_catalog.tsv, quotes verified against post text). Corrections: 生活.md: removed invented timeline entry "2008 生病了,生病了" (no such post exists).编程.md: "前 8 年贡献了 193 篇" → 2005–2014 计 226 篇 (2007: 49, 2008: 46); also 坠 2088 字 / 海阔凭鱼跃 2607 字 confirmed.AI编程进化.md: "七个气球题目" → the actual GPT5 puzzle (mistruthvslies寻宝路口逻辑题); added AlphaStar / AlphaEvolve to 第一类 AI.蛋壳与利他.md: quote corrected to verbatim 闵赶瓷 (deliberate censorship-evading spelling, not 敏感瓷).- Confirmed accurate: 181/181.5 中考线, 新城花园 106㎡, 2000-09-19 / 2001-01-16 / 2004-06-28 dates, 不求人·不苛求, 36岁之前, 蛋壳 1+0.5=0.5, 卡普兰 2012→8年后, spec-kit 6阶段76子任务, 3050→5060Ti.
[2026-09-18] publish | attribution + HTTPS live#
- Added Karpathy LLM Wiki gist credit to root
index.md(was self-linking!),llm-wiki.mdheader, and publicwiki/schema.md. - Confirmed local
llm-wiki.mdis a verbatim copy of the gist (11985 bytes). - DNS for wiki.go4pro.org resolved; HTTPS live with Let's Encrypt
(issuer
CN=YE2, SAN 仅wiki.go4pro.org, notAfter 2026-12-17;2026-09-18 复核)。 更正:本条早先记为 "cheapssl chain (leaf + 2 intermediates)",实测并无商业 证书链,与上一条「LE + certbot」结论一致。注意该证书只覆盖wiki.go4pro.org, 不含www。 - Renewal configured (
wiki.go4pro.org.confrenewal simulated OK).
[2026-09-18] tooling | lint_wiki.py + sources 计数约定#
- Fixed
sources:frontmatter drift: 编程 / AI编程进化 were 262 (copied from 读书), now 272 (posts matching编程、软件、技术). - Added
tools/lint_wiki.py(link/marker/frontmatter lint, exit-code gated) and documented thesources:counting convention inschema.md.
[2026-09-18] deploy | nginx vhost 就绪 + SSL 现状核查#
- 新增
deploy/nginx-wiki.go4pro.org.conf,已装到 VPS 并生效:/etc/nginx/sites-available/wiki->sites-enabled/wiki。 - 服务器实测:
wiki.go4pro.org200;go4pro.org/mail.go4pro.org及 未知 Host 的既有 301 行为未受影响;子路径与 404 页正常。 - SSL 现状核查(重要):该 VPS 上没有 CheapSSL 等商业证书链,也没有
任何已上传的 crt/key/pem;实际是 Let's Encrypt + certbot,已在管理
go4pro.org(+www) 与mail.go4pro.org两张证书。blog.rsywx.net亦为 LE。 故wiki.go4pro.org建议沿用 certbot(单独一张证书)。 - 新增
deploy/enable-wiki-ssl.sh:DNS 生效后一键申请证书 + 校验。 - 待办(用户):DNS A 记录
wiki.go4pro.org->192.227.231.215,然后运行该脚本。 已完成(2026-09-18):DNS 已解析,证书已签发(Let's Encrypt,notAfter 2026-12-17),自动续期已配置。
[2026-09-18] deploy | 发布到 VPS /home/tr/wiki#
- 方案 A 采用:
go4pro.org(192.227.231.215, RackNerd) + nginx。 - 实测要点:SSH 端口 22220(22 关闭);部署根目录
/home/tr/wiki; nginx 1.31.6,已有default/webmail站点。 - 首次同步
site/→/home/tr/wiki(71 文件 / 4.2M),rsync -ainc复核逐字节一致(0 差异)。 - 新增
tools/deploy.sh(构建 + rsync + 复核,支持--dry-run);DEPLOY.md更新为实测信息(端口/路径/权限/vhost/DNS)。 - 待办(用户):DNS A 记录
wiki.go4pro.org→192.227.231.215、 nginx vhost、certbot 证书。 已完成(2026-09-18):三项均已办妥,站点在 https://wiki.go4pro.org 上线;详见下方docs | 更正文档状态条目。
[2026-09-18] synthesize | 生活 + 游记主题聚类#
- Built 4 new synthesis pages: 生活总览, 人生的下半场, 蛋壳与利他, 游记总览.
- 生活 hub anchors the three axioms (简单·自洽·利他) to
2024-06-04-滕王阁序和人生的七个阶段(translation of 《凯恩斯传》 → 三大准则). - 游记 hub covers 2007 西安五篇 / 2008 丽江 / 2009 曲阜 / 2012 老彼得在加 (100d) /
2013 日本 / 2016 游轮 / 2025 意西行 / 2025 铝镁炸鸡 (= 旅美杂记,
us-trip-1..6). - Added all 4 pages to
mkdocs.ymlnav (主题group) andwiki/index.md.
[2026-09-18] synthesize | 编程主题聚类(2005–2026)#
- Built 2 new synthesis pages under
wiki/pages/for the 编程 corpus: 编程总览, AI编程进化 (2023–2026 AI 协作演进). - Renamed “科幻与公案体系” → “科幻与公理体系” (axiom, not Zen koan) across all 6 referring pages + mkdocs nav.
- Added both pages to
mkdocs.ymlnav (主题group) andwiki/index.md. - Awaiting: Life / Travel hubs.
[2026-09-18] synthesize | 读书主题聚类(2007–2026)#
- Built 12 synthesis pages under
wiki/pages/for the 读书 corpus (262 posts): 读书总览, 对我影响最大的十本书, 卡尔维诺, 中国通史笔记, 李自成与甲申, 译书记录, 科幻与公理体系, 哥德尔-数学-时间, 意识-时间-超越, 企鹅欧洲史, 政治-哲学-制度, 读书方法论. - Split
wiki/index.md(now curated) fromwiki/sources.md(auto catalog) so the curated index + auto catalog no longer collide. - Reworked
tools/gen_index.pyto emitwiki/sources.md(+overview.md). - Reworked
tools/build_site.pycitation rewriter to accept arbitrary../../prefix (regex(?:\.\./)+sources/(posts/[^)]+\.md)) and key permalinks byposts/<y>/<f>. - Added the 12 topic pages to
mkdocs.ymlnav (主题group). - Verified: all 66 cited source paths resolve; no broken intra-wiki page links.
[2026-09-18] setup | Public static site for wiki.go4pro.org#
- Chose MkDocs Material (no Obsidian; standalone static output) +
jiebafor Chinese search tokenization. mkdocs.yml(theme, zh, nav) +tools/build_site.py: stages only the wiki layer intodocs/, rewriting 1653 citation links to original blog URLs, then runs a strict MkDocs build →site/.- Added root
index.mdlanding page,.gitignore,DEPLOY.md(nginx / GitHub Pages / Cloudflare Pages options). - Verified: strict build passes, 5 pages + sitemap, Chinese search tokens OK.
[2026-09-18] ingest | Initial conversion of WordPress export#
- Converted
blog/WordPress.2026-09-11.xml→ 1653 markdown posts undersources/posts/<YYYY>/(2004–2026). 705 skipped (attachments/templates), 152 skipped (unpublished drafts). 更正(2026-09-18):实际是 1652 篇(1652 个文件)。当时把_catalog.tsv的行数当成了篇数,而目录里多出一行重复记录 —— 见下方correct | 重复文章去重。 - Generated
sources/_catalog.tsv,wiki/overview.md,wiki/index.md. - Wrote
wiki/schema.md.