Meadow slides
以 Meadow 風格製作的簡報,透過一個小型 JSON 規範由腳本構建,確保每張投影片都與 Meadow 自己的銷售簡報使用相同的網格、字型級別和色彩。您只需編寫內容並選擇版面配置;腳本負責處理像素級細節,並在文字超出範圍時發出警告。
scripts/meadow_deck.py spec.json -> .pptx (+ --figma-json layout for Figma)
scripts/preview.py .pptx -> PNG per slide + contact sheet (LibreOffice or Keynote)
scripts/figma_render.js 繪製佈局轉儲中的一張投影片(透過 use_figma)
scripts/install_fonts.sh 為目前使用者安裝 Geist / Geist Mono / Syne 字型
references/layouts.md 每個版面配置、其欄位以及何時使用它 <- 在編寫 spec 前閱讀
references/design-system.md 版面配置背後的代號和規則 <- 在偏離預設版面配置時閱讀
references/image-prompts.md 用於簡報圖片的提示庫 <- 當簡報需要新圖片時閱讀
references/figma.md Figma 輸出配方及其注意事項 <- 僅在需要 Figma 輸出時閱讀
examples/sample-deck.json 一個包含主要版面配置的六頁投影片(虛構資料)
examples/skill-intro-deck.json 介紹此技能的簡報(README 圖片)
工作流程
- 先取得內容。 詢問(或從簡報摘要/舊簡報/文件中提取)每張投影片要傳達的訊息。如果使用者提供一個原始簡報需要重新排版,請逐字保留其文案:只更改他們要求變更的部分,並將刪減建議或新的標題作為單獨的建議提出。人們會注意到他們的文字是否被悄悄改寫。
- 擬定大綱。 每張投影片一個概念。將每張投影片對應到
references/layouts.md中的一個版面配置(封面 → 內容投影片 → 聯絡資訊是常見的順序)。當簡報超過約 6 張投影片或摘要不明確時,向使用者展示大綱;否則直接開始建構。 - 檢查數字。 商業簡報依賴預算、CPM/CPV、觀看次數。在排版前重新計算衍生數據(CPM = 預算 / 觀看次數 × 1000、總計、百分比)。如果數字對不上,仍然排版使用者提供的內容,並告知他們哪些數字不一致以及差異多少。客戶也會做同樣的算術。
- 編寫規範(
deck.json),請參閱範例和references/layouts.md。圖片使用簡短名稱(wave-05,meadow-night-02,people-02-camera-blue)或路徑。 - 建構:
python3 scripts/meadow_deck.py deck.json -o deck.pptx。 將每個WARN視為錯誤:縮短文案、拆分投影片或切換版面配置,然後重新建構。WARN行涵蓋文字溢出、使用 Syne 字型設定西里爾字母(無西里爾字符)、一張投影片上超過一個強調色板,以及在每次建構時都會執行的對齊閘門:- 文字在膠囊、晶片、按鈕或徽章中未光學置中(左右墨水內邊距和頂部大寫字母高度必須在 1.5px 內匹配);
- 內容超出 96px 側邊距(圖片溢出投影片邊緣是可以的);
- 邊緣近乎對齊,但相距 1–4px:將它們對齊或明確分開;
- 同一排或同一疊相同尺寸卡片之間的間距不均。
任何新的膠囊形狀元素都應透過
Slide.pill()建構,它會負責尺寸調整和置中;行內跟隨其他文字的文字(圖示在數字之後、單位、徽章)應使用flow=True建構,以便檢查其適應性,但不會受網格約束。
- 查看它。 最快且適用於任何地方:在建構時加上
--png preview/。它會使用 Pillow 繪製相同的版面配置,並以與 Keynote 相同的方式測量文字。要在 Mac 上檢查 PPTX 是否正確套用了字型,可以使用qlmanage -t -s 1600 -o preview/ deck.pptx透過系統渲染投影片 1(不會開啟任何應用程式)。python3 scripts/preview.py deck.pptx則使用 LibreOffice,或者作為最後手段使用 Keynote:Keynote 腳本可能會掛起並在使用者螢幕上留下對話方塊,因此不要在其上重試迴圈。開啟contact-sheet.png和單張投影片。檢查對齊、擁擠程度、照片上的對比度、空的半張卡片以及與頁尾的衝突。Office 渲染需要安裝字型(scripts/install_fonts.sh)。 - 交付 .pptx 檔案。提醒收件人需要安裝字型(
assets/fonts,所有字型在 OFL 許可下均為免費),或應使用--portable建構(見下文)。 - Figma(選擇性) 在對方要求時:遵循
references/figma.md。除非對方要求,否則不要寫入他人的 Figma 檔案。
使其看起來像 Meadow 的規則
這些是人們最先檢查的規則。版面配置已經套用了它們,因此這些規則主要在你編寫文案或修改版面配置時才會重要。
- 深色畫布,一個酸橙色板。 背景 #0E1013,卡片 #1A1D21,內部行 #23262B。酸橙 #D3FF31 標記投影片要講述的唯一重點(提案、結果、關鍵說明)。一張投影片上出現兩個酸橙色板會扁平化層級。不要僅僅為了有強調色而將一張隨機卡片塗成酸橙色:一張投影片可以完全沒有強調色。酸橙色背景上的文字應為接近黑色,絕不使用白色。
- 字型。 拉丁文標題使用 Syne 字型,即使在俄文簡報中也是如此(例如封面上的產品名稱「Meadow Slides」)。包含任何西里爾字母的標題則使用 Geist,因為 Syne 沒有西里爾字符。腳本會根據標題內容決定字型(封面、章節、陳述、投影片和聯絡資訊標題),因此請以您希望設定的語言編寫標題。內文始終使用 Geist,標籤使用 Geist Mono 大寫,獨立數字/KPI 使用 Syne(約 36px 起)。
- 網格。 96px 邊距,頂部標題區(mono 字型眉題 + 64px 標題),內容區域在 y=264 和 y=944 之間,頁尾 = logo +
NN / NN。間距 24,卡片圓角 24,內邊距 40。 - 用表面而非線條來區分。 卡片透過填色而非外框來區分。唯一有外框的元素是類別晶片(1px 白色 18% 透明度)。
- 文案中不出現競爭對手名稱。 僅在使用者提供時才使用客戶標誌/推薦。
- 排版: 腳本會使用 NBSP(不換行空格)將短介係詞/連詞和破折號連接起來,確保行尾不會是「в」、「и」、「—」。在俄文簡報中,將數字寫為
10 000+、$5 000、1,5 млн。 - 圖表 是實心的深色條在酸橙色上,或酸橙色在深色上,零基線,高度與數據成比例。半透明黑色疊加在酸橙色上會變得混濁,因此不要使用。
圖片
內建圖片:6 張抽象藍/酸橙波浪(wave-01…06)、3 張夜晚草地(meadow-night-01…03)、4 張生活風格人物照(people-…)以及白色平台圖示(instagram、tiktok、youtube、vk、telegram、x、linkedin、twitch)。波浪適合封面和章節頁,草地適合聯絡資訊和結束投影片,人物照適合聯絡資訊和圖文投影片。
當簡報需要新圖片時(例如內容工廠地板的主題封面、案例場景),從 references/image-prompts.md 編寫提示:品牌風格前綴 + 場景 + 該圖片位置應有的構圖註記。如果連接了圖片生成工具(例如 Magnific MCP 的 images_generate),則提供生成選項;否則將提示移交出去,並將回傳的檔案透過路徑方式接入規範。
輸出變體
--portable:將每個字重映射為同一系列的 Regular/。適用於 Google 幻燈片匯入或無法安裝字型的收件人。層級結構得以保留,但細節會丟失。--figma-json layout.json:為 Figma 渲染器傾印計算後的版面配置。- 演講者備註:為任何投影片添加
"notes"欄位。它們會被輸出到 PPTX 旁邊的deck-notes.md檔案中,因為 Keynote 拒絕開啟包含由 python-pptx 編寫的備註投影片的 PPTX 檔案。--embed-notes參數會將備註嵌入到 PPTX 內部,適用於僅會在 PowerPoint 中打開的簡報。 - PDF:加上
--pdf deck.pdf(為每張投影片產生完整的 1920×1080 渲染圖,文字不可選取)。當有人要求寄送或閱讀 PDF 時使用;不需要 Keynote 或 LibreOffice。
當版面配置不合用時
優先考慮將內容拆分到兩張投影片上,而不是硬塞進去。如果一張投影片確實需要新的排列方式,請在 scripts/meadow_deck.py 中新增一個 layout_<name> 函數,並使用相同的輔助函數(header、card、grid、bullets、kpi_tile、footer)和代號構建,使其繼承系統規則。在這樣做之前,請先閱讀 references/design-system.md。