卡片新聞製作器 (카드뉴스 메이커)
將主題、來源文章(URL)或草稿檔案轉換為一套精美的 800×800 卡片新聞圖像。使用者每次提出 新的主題;您需要讀取/推導內容、將其結構化為卡片、進行渲染,然後執行自我審查與修正循環,最後交付成品。
視覺風格是固定的(讓每套卡片感覺像一系列作品),但色彩主題會根據每次的主題調整。佈局、字體排印、間距和審查循環則保持不變。
何時提問 vs. 何時自行決定
使用者明確希望您對任何真正模糊不清的事提出詢問,而不是讓您猜測。當答案會有意義地改變輸出結果,且無法推斷時,請使用 AskUserQuestion(先提出推薦選項)。否則,請自行決定並簡短說明您的選擇。
自行決定(無需詢問):
- 卡片數量 — 根據內容調整,通常為 8–15 張(封面 + 內文 + 結尾)。
- 色彩主題 — 選擇適合主題/品牌的主題(請參閱參考資料)。
- 每張卡片的佈局(標準內文卡 vs. 統計卡 vs. 圖表/檢查清單)。
- 韓文文案撰寫、強調範圍、標籤文字。
詢問使用者(不明確時):
- 來源不明確:只有一行主題但無來源,且範圍廣泛 → 詢問是否要進行網路搜尋,或希望採取何種角度/深度。
- 當沒有強烈的單一標題可選時,封面標題(預設:提出一個提議 + 提供更好的替代方案,讓他們選擇)。
- 若主題可能有多種方向(例如高層簡報 vs. 初學者解說)且會實質改變文案時,詢問受眾/語氣。
- 使用者標記為「판단 애매」(判斷模糊)的任何事項 — 將其提出來詢問。
當反覆出現的偏好被確定時,可以將其記錄下來,以便未來執行更順利——但永遠不要因為一個可以用合理預設值回答的問題而阻塞整個工作。
工作流程
1. 取得內容
- URL → 擷取(WebFetch)並提取論點、關鍵點、術語、重要數據/引言,以及主要結論。
- 文字 / 草稿檔案 → 讀取;將提供的逐章草稿視為主要骨架。您可以稍微潤飾,但保留使用者的結構。
- 僅有一行主題 → 如果範圍廣泛且無來源,在憑空創造內容之前,先詢問是否要進行網路搜尋或希望採取何種角度。
保持忠於來源。避免過度解讀。當您加入「我們該學到什麼 / 시사점」的角度時,將其表述為從來源中汲取的教訓,而非個人處方。將任何「做 X / 하라」的命令式語氣改寫為觀察陳述(「X가 중요하다」、「X일 때 강해진다」)。
2. 規劃卡片組合
決定卡片數量及每張卡片的角色。典型的架構:
封面 → 鉤子/引言 → 背景脈絡 → 核心概念(每張卡片一個想法) → 一張統計或圖表卡片(有助於傳達) → 結尾訊息(+ 來源連結)。
使用一張卡片一個想法的原則。如果一張卡片的內文會溢出,請將其拆分。
選擇一個適合主題的色彩主題,並閱讀 references/design-system.md 以了解確切的代碼、卡片佈局和組件模式。閱讀 references/card-patterns.md 以取得現成的卡片變體(封面、內文、統計、圖表、檢查清單、結尾)。
3. 建立 HTML
使用 scripts/build.js 作為起點——它已編碼了佈局系統(基礎 CSS、標籤晶片、標題、分隔線、帶有高亮度範圍的內文、頁尾、河流波紋裝飾),並為每張卡片輸出一個 HTML 檔案到 cards/。將其複製到工作目錄中,並為此主題編輯卡片定義和主題顏色。不要從頭重寫佈局引擎。
4. 渲染為 PNG
執行 scripts/render.js(Playwright + Chromium,deviceScaleFactor 2 → 清晰的 800×800 PNG 到 out/)。一次性設定(如果尚未安裝 Playwright):npm install playwright && npx playwright install chromium。
5. 自我審查與修正循環(務必執行)
這是必需的,非選項——這是讓輸出感覺完整的原因。
- 回讀渲染後的 PNG(使用 Read 工具)並檢查每張卡片。
- 檢查:內文是否與頁尾重疊、空間不平衡、文字溢出/尷尬換行、對比度/可讀性、標籤與頁尾一致性、正確的頁碼與總數。
- 在
build.js中修正問題,重新渲染,並重新檢查受影響的卡片。 - 只有當整套卡片都乾淨無誤時才交付。請參閱
references/review-checklist.md以了解完整清單與常見修正方法。
6. 交付
儲存位置 — 根據上下文選擇輸出位置,使結果落在使用者會尋找的地方:
- 如果您在專案/儲存庫內工作(會話有專案根目錄——例如 git 儲存庫,或使用者明確在某個特定工作目錄中操作):將所有內容儲存在該專案根目錄下,路徑為
<project-root>/cardnews/<topic>/>。將中間產物也放在那裡(工作中的build.js、cards/*.html、out/*.png),以便卡片組可重現並可隨專案進行版本控制。這是存在專案上下文時的預設行為。 - 如果沒有專案上下文(一次性、臨時性請求,沒有工作儲存庫):儲存到全域、作業系統適用的位置 —
<home>/cardnews/<topic>/(適用於 Windows、macOS、Linux;避免硬編碼Downloads)。 - 如果使用者指定了位置,則優先遵循。
說明檔案儲存的位置。預設輸出僅為 PNG(根據規則 1,當儲存到專案時,再加上中間的 HTML)。僅在被要求時(或主動提供)才使用 scripts/make_pdf.py 建置 A4 PDF,該腳本會將每張卡片放在 A4 頁面上,左右邊距為零(卡片填滿頁面寬度),上下邊距相等——請閱讀其頁首註解以了解行為。
將工作檔案(build.js 等)保留在專案資料夾中,以便使用者可以調整文案並重新執行 node build.js && node render.js。
預設值(此技能的風格設定)
- 尺寸:800×800 正方形,2× 渲染比例。
- 每張卡片的結構:標籤晶片(編號 + 標籤)→ 標題 → 分隔線 → 帶有選擇性高亮度範圍的內文 → 統一頁尾(來源 · NN / 總數)。
- 封面與結尾:主題色全出血漸層,波浪圖案;結尾卡片帶有來源連結。
- 輸出:預設為 PNG;應要求提供 A4 PDF。
- 語言:韓文文案(技術術語/識別碼保留原文)。
參考資料
references/design-system.md— 色彩主題、CSS 代碼、組件結構。references/card-patterns.md— 可複製貼上的卡片變體與範例。references/review-checklist.md— 要驗證的項目以及如何修正每個問題。scripts/build.js— HTML 卡片建置器(佈局引擎 + 卡片定義)。scripts/render.js— Playwright HTML→PNG 渲染器。scripts/make_pdf.py— A4 PDF 組裝器(零側邊距,上下邊距)。