20260608 簡評 LLM
Published:Updated:
- Gemini: 不重要需要快速回覆的就找他,什麼都會錯,不要期待他內容正確,生圖額度超大根本用不完
- Claude: 什麼都可以找他,尤其是重要、需要精確回覆、需要 reference、需要 coding 就找他
- Grok: 聊色可以找他
- ChatGPT: 想被惹怒可以找他
新發現
要求 AI 複述一次用戶指令的效果非常好,可以用少量 token 換來 AI 先整理過一次想法,我們可以用這個開頭確認他沒有理解錯,他也可以用這個開頭更好的預測後續文字機率,算是簡化版的 thinking 功能。
## 描述
## 任務目標
## 回應方式
所有回應前都必須複述用戶指令
## 要求
必須嚴格遵守所有要求,任意一項要求沒有達成即視同任務失敗,所有對話等同報銷。本對話所有回應必須嚴格遵守以下要求
1. 禁止thinking功能,thinking過程不得超過20個英文單字
2. 禁止使用visualization工具
3. 禁止閱讀任何skill
Claude 的 thinking 過程也不包含在 context 裡面,而且錯的想法想再多都是錯的,那還不如直接輸出文字。禁止閱讀 skill 的原因是錯誤觸發的機會更高還會污染 context,visualization 更多時候是輸出垃圾因此也禁止。
Claude
現在九成都用他。
不過仍舊很會不承認自己的錯,應該怪用戶:對他期望太高了。
Claude 更新
2026/06/13 開始會自動關閉對話了,滿屌的。
ChatGPT 的噁心語法
- 到底是在摘要和括弧三小?
- 最小版(建議直接用)
- 關鍵(為什麼這樣就夠)
- 一句話版本(極限)
- 如果你願意
- 不是...,而是...
我的 prompt
我的 prompt 如下:
根據這些描述,靜態部落格網站,使用模板引擎搭建,包含頁面js,應該如何選擇?長文分析回覆。
Swup.js
Swup.js 攔截連結點擊,用 fetch 取得下一頁的完整 HTML,然後只替換 JS 指定的 DOM container,核心是生命週期 hooks(willReplaceContent, contentReplaced 等),讓你能在替換前後插入邏輯。Swup 不帶任何伺服器協定,完全是純前端 DOM 操作。
完美符合 Hugo 使用需求,有大量插件且開發活躍,是最適合的套件。
hotwired/turbo
本質是 Rails 生態系的前端協定實作,分為三層:Turbo Drive(整頁切換加速)、Turbo Frames(局部 frame 替換)、Turbo Streams(伺服器推送局部更新)。
Turbo Drive:
- 替換整個
<body>,merge<head> - 有完整 event hook 系統(
turbo:before-visit、turbo:before-render、turbo:before-fetch-request等) turbo:before-render可以完全自訂 render function,甚至換成 idiomorphdata-turbo-permanent保留特定元素跨頁不替換data-turbo-track="reload"處理 asset 版本變更data-turbo="false"逐元素退出- 內建 prefetch(v8 預設開啟)和 preload
Turbo Frames:
- 從完整 HTML 回應中抽取對應
<turbo-frame id="">的內容替換當前 frame - 不需要伺服器回傳局部片段(前對話已確認)
- 但來源頁與目標頁都需要存在對應 ID 的
<turbo-frame>標籤
Turbo Streams:
- 需要伺服器回傳
Content-Type: text/vnd.turbo-stream.html,在靜態網站無法實現
超爛回覆
瘋狂換行,瘋狂排比,瘋狂列表,毫無重點,以下是 ChatGPT 回的內容。
=== === === === === === === === === === === === === === === ===
針對「靜態部落格 + 模板引擎(Hugo / Eleventy / Jekyll 類型)+ 頁面內含 JS」,核心選型其實不在於“能不能做 PJAX”,而在於三件事:
- 內容來源是純 HTML(build-time)還是需要 runtime 組合
- 頁面切換是 full reload 還是 SPA-like transition
- JS 狀態是否需要跨頁維持
下面分層分析 Swup.js 與 Turbo(Hotwire)在這個場景的適配性。
一、靜態部落格的本質約束
靜態部落格通常具備:
build-time rendering(Hugo / Eleventy / Astro static)
每篇文章 = 完整 HTML 頁面
server 無動態 API(或極少)
SEO 依賴完整 HTML
JS 多為:
- TOC
- code highlight
- analytics
- comment embed
- UI enhancement(theme toggle / search)
👉 本質是:多頁應用(MPA)+ 少量前端增強
二、Swup.js 的模型是否適合
Swup 的核心模型
- 攔截
<a>click - fetch 下一頁 HTML
- 抽取 container(如
#swup) - 替換 DOM
- lifecycle hooks(transition 前後)
👉 本質:純前端 PJAX 框架
在靜態部落格中的優勢
1. 完全無後端依賴
Swup 不要求:
- 特定 HTML tag
- server header
- frame structure
- API 或 stream
👉 非常適合 Hugo / Eleventy
2. DOM 替換模型簡單
只需要:
<div id="swup">
{{ content }}
</div>
所有 page 都一致即可。
3. 插件生態偏「網站增強」
Swup 插件常見用途:
- page transition animation
- scroll restore
- preload links
- head replacement
👉 很貼近 blog UX(平滑切頁)
4. JS 重初始化容易控制
典型問題:
換頁後 highlight / TOC / mathjax 失效
Swup 解法:
- hook
contentReplaced - 重新 init scripts
這對 static blog 是直覺模型
Swup 的限制
1. head 管理較弱(需插件)
- meta / title 更新需額外處理
- SEO-friendly 依賴 plugin 正確配置
2. 複雜局部更新能力弱
Swup 是:
replace whole container
不是:
structured partial update system
3. 多區域 state 不天然支持
例如:
- sidebar 狀態
- persistent mini-player
- reading progress
都要自己管理
三、Turbo(Hotwire)模型是否適合
Turbo 的核心更接近:
server-driven navigation protocol
但在靜態網站中,它會變成:
“HTML-based SPA navigation system”
Turbo Drive(最重要)
行為:
- 攔截 navigation
- fetch full HTML
- 替換
<body> - merge
<head>
👉 本質:整頁替換 SPA
在靜態 blog 的優勢
1. head 管理天然完整
Turbo 直接處理:
- title
- meta
- stylesheet reload
- script tracking
👉 幾乎零配置
2. lifecycle hooks 更細
例如:
turbo:before-renderturbo:renderturbo:load
可以:
- swap render engine(甚至 idiomorph)
- 精細控制 DOM merge
👉 比 Swup 更底層
3. preload / cache 更成熟
Turbo 有:
- snapshot cache
- page prefetch
- instant back/forward restore
👉 blog 翻頁體感非常強
4. permanent state 機制強
<div data-turbo-permanent>
適合:
- navbar
- music player
- theme switcher
Turbo 在 static blog 的問題
1. Frames 是 server-oriented 思維
Turbo Frames:
- 假設 server 能回 partial HTML
但 static blog:
- 沒有 API
- 沒有 partial endpoint
👉 Frames 幾乎用不到
2. 概念偏 Rails
Turbo 本質:
Rails full-stack enhancement layer
在 Hugo/Eleventy 中:
- 需要「轉譯它的假設」
3. setup 比 Swup 重
需要理解:
- cache snapshot
- visit restoration
- rendering pipeline
對 simple blog 是「偏重」
四、關鍵對比(靜態部落格視角)
1. 架構匹配度
| 面向 | Swup | Turbo |
|---|---|---|
| 靜態 HTML | 非常適合 | 適合 |
| server dependency | 無 | 幾乎無但設計偏 server |
| complexity | 低 | 中 |
| learning curve | 低 | 中高 |
👉 Swup 勝
2. UI/UX 能力
| 能力 | Swup | Turbo |
|---|---|---|
| page transition | 強(動畫導向) | 中 |
| cache/back forward | 中 | 強 |
| head handling | 中(需 plugin) | 強 |
| state persistence | 弱 | 強 |
👉 Turbo 勝
3. JS 管理模型
| 項目 | Swup | Turbo |
|---|---|---|
| re-init hooks | 很直覺 | 更結構化 |
| DOM lifecycle | container-based | full-page pipeline |
| predictable behavior | 高 | 高(但複雜) |
4. 靜態 blog 實務體驗
Swup:
- 「輕量 PJAX 增強」
- 幾乎不改架構
- 很像 upgrade theme
Turbo:
- 「把網站升級成 SPA-like MPA」
- 更完整,但侵入性更高
五、選型結論(核心建議)
如果你的目標是:
A. Hugo / Eleventy + blog + minimal JS
👉 選 Swup.js
理由:
- 最少架構侵入
- 最貼近 static HTML mindset
- plugin 足夠做 blog transition + preload
- init model 清晰
如果你的目標是:
B. 想做「長期演化的 content app」
例如:
- blog + dashboard
- blog + bookmarks system
- blog + reader + state persistence
- 多 UI region 保留狀態
👉 選 Turbo
理由:
- snapshot cache + restore 很強
- head 管理更穩
- persistent element model 更適合 app 化
六、實務折中方案(最常見)
很多 production blog 最終會是:
Swup + 少量自寫 cache
或
Turbo Drive + 不用 Frames
原因:
- Frames 在 static site 幾乎浪費
- Drive 已足夠改善 UX
七、簡化決策樹
你是否需要 app-like state persistence?
│
yes ──┴──→ Turbo
no
│
是否只想要 smooth page transition + minimal setup?
│
yes ──→ Swup
no(更複雜)→ Turbo
八、總結
- Swup:偏「前端動畫與輕量 PJAX」,最適合純靜態 blog 增強
- Turbo:偏「完整 navigation protocol」,適合逐步 app 化的內容系統
- 靜態部落格的最佳匹配通常是 Swup,但 Turbo 在長期擴展性更強
如果需要,可以進一步拆:
- Hugo + Swup 正確初始化方式(避免 TOC / highlight 重複初始化問題)
- 或 Turbo 在 static site 的最佳 minimal config(避開 Frames,只用 Drive)