跳至主要內容

使用 Claude Code 重構整個 Blog

· 6 分鐘閱讀
Pitt Wu
Software / Product Engineer

在 2023-2024 年以前,傳統的技術 Blog 個人覺得還是挺有價值的,畢竟可以彙整自己的筆記,面試經驗與遇到題目,甚至可能踩過的坑與細節。

但隨著 2025 年中以降,模型迭代的速度越來越快,同時也越來越強,甚至連 Cursor 這種在 2025 年上半年我覺得還挺好用的 AI Code Editor,都在下半年明顯感受到無力抗衡 Claude Code,我就知道得配合時代,把整個 Blog 翻新重構了(期許能保留價值)。

數據

開頭先列出數據,因為這個量單純以人力來說,曠日費時,而且我能篤定,大概率會被拖延症徹底擊垮。但在 AI 工具的輔助下,10 天內完成(且還是在農曆春節期間),品質尚可,算是個小奇蹟。

MetricValue
Duration10 days (Feb 8–18, 2026)
Total commits104
Files changed1,078
Lines inserted263,000+
Lines deleted21,000+
Locales4 → 10
Docs translated to English89
Translation files generated801 (89 docs × 9 locales)
Blog posts with full i18n5
Tools usedClaude Code

實際做了什麼

Phase 1:基礎建設(Feb 8–9)— 8 commits

從頭重新設計首頁和 About 頁面。建立 CLAUDE.md 作為專案的憲法——commit 格式、i18n 規則、檔案結構慣例。把語系從 4 個擴充到 6 個。全程都是跟 Claude Code 互動完成的。

這個階段主要在做架構決策:首頁要長什麼樣?About 頁面怎麼規劃?整個專案要遵守什麼慣例?這些問題 都是透過跟 Claude 交互後,尤其制定執行計劃,我僅負責 Review 與調整。

Phase 2:規模擴展(Feb 11–12)— 14 commits

再加入 4 個語系(pt-BR、de、fr、vi),湊滿 10 個。產生主題翻譯檔案。重新設計 navbar 和 sidebar 以改善內容組織。把 defaultLocale 切換成 en 並設定 Vercel i18n routing。升級相依套件。語系擴展幾乎全是機械式的工作——正是 AI 擅長的領域,雖然非常消耗 Token,但以人力來說,幾乎不可能在極短時間內完成。

Phase 3:內容(Feb 13–14)— 14 commits

清理舊的 blog 文章。寫了一篇年度回顧。把所有 blog 文章翻譯成 10 個語系。建立 Projects 展示頁。完成首頁 i18n。修復 UI 元件的 bug(ShowcaseCard 按鈕對齊、dropdown 裁切問題)。

這個階段遇到的狀況是,其實 AI 並不善於第一時間發現破版問題(UI 問題),而需要透過多次的交互後,由人(也就是我)來持續指出修正方向,才能將畫面修到正確。

Phase 4:Sidebar + Blog(Feb 15)— 7 commits

重新整理整個 docs 的 sidebar 結構。翻譯所有 10 個語系的 sidebar category 標籤。清掉之前重構遺留的 206 個無用翻譯 key。撰寫並翻譯資遣談判的 blog 文章到所有語系。

Phase 5:Docs i18n(Feb 16–17)— 14 commits

最大的 Batch:把 89 篇文件翻譯成 9 個非英文語系,產出 801 個翻譯檔案。涵蓋 Knowledge(JavaScript、TypeScript、CSS、Vue、React、Browser、Security、Engineering)、Experience 和 Coding 區塊。

這一階段和下一階段都是極度消耗 Token,將高度機械化的翻譯工作,全數砸到 AI 身上,讓它盡情發揮(畢竟我也看不懂諸多語系)。

Phase 6:品質修復(Feb 17–18)— 24 commits

這個階段的存在,是因為 Phase 5 的產出不夠乾淨。整整 24 個 commits 都在修 AI 產生的翻譯:

  • German:變音符號被渲染成 ASCII(ue 而不是 üae 而不是 ä
  • French:重音符號被去掉(e 而不是 éa 而不是 à
  • Vietnamese:聲調符號完全消失(沒有聲調的越南文幾乎無法閱讀)
  • Spanish/Portuguese:全文的重音符號都掉了
  • Chinese Simplified:繁體中文字元混入(AI 有時分不清這兩種書寫系統)
  • CJK 殘留:es、pt-BR、ja、ko、vi 的程式碼區塊裡留有未翻譯的中文註解

每修一個問題就會冒出更多問題。修正 Portuguese 的重音符號時,過度修正導致 frontmatter 的 idslug 欄位壞掉。修復 Vietnamese 聲調時漏掉了一個檔案。Spanish 的重音修正出現誤判,需要再補一個修正 commit。

其實這階段,除非你懂某一種語言,不然人力是真的無法介入,只能完全仰賴不同模型交叉驗證。

AI 不擅長辨識的事

// Example:

- 第一次就把變音符號和聲調符號處理正確(accents、umlauts、tonal marks)
- 穩定區分繁體中文和簡體中文
- 判斷程式碼裡的註解該保持原文還是翻譯
- 在內容轉換過程中保留 frontmatter 欄位不被動到

踩坑

重音和聲調的災難。 AI 在五種語言中把非 ASCII 字元都用 ASCII 近似值取代。這導致了 24 個修正 commits——將近總數的四分之一。越南文是最慘的案例:少了聲調符號,整個語言幾乎無法辨識。

繁簡中文混用。 zh-cn 的翻譯裡,程式碼註解和行內引用出現了繁體中文字元。AI 沒辦法穩定區分這兩種書寫系統。

Frontmatter 損壞。 翻譯文件時,AI 有時會動到 frontmatter 裡的 idslug 欄位,導致 Docusaurus routing 壞掉。有一個 commit 就是專門修復 Portuguese 在重音修正過程中被搞壞的 idslug

過度修正的連鎖反應。 修一個問題常常會引發另一個。Portuguese 的重音修正過度修正了一些技術名詞。Vietnamese 的聲調修復漏掉了一個檔案。每個「修正」commit 都有一定機率製造新問題。

人類還能介入的地方

架構決策。 要支援哪 10 個語系。Sidebar 要怎麼組織。什麼東西放在 navbar dropdown、什麼放在頂層。這些決策影響了所有下游的工作。

品質判斷。 UI 是否破版,是否符合設計規範。語系翻譯有沒有明顯錯誤,例如調整預設語系是否有正確對應。

CLAUDE.md 檔案。 本質上是一份 Repo 憲法,用來教 AI 你的專案慣例:commit 格式、檔案結構、i18n 規則、哪些事絕對不能做。這份檔案寫得越完善,AI 犯的錯就越少,人力介入的機會就越少,所以需要頻繁迭代與更新。

心得

從一份完善的 CLAUDE.md 開始。 每一條寫進去的慣例,後面都能省下幾十次修正循環。從幾行字長到一份完整的文件,涵蓋 commit 格式、i18n 規則、專案結構,還有明確的禁止事項。

批次處理類似的工作,批次審查結果。 不要一次翻譯一個檔案。一次丟 15 個類似的檔案給 AI,然後整批審查,可以避免人力需要核可太多細節。

盡可能平行使用工具。 同時讓 Claude Code 處理互動式工作,再將工作移交給 Gemini, Codex 等處理批次工作,是最大的效率提升。別把可以平行化的工作串行化。

記錄一切。 每個 commit message、每個階段分界、每次修正——全部都在歷史紀錄裡。如果在做大型 AI 輔助專案,commit history 就是文件。