2026-08-22
維護記錄 完成的工作 刪除 layouts/partials/footer.html(1 行 wrapper) 刪除 layouts/partials/custom_footer.html(156 行,PaperMod footer 的本地 fork) 刪除 hugo.toml 中 [params.cloudflareAnalytics] 配置塊 Hugo --minify 構建通過,確認 Cloudflare Web Analytics 注入消失(cf-beacon 匹配 0 次),PaperMod 自帶 footer 功能保留(top-link / scroll-to-top JS / 版權 / Powered by) 決策 移除 Cloudflare 站點統計:custom_footer.html 相對於 PaperMod 原版 footer 唯一真正的差異就是 Cloudflare beacon 注入;既然沒用價值,把 footer 部分整體還原回 PaperMod 默認,避免 PaperMod 升級 footer 時本地 fork 不同步的問題(2026-08-01 已記錄此風險) 保留 layouts/_partials/cover.html:該 override 解決了 PaperMod resources.ByType "image" 不識別 SVG 封面導致 404 的問題,不能刪 下次建議 如果以後又想加自定義站點統計,可以直接在 Hugo 配置啟用內置埋點,或 inline 在 layouts/partials/extend_footer.html(PaperMod 已留 hook),不需要再 fork 整個 footer 維護記錄 完成的工作 修正 CLAUDE.md 中 prettier 安裝命令的事實錯誤:實際是 deno install -g -A npm:prettier@3.9.6 落到 ~/.deno/bin/,不需要 setup-node 修正 scripts/format-markdown.ts 頂部 docstring 的過時描述 給 check-dead-links.yml / test-scripts.yml / validate-posts.yml 三個 push-trigger workflow 加上 if: github.actor != 'github-actions[bot]' 守衛,跟 deploy.yml / sync-covers.yml / update-papermod.yml 一致;節省 bot 推送後再次觸發 CI 的時間 刪除 assets/images/covers/covers/ 死目錄(220 個 SVG,5.4MB):該批封面是 2026-07-21 第一次批量生成時落在 assets/images/covers/ 的;後來 gen-covers.ts 的 COVERS_DIR 改成 static/images/covers/,但舊的沒清;grep 確認沒有任何 .ts / .md / .yml / .toml 引用該路徑 下次建議 第三方 action 仍用浮動 tag(@v4/@v3/@v2);可考慮釘 SHA 防供應鏈投毒 format-markdown.ts(27 行)/ optimize-images.ts(182 行) 仍無單測 維護記錄 完成的工作 刪除全部 31 篇文章中的 categories: 字段(都是 inline categories: ["X"] 格式)— 決定只用 tag 做分類 hugo.toml 的 [taxonomies] 中刪掉 category = "categories" 行;現在只剩 tag = "tags" 和 series = "series"(series 也無人使用,可後續考慮一併刪除) Hugo --minify 構建通過(221 篇,466 ms) 決策 分類統一用 tag:之前 categories 和 tags 語義重疊(categories 僅 3 種且只覆蓋 31 篇;tag 是文章主要分類手段);統一後所有文章都通過 tag 分組,/tags/ 頁面真正反映全部分類 下次建議 series = "series" 在 [taxonomies] 中也是死配置(無人用 series:),可順手刪 維護記錄 完成的工作 把 14 篇文章中的 軟路由 tag 改為 硬件(語義上 軟路由 是軟件配置路由器,硬件 是更廣義的物理設備類目;後續硬件折騰文也歸這裡) 下次建議 tag 表仍偏多(8 個),繼續精簡可考慮:把 日誌(97 篇,大雜燴)拆成 雜記 + 併入 開發/思考;刪除 學習(已基本退役,2021 起再沒用過);刪除 雜談(3 篇,可併入 雜記/思考) 維護記錄 完成的工作 把 50 篇文章的 開發 tag 改為 學習(包括 2 篇原本就有 學習 的:Stack by Rust / Tree by Rust,dedup 後剩 1 個 學習) 順手修了 20200406-Rails-ENV-u0k.md 的 tag: 單數 typo(之前是死配置,Hugo 不會識別),改為 tags: ["學習"] Hugo --minify 通過(370 ms,221 篇) 決策 學習 現在承擔"技術學習/開發"語義(吸收了原 開發),覆蓋 58 篇;原 學習 主要貼在 2020 年早期學習筆記上,語義自然延伸 下次建議 當前 tag:日誌 97 / 學習 58 / 思考 40 / 硬件 14 / 安全 6 / 雜談 3 / 書評 1 仍有 日誌(大雜燴)和 雜談(3 篇,邊緣)可以繼續精簡 維護記錄 完成的工作 給全部 221 篇文章補全 description: 字段(原來只有 9 篇有內容、30 篇是空 "",其餘完全缺失) 日誌類 94 篇:直接寫日期(2020年04月06日 風格),機械處理 非日誌類 117 篇:4 個 subagent 並行讀取正文,生成 80-150 字中文摘要(已驗證 PaperMod 把 description 渲染到 meta[name=description]、og:description、twitter:description 三處) 2 篇 draft 但空正文(20200407-Linux-Process-0ca / 20250115-AHK的快捷鍵腳本方案-0ca)用標題生成了佔位描述 Hugo --minify 通過(288 ms,221 篇全部有 description) 決策 全部 description 用中文雙引號包裹(description: "..."),保持博客中文環境一致 插入位置統一在 date: 行之後;空 description: "" 直接在原位替換 摘要規則:不重複標題信息、客觀中性、長度可控 下次建議 部分早期文章(2020-2021)的標題比較模糊(如 Log 14、2020-9-19),AI 生成的 description 可能不太有意義,但仍優於完全缺失 沒有動 hugo.toml 中 [params] 的 description = ""(全站 fallback);如果想統一,可以改為 blog 簡介 維護記錄 完成的工作 啟用 Hugo 多語言:在 hugo.toml 加 [languages] 塊,簡體 zh(默認,URL 不帶前綴)+ 繁體 zh-tw(URL 帶 /zh-tw/);defaultContentLanguageInSubdir = false 讓默認語言留在根路徑 用 pip install opencc-python-reimplemented 裝到 .tools/pip/(sandbox 不讓裝到 HOME),用 OpenCC('s2tw') 把所有內容轉繁中臺灣標準 轉換 222 個 content/posts/*.md → *.zh-tw.md;16 個 content/claudelog/*.md → *.zh-tw.md;另外 about.md / archives.md / search.md / posts/_index.md 也都加了對應 zh-tw 版本 每個 zh-tw 文件 front matter 加 language: "zh-tw"(Hugo 多語言約定) 複製 PaperMod 的 themes/PaperMod/i18n/zh-tw.yaml 到本地 i18n/zh-tw.yaml(UI 文案:分鐘/字/目錄/上一頁/下一頁/語言 等) zh-tw 菜單用中文繁體顯示名:文章 / 維護日誌 / 原始碼 / 彙整 / 搜尋 / 標籤 / 關於;homeInfoParams.Content 也轉繁中(假如我走進海裡, 你會拉住我麼?) Hugo 修復 languageCode 棄用警告,改用 locale(zh-CN / zh-TW) Hugo --minify 雙語構建通過:ZH 259 頁 / ZH-TW 257 頁(差 2 個是歷史 alias 重定向目錄,不重要) 已驗證生成的 zh-tw HTML 含 <html lang=zh-tw>、og:locale=zh_TW、og:description 是繁體中文、hreflang 雙向鏈接、語言切換器菜單正確顯示 決策 用 s2tw(簡體→臺灣繁體)而不是 s2t(僅字符轉換):前者同時做用詞轉換(軟件→軟件、網絡→網絡、視頻→影片、內存→記憶體);後者只轉字符會保留大陸用詞 OpenCC 轉換覆蓋整篇文件(包括 front matter):會把 title/description/tags 等中文值的字符也轉;英文字段/URL/代碼塊不動 claudelog 也一起轉了:雖然不是"文章",但既然公開在站點,雙語可讀性更一致 不動 defaultContentLanguageInSubdir = false:保持簡體版 URL 不帶 /zh/ 前綴(避免破壞現有 SEO/外鏈),只有繁體版帶 /zh-tw/ 下次建議 Hugo 0.161 還有 3 個 PaperMod 模板的棄用警告(LanguageDirection / LanguageCode / LanguageName),等 PaperMod 升級時自然解決 2 個差量(20260805-qds / 20260817-jtc)是歷史 alias 目錄只在 zh 出現,不影響正常瀏覽,可加忽略 s2tw 自動轉換的術語可能在少數地方不準確(如博客自創詞、品牌名),需要人工抽查 OpenCC 對 emoji/英文標點不轉換,只動中文字符,所以不會破壞 Markdown 語法 推送 本批未推送,等待用戶授權。