桌機的 Archives 頁首:上方「2026 年 10 月 49 篇」,下面是 « ‹ 1–12 月 › » 的月份長條,10 月有外框;月曆每天寫第一篇的標題,左下角疊著分類 icon,10/20 是四個 icon 加「+3」;滑鼠停在 10/11,浮框列出當天五篇的標題

kiwi-walk停掉每日連載之後,把月曆搬到 Archives,看見每個月的累積

kiwi-daily 停掉之後,把月曆搬到 Archives 頁首:桌機是一年 12 格的月份熱度長條加一篇一個 icon 的月曆,手機改成左右滑的月份滑桿,日格的底色和列表的縮圖則在看過預覽後拿掉。

2026-10-25 · 9 分鐘
杯測文章「總覽對照」表,改前只占桌機欄寬一半,改後拉滿整欄

kiwi-walk文章表格拉滿欄寬、中文自然斷行,塞不下的表只在框內橫捲

PaperMod 讓文章表格在桌機只撐到內容寬、中文在手機不斷行。這篇記錄先量全站 101 張表、在建好的站上試 CSS,最後用 table render hook 把每張表包進可橫捲的框,以及一路踩到的斷字和選擇器權重問題。

2026-10-24 · 5 分鐘
kiwi-walk 的 /blogs/ 總覽,8 個分類的奇異鳥 logo 排成兩列

kiwi-walk分類 logo 從 883 KiB 瘦到 114 KiB,載入速度大大提升

/blogs/ 那 8 隻奇異鳥 logo 只顯示 108px,卻每隻都是 200 多 KB 的 PNG。這篇記錄怎麼換成 R2 上 128px/256px 的 WebP、為什麼沒用 srcset,以及讓上傳腳本以後自動把文章圖縮到 1400px 並轉 WebP。

2026-10-20 · 7 分鐘
Lighthouse 無障礙分數四個頁面從 95、96 升到 100;次要文字

kiwi-walk強化網站顏色對比,拉高無障礙分數到 100

PageSpeed 給 kiwi-walk 的無障礙分數是 95,扣分來自文字對比不足和 role=presentation 衝突。這篇記錄怎麼找到真正失敗的那一組顏色:對比在文章頁是過的,失敗的是 PaperMod 讓列表頁換了一個底色;怎麼在不改整體色系的前提下挑新的次要文字色和程式碼註解色,以及 logo 上一個 aria-label 為什麼會讓圖片「角色衝突」。四個頁面都升到 100。

2026-10-20 · 7 分鐘
blog-seo-audit 本地 Lighthouse 6 次中位數:改前 gtag/js 在 head、10 ms 開始請求,load 1697 ms;改後 load 602 ms,gtag/js 在 load 之後才請求。FCP 1.50 → 1.21 s,LCP 1.80 → 1.80 s,Unused JS 72 → 72 KiB

kiwi-walk將 GA 延後載入,load 有提早,但 unused JS 卻沒下降

PageSpeed 說我有 72 KiB 沒用到的 JavaScript、10 KiB 舊式 JavaScript。把 GA 的 gtag/js 移到 window load 之後、只在正式 build 載入,load 提早約 1.1 秒、FCP 小幅改善;但 Lighthouse 照樣量到 72 KiB,而那 10 KiB 根本是 Cloudflare 的 beacon。第一次拿兩個不同 host 比出來的 LCP 進步,換成同條件 A/B 也不見了。

2026-10-20 · 7 分鐘
改後的 kiwi-walk /tags/ 總覽,只列出篇數 2 以上的 44 個 tag

kiwi-walk/tags/ 總覽隱藏只有一篇文章的 tag

kiwi-walk 的 /tags/ 有 159 個 tag,其中 115 個只有一篇文章。這篇記錄怎麼用一個參數 tagsMinCount(預設 2)把總覽縮到 44 個,同時讓單篇 tag 的頁面照樣存在、文章底下的 tag 照樣點得進去,以及驗證時被壓縮 HTML 和一個帶斜線的 tag 騙到的兩次。

2026-10-20 · 5 分鐘
改之前線上 preview 首頁有 22 個 href 指向 kiwi-walk.com;換成 pages-build.sh 後本地模擬的 preview 22 個 href 都指向自己的 host;main 分支的輸出跟直接跑 hugo 逐檔相同

kiwi-walkCloudflare Pages 的 preview,點了連結就跳回正式站

kiwi-walk 的 Cloudflare Pages preview 上,首頁 22 個站內連結全部指向 https://kiwi-walk.com/,點一下就離開 preview。原因是 hugo.yml 寫死的 baseURL;改用一支 build script 讀 CF_PAGES_BRANCH 與 CF_PAGES_URL,在 preview 上換成部署自己的網址,並用逐檔 diff 確認正式站輸出不變。

2026-10-20 · 6 分鐘
kiwi-walk 文章底部的分享列:桌機是「分享」加 LINE、Threads、Facebook、複製連結四顆圓形 icon;手機 375px 是「分享這篇」「複製連結」兩顆按鈕

kiwi-walk把文章底部的分享列復活!

kiwi-walk 的文章底部加了分享列。桌機是 LINE、Threads、Facebook 和複製連結四顆圓形 icon,手機只留「分享這篇」「複製連結」兩顆按鈕,交給系統分享選單。這篇記錄為什麼按鈕要少、手機和桌機怎麼切、瀏覽器不支援 navigator.share 或沒有 JS 時退回什麼,以及上線前把通用圖示換成官方 logo 的經過。

2026-10-20 · 7 分鐘
Claude Code 側欄:一個主 session 底下掛著九個 issue session

kiwi-walkv1|我發想、AI 完善 issue,平行處理,生產力暴增

部落格的想法先記成一句話的 GitHub issue,AI 確認過 codebase 再把它補完,我在 issue 留言裡跟 AI 來回,而且一定要有 mermaid 流程圖與 mockup。三個狀態 label 分工:ai-enhanced 是 AI 負責,approved 只有我能設,進入 approve 就代表我認可這份 plan,交給新的 Claude Code session 實作、發 PR 附上驗證。approved 的 issue 一次開三個 session、各自一個 worktree 平行做,做完再請同一個 session 把過程寫成文章。

2026-10-19 · 7 分鐘
kiwi-walk 的 HTTP 安全標頭:HTTP Observatory 從 D 30 分升到 A− 85 分,securityheaders.com 從 D 升到 A+;CSP、X-Frame-Options、Permissions-Policy、HSTS 補上,SRI 接受扣分

kiwi-walk解決之前被網站偵測的安全標頭,從 D 到 A 的路上

kiwi-walk 的 HTTP 安全標頭在 Mozilla HTTP Observatory 拿 D(30 分)。這篇記錄怎麼補上 X-Frame-Options、Permissions-Policy 和 CSP,把全站 18 段 inline script 搬成檔案,讓 CSP 可以強制執行,再開 HSTS,Observatory 升到 A−(85 分)、securityheaders.com 從 D 升到 A+;也記錄三個只在正式網域才出現、預覽網址完全抓不到的問題,以及清單上標成完成、實際卻還沒生效的 HSTS。

2026-10-17 · 9 分鐘