基于 design tokens 的 PPT 生成技能,内置 21 套生产级审美方案(Apple 发布会/Apple.com/Apple macOS 26 Liquid Glass/原研哉极简/中国水墨/国风故宫/赛博朋克绚彩/梵高油画/达芬奇手稿/小红书时尚奶油胶片等)
Design tokens + 11 页面模板 + 21 套生产级审美方案 — 青岛火一五信息科技有限公司
版本脚本能力对标 Gammav3.3anti_slop_audit.py wcag_audit.py charts.py pptx_critique.py反 AI Slop 15 红线 + WCAG AA + 真数据图 + 4 档自评我们独有v3.4prompt_to_deck.py自然语言 prompt → JSON deck(Claude API + cache)Gamma 60 秒生成v3.5smart_layouts.pytimeline / pyramid / funnel / steps 4 种 PNGGamma Smart Layoutsv3.6ai_image.pyUnsplash + Pexels + Placeholder 3 providerGamma Imaginev3.7brand_init.pyLogo → 主色提取 → brand-pack.jsonGamma brand kitv3.8web_export.py url_import.pyscroll-snap HTML 发布 + URL 抓内容转 deckGamma publish/importv3.9remix.py受众/语言/语气改写(6 audiences × 7 langs × 5 tones)Gamma Remixv4.0auto_critique.py一键 quick/deep/full 评审 + Markdown 报告 + PNG 截图我们独有
bash
export ANTHROPIC_API_KEY='sk-ant-...'
# 1. prompt → deck
python3 scripts/prompt_to_deck.py "做一份 8 分钟产品发布演讲" \
--output /tmp/d.json --build /tmp/d.pptx
# 2. 改受众
python3 scripts/remix.py /tmp/d.json --audience board \
--output /tmp/board.json --build /tmp/board.pptx
# 3. 发布为网站
python3 scripts/web_export.py /tmp/d.json --output /tmp/site.html
# 4. 自动评审
python3 scripts/auto_critique.py --deck /tmp/d.json --mode full \
--output-dir /tmp/critique/
pptx_animate.py — 给现有 .pptx 加智能转场#bash
python3 scripts/pptx_animate.py /tmp/d.pptx --style apple-keynote \
--deck-json /tmp/d.json --output /tmp/animated.pptx
4 种风格预设(OOXML <p:transition> 直接注入):
apple-keynote — push + section wipe + quote fademinimal-fade — 全 slide fade,克制dynamic-slide — cover + push 活泼cinematic — cover + fade 电影感按 slide type 智能选转场(hero_cover→cover 类 / section_divider→wipe / quote_card→fade / 默认 push)。 对标 ChatPPT "全网唯一智能动画引擎",但本地实现,零云端依赖。
pptx_edit.py — 加载现有 .pptx → AI 改写 → 输出#bash
# 一条龙 AI 改写
python3 scripts/pptx_edit.py rewrite /input.pptx \
--instruction "把所有标题改简洁,加 Apple 发布会的克制感" \
--output /improved.pptx
# 提取 → 人工编辑 → 写回(不依赖 LLM)
python3 scripts/pptx_edit.py extract /input.pptx --output /tmp/edit.json
# (人工改 /tmp/edit.json 的 paragraphs[].text)
python3 scripts/pptx_edit.py apply /input.pptx --edits /tmp/edit.json \
--output /improved.pptx
工作原理:python-pptx run-level 替换文字, 保留所有 formatting(字体 / 颜色 / 字号 / 段落对齐)。对标 ChatPPT Office 插件模式,但走命令行 + OpenClaw 调用,更适合企业批量处理。
实测:6 张 slide deck → extract 30 paragraphs → 改 1 段 → apply → 再 extract 验证改动落实 ✓
speaker_notes.py — 自动生成讲解词写入 .pptx 备注层#bash
python3 scripts/speaker_notes.py /tmp/d.pptx --tone conversational \
--seconds-per-slide 60 --output /tmp/d-with-notes.pptx
5 种语气: formal / conversational(默认)/ passionate / storytelling / professor。120 字/分钟换算字数(60s = ~120 字)。一次 Claude API 批量生成全 deck 演讲稿,写入 .pptx notes 层,演示模式可看到。
slide_polish.py — 10 种局部文案改写模式#bash
# 改一张 slide
python3 scripts/slide_polish.py /tmp/d.json --slide 3 --mode refine \
--output /tmp/d-polished.json --build /tmp/d-polished.pptx
# 只改所有 slide 的标题
python3 scripts/slide_polish.py /tmp/d.json --field title --mode shorten -o /tmp/x.json
10 模式( --list-modes 看全表):
refine / shorten / expand / rewriteadd-data / add-quote / add-jokeemphasize / metaphor / elevatebash
# Word 文档 → deck
python3 scripts/docx_import.py report.docx --output /tmp/d.json --build /tmp/d.pptx
# XMind 思维导图 → deck(中心主题→封面,一级分支→章节,二级→列表项)
python3 scripts/xmind_import.py mindmap.xmind --output /tmp/d.json
# PDF → deck(PyMuPDF 优先,fallback pypdf)
python3 scripts/pdf_import.py whitepaper.pdf --output /tmp/d.json
实测:
--print-extracted 不调 LLM 验证抽取流程。
类别脚本能力对标🆕 v5.0 LLM providerllm_provider.py6 backend 抽象(anthropic/openai/deepseek/qwen/doubao/openclaw)国内合规生成入口prompt_to_deck.py自然语言 → JSON deck(cache 90% token 省)Gammaurl_import.pyURL → deckGammadocx_import.pyWord → deckChatPPTxmind_import.pyXMind → deck(新老格式都支持)ChatPPTpdf_import.pyPDF → deck(PyMuPDF 优先 / pypdf fallback)ChatPPT设计 + 视觉smart_layouts.pytimeline / pyramid / funnel / steps 4 种Gamma Smart Layoutsai_image.pyUnsplash / Pexels / Placeholder 3 providerGamma Imaginecharts.pymatplotlib bar/line/pie/area 真数据图Gammabrand_init.pylogo → 主色 → brand-pack.jsonGamma brand kit改写工具remix.py6 audiences × 7 langs × 5 tonesGamma Remixslide_polish.py10 模式 polish(refine/shorten/add-data/...)ChatPPT 文本辅写pptx_edit.py加载现有 pptx → AI 改写 → 输出(保留 formatting)ChatPPT Office 插件speaker_notes.py5 种语气演讲稿写入 .pptx notes 层ChatPPT 演讲稿效果增强pptx_animate.py4 种动画风格(OOXML transition 注入)ChatPPT 动画引擎导出web_export.pyscroll-snap HTML 浏览体验Gamma publishimage_export.py长图 / 九宫格 / 横排走廊ChatPPT 公众号video_export.pyMP4 + BGM 淡出ChatPPT 视频号审计anti_slop_audit.py15 红线机器化校验独有wcag_audit.pyWCAG 2.2 AA 对比度独有pptx_critique.py auto_critique.py4 档审美档位 + 6 维评审独有
bash
# Provider 任选其一(v5.0 支持 6 种)
export PPT_LLM_PROVIDER=anthropic # 或 openai / deepseek / qwen / doubao / openclaw
export ANTHROPIC_API_KEY='sk-ant-...' # 或对应 provider 的 env key
# 多源输入 → JSON
python3 scripts/prompt_to_deck.py "做一份发布会演讲" -o /tmp/d.json
# 或 docx_import / xmind_import / pdf_import / url_import
# 改写优化 → JSON
python3 scripts/slide_polish.py /tmp/d.json --mode shorten -o /tmp/d2.json
python3 scripts/remix.py /tmp/d.json --audience board --lang en -o /tmp/board-en.json
# 出 PPTX
python3 scripts/create_pptx_combined.py --spec /tmp/d.json --pack apple-light -o /tmp/d.pptx
# 加动画 + 演讲稿
python3 scripts/pptx_animate.py /tmp/d.pptx --style apple-keynote -o /tmp/d-a.pptx
python3 scripts/speaker_notes.py /tmp/d-a.pptx --tone passionate -o /tmp/d-final.pptx
# 多形态导出
python3 scripts/web_export.py /tmp/d.json -o /tmp/site.html
python3 scripts/image_export.py /tmp/d-final.pptx --layout vertical -o /tmp/longpic.jpg
python3 scripts/video_export.py /tmp/d-final.pptx --bgm m.mp3 -o /tmp/d.mp4
# 自动评审
python3 scripts/auto_critique.py --deck /tmp/d.json --mode full -o /tmp/critique/
参照 huo15-openclaw-frontend-design v4.7 / huo15-openclaw-design-critique v2.0,把 PPT 也带入 4 档审美档位识别(AI-Slop / Junior / Senior / Master)。
bash
# 1. 反 AI Slop 红线自检(15 条机器化校验,参照 frontend-design)
python3 scripts/anti_slop_audit.py # 全部 21 套 pack
python3 scripts/anti_slop_audit.py apple-light # 单 pack 详情
python3 scripts/anti_slop_audit.py --json --fail-on-violation # CI 模式
# 2. WCAG 2.2 AA 文字对比度自检(每对 fg/bg ratio ≥ 4.5)
python3 scripts/wcag_audit.py
python3 scripts/wcag_audit.py apple-keynote
# 3. matplotlib 真数据图表(替代 CSS 假产品图,反 AI Slop R5)
python3 scripts/charts.py bar --pack apple-light \
--title "营收增长" --xlabel "季度" --ylabel "营收(万元)" \
--data "Q1=120,Q2=180,Q3=240,Q4=320" \
--output ./chart.png
# 支持 bar / hbar / line / pie / scatter / area;中文字体自动 fallback
# 也可以 Python 直接用:from charts import render_chart
# 4. 设计自评(综合 anti-slop + wcag,给 4 档定位 + Keep/Fix/Quick Wins)
python3 scripts/pptx_critique.py --pack apple-light --deep
python3 scripts/pptx_critique.py --all # 21 套 pack 综合排名
档位数量pack🏆 Master (≥90)19apple-keynote / apple-light / liquid-glass / muji / ink-wash / guofeng / tech-neon / tech-minimal / cyberpunk-vivid / van-gogh / da-vinci / xhs-fashion / memphis / bauhaus / wes-anderson / xiaohongshu-vintage / jobs-dark / xiaohongshu / xiaohongshu-portrait✅ Senior (75-89)2morandi (80) / xiaohongshu-creator (78.2) — 流派必然的低对比度,仅适合极简静态展示⚠️ Junior / ❌ AI-Slop0(v3.3 修了 4 个 pack 的 Inter 字体 + tech-minimal 紫色 accent,全员脱离低档)
#禁用项校验方式1Inter / Roboto / Arial / system-ui 字体display_font / body_font 字段比对禁用列表2紫色调 accent(H ∈ [240°, 300°],S>40%)hex → HSL 换算判定3emoji 当图标字段含 emoji codepoint 范围4border-radius 默认 12 / 16pxcard_radius pt 值检测6#121212 暗黑 + 紫主题bg + accent 联动8iOS 系统色直接套用(#007AFF 等)accent 黑名单匹配10backdrop-blur 玻璃形态滥用glass / frosted 必须 explicit 命名11AI 渐变模糊背景(紫粉蓝青)conic-gradient 紫粉关键词
能力来源 skillPPT 怎么用6 维深度评审huo15-openclaw-design-critique v2.0导出 slide 为 PNG → 跑 design-critique → 拿对标差距8 流派 design tokenshuo15-openclaw-frontend-design v4.7复用 6 大美学方向(Bold-Minimal / Editorial / Brutalist 等)多方向并行对比huo15-openclaw-design-director v3.0一题三方向:选 3 个不同流派 pack 各出一份 PPT品牌资产 5 步huo15-openclaw-brand-protocol v1.0写 PPT 前先 Ask/Search/Verify 品牌官方定位 + 注入 Theme
v2.x 是「色卡游戏」——只改 primary/accent 两个颜色就叫一个新风格。v3.0 重写成真正的 设计系统:
text
StylePack = Palette + Typography + Spacing + Elevation + Decoration + Canvas
每一层都是独立的 tokens,单一风格对应一整组 tokens。例如「Apple 发布会」不只是「黑底」,而是:
#000000 底 + 4 级灰阶文字 + Apple 蓝 #0A84FFv3.1 在 Decoration 层追加了 六件套科技装饰,每个 pack 都能独立开关:
装饰作用gradient_bg背景渐变(取代纯色),给 slide 加深度accent_gradienthero/section/stat 大字做渐变文字(Keynote/PowerPoint 端显示,Impress 回落纯色)grid_overlay / dot_grid细线网格或点阵背景层,赛博 / Vercel 的视觉招牌glow_accent强调色大字周围叠多层半透明椭圆模拟辉光corner_marks四角 L 型取景框刻度dev_badge左下等宽字体版本戳( BUILD · 2026.4.24 / v2026 · BUILD 1337)
科技风由此而来——每张 slide 都能直接当品牌海报/社媒头图使用。
pack key风格适用场景apple-keynote(别名 apple, 苹果, 发布会)Apple 发布会暗场新品发布、融资路演、重磅主题apple-light(别名 苹果白, 苹果官网)Apple.com 白场产品介绍页、功能说明、官网风xiaohongshu-creator(别名 博主, 博主风, 生活博主, 奶油博主)小红书博主(奶油生活系)博主笔记、种草分享、温度叙事xiaohongshu-vintage(别名 复古, 胶片, 复古胶片)小红书博主(复古胶片)旅行手记、文艺向、生活美学tech-neon(别名 tech, neon, 科技, 科技风, 霓虹, 赛博, 赛博朋克, cyberpunk)**科技霓虹(赛博黑蓝)**AI 产品发布、黑客马拉松、技术 roadshowtech-minimal(别名 vercel, linear, saas, 极简科技, 暗黑极简)**科技极简(Vercel/Linear 风)**SaaS 产品主页、DevTool 推销、基础设施介绍
#000000(不是深蓝!)+ 白灰文字 + Apple 品牌蓝#F5F5F7 + 链接蓝 #0071E3#FBF7F0 底 + 焦糖咖 #3E2E1F 主文字 + 鼠尾草绿 #9FAE8B 点缀#F2EAD9 + 深栗咖 #4A3526 文字 + 雾霾蓝 #A8B8C6 accent#050510 底 + 冷灰蓝文字 + 电青 #00D9FF 主 accent + 电紫 #7C3AED 辅 accentBUILD · 日期 dev badge + 等宽小字 metadata#00D9FF → #7C3AED(电青→电紫),PowerPoint/Keynote 下 hero 大字显示渐变#0A0A0F 底 + 暖白文字 + 电紫 #8B5CF6 单色 accentV2026 · BUILD XXXX 等宽版本戳 + 无四角刻度(更克制)#1F1F28 + 轻量圆角 0.1"——Vercel/Linear 文档感template key(type)用途别名hero_cover封面大字页(eyebrow + title + subtitle + footnote)cover``section_divider分章大字页(编号 + 章节标题 + 副标)section``big_stat单数字大字页(Apple "2B" 招牌页)stat, big_number``kpi_triple3 宫格 KPI 卡(数字 auto-fit 避免 99.97% 溢出)kpi, kpi_card``quote_card引用金句卡(大引号 + 引文 + 作者)quote``content_list编号/要点列表list``compare_columns左右对比(before/after, 方案 A/B)compare, vs, before_after``product_shot产品摄影页(大图 + 侧栏叙事)product, image, gallery``timeline时间线(横向多节点)story``call_to_action封底行动号召(大字 + CTA + 联系方式)cta, end, thanks, contact``code_block 🆕代码块展示页(等宽字体 + 行号 + macOS 圆点 + filename tab + 关键词上色)code
所有模板自动:
StylePack 的 tokens 绘图 — 换 pack 整套风格变decoration 切换布局 — 居中/左对齐/accent bar/装饰线 都由 pack 控制hero_cover / section_divider / big_stat 会自动叠加 glow halo + dev badge + accent gradient(Keynote/PowerPoint 渲染端)json
{
"year": "2026",
"slides": [
{ "type": "hero_cover",
"eyebrow": "INTRODUCING",
"title": "M4 Ultra.",
"subtitle": "地球上最强的芯片。",
"footnote": "Apple · Cupertino · 2026" },
{ "type": "section_divider",
"number": "01",
"title": "Performance",
"subtitle": "性能" },
{ "type": "big_stat",
"caption": "CPU PERFORMANCE",
"value": "2x",
"unit": "比 M3 Ultra 快",
"footnote": "基于实际应用工作负载",
"accent": true },
{ "type": "kpi_triple",
"title": "重要数字",
"en_sub": "Key Metrics",
"items": [
{ "value": "192", "label": "GB 统一内存", "caption": "整张内存池共享" },
{ "value": "80B", "label": "晶体管", "caption": "3nm 工艺" },
{ "value": "4TB/s","label": "内存带宽", "caption": "AI 推理飞起" }
] },
{ "type": "quote_card",
"quote": "One more thing…",
"author": "Tim Cook",
"role": "Apple CEO" },
{ "type": "content_list",
"title": "我们做了什么",
"en_sub": "What We Did",
"numbered": true,
"items": [
{ "label": "重构设计系统", "desc": "把审美分解成 tokens" },
{ "label": "10 个语义模板", "desc": "hero / section / stat / ..." }
] },
{ "type": "compare_columns",
"title": "升级对比",
"en_sub": "Before vs After",
"emphasize": "right",
"left": { "label": "BEFORE", "title": "色卡游戏", "items": ["..."] },
"right": { "label": "AFTER", "title": "审美方案", "items": ["..."] } },
{ "type": "product_shot",
"title": "产品页",
"kicker": "NEW",
"subtitle": "Apple.com 风的大图 + 侧栏叙事",
"bullets": ["图占大块面积", "文字简洁克制"],
"image": "/tmp/shot.png",
"layout": "right" },
{ "type": "timeline",
"title": "产品演进",
"en_sub": "Timeline",
"events": [
{ "time": "2024", "label": "v1.0", "desc": "乔布斯暗蓝" },
{ "time": "2026", "label": "v3.0", "desc": "tokens + 4 pack" }
] },
{ "type": "code_block",
"title": "Quickstart",
"en_sub": "5 LINES OF CODE",
"filename": "app.py",
"language": "python",
"code": "from synapse import Client\n\nclient = Client(api_key=\"sk-...\")\nresp = client.chat(model=\"synapse-ultra\", messages=[{\"role\": \"user\", \"content\": \"Hi\"}])\nprint(resp.content)",
"highlight_lines": [4],
"caption": "pip install synapse-ai · 官方 Python SDK" },
{ "type": "call_to_action",
"title": "Thank You.",
"subtitle": "一起做有设计感的幻灯片",
"cta": "hello@huo15.com",
"footnote": "火一五 · openclaw-ppt v3.1" }
]
}
filename:文件名标签(如 app.py)language:语言提示,仅用于 UI 显示( python / shell / ts / go / ...)code:原始代码字符串( \n 分行,保留缩进,自动用不换行空格还原)highlight_lines:要高亮的行号数组(1-based),会在该行涂一层 accent_softcaption:代码块下方小字说明bash
# 列出所有 pack
python3 scripts/create-pptx.py --list-packs
# 列出所有 template
python3 scripts/create-pptx.py --list-templates
# 1. 按 JSON 生成完整 deck(推荐)
python3 scripts/create-pptx.py \
--pack apple-keynote \
--spec ./deck.json \
--output /tmp/deck.pptx
# 2. 快速试样封面
python3 scripts/create-pptx.py \
--pack 博主风 \
--cover "关于做幻灯片这件小事|写给刚入行的小伙伴" \
--year 2026 \
--output /tmp/cover.pptx
# 3. 老的 --style 兼容(等价于 --pack)
python3 scripts/create-pptx.py --style jobs-dark --spec deck.json -o out.pptx
公司名解析顺序: --company > ~/.huo15/company-info.json > 青岛火一五信息科技有限公司(默认)。
examples/decks/ 提供 6 份对应 6 套 pack 的完整样例:
文件pack讲什么apple-keynote-launch.json``apple-keynoteApple "M4 Ultra" 发布会风 6 页apple-light-product.json``apple-lightOpenClaw Enhance 产品介绍 5 页xhs-creator-vlog.json``xiaohongshu-creator博主笔记「关于做幻灯片这件小事」5 页xhs-vintage-travel.json``xiaohongshu-vintage青岛老城旅行手记 6 页tech-neon-ai-launch.json 🆕tech-neonAI 模型发布会 "Synapse AI" 10 页(含 code_block)tech-minimal-saas.json 🆕tech-minimalVercel 风 SaaS 产品 pitch 7 页(含 shell 部署 code_block)
对应的渲染预览放在 examples/previews/*.png(共 39 张)。科技风 deck 的任意单张都可以直接导出当品牌海报或 LinkedIn/小红书头图使用。
想要的效果选发布会大字 / 新品宣发 / 投融资路演apple-keynote产品介绍页 / 官网风 / 功能说明apple-light博主笔记 / 种草分享 / 温度叙事xiaohongshu-creator旅行手记 / 文艺向 / 生活美学xiaohongshu-vintageAI/大模型发布会 · 赛博科技海报 · 黑客马拉松 · 技术 roadshow**tech-neonSaaS 主页 · DevTool pitch · B 端企业软件 landing · Vercel/Linear 质感tech-minimal**稳妥正式汇报(兼容 v1.x)jobs-dark小红书品牌红 Feed 帖(兼容 v2.x)xiaohongshu / xiaohongshu-portrait
科技风两兄弟的区别:
tech-neon = 品牌海报级 装饰全开(渐变背景 + 网格 + 四角刻度 + glow halo + dev badge + 等宽 metadata),电青/电紫双 accent,适合 对外宣发tech-minimal = 产品官网级 克制装饰(点阵 + 微光 + 左下版本戳),单色紫 accent,适合 对内汇报/产品主页pptx_toolkit.fit_text 自动测宽 + 字号自适应--pack liquid-glassshow_footer=False 关闭(apple-keynote 默认关)text
StylePack
├── Canvas 画布尺寸(默认 13.33×7.5" 16:9)
├── Palette 3 级背景 + 4 级文字 + accent + accent_soft + border/divider
├── Typography display/body/mono 三字体 stack + 6 级字号阶梯 + 字重 + 字距 + 行高
├── Spacing 8pt grid — gutter/stack_sm/md/lg/xl + margin_x/margin_x_hero
├── Elevation card_radius + stroke + 假阴影(python-pptx 无真阴影)
└── Decoration cover 对齐、accent bar、tag_style、stat_hero_size、image_treatment
▼ v3.1 新增六件套科技装饰字段:
├── gradient_bg: (from, to, angle) 对角线性渐变铺满底板
├── accent_gradient: (from, to) 大字文字渐变(PowerPoint/Keynote 端)
├── grid_overlay / grid_* 细线网格层(色/间距/粗细可调)
├── dot_grid / dot_* 点阵背景层(替代 grid)
├── glow_accent / glow_strength accent 大字辉光 halo
├── corner_marks / corner_* 四角 L 型取景框刻度
├── dev_badge / dev_badge_template 左下等宽版本戳({year}/{date}/{build})
├── mono_font / mono_fallbacks JetBrains Mono / Menlo / Monaco stack
└── scanline / scanline_color 水平扫描线(CRT 怀旧)
python-pptx 官方 API 不支持字距。v3.0 在 templates/helpers.py::_set_run_spacing 里用 OOXML XML 注入 <a:rPr spc="N">,单位是 1/100 pt。hero 大字用 -3% em(收紧),衬线字用 +2% em(展开)。
hero/section/big_stat/cta 的文本在 fit_font_size(text, width, base_size) 里自动缩放,防止 CJK 长文本换行撞副标题。宽度估算按 CJK 1.1em / 大写 0.75em / 小写 0.62em / 标点 0.38em,留 12% 安全余量。
xhs-creator 开启 use_fake_shadow=True,在卡片下方偏移 0.06" 画一个比卡片色深的色块模拟阴影。python-pptx 没有真阴影 API。
--style 参数保留,等价于 --packjobs-dark, xiaohongshu, xiaohongshu-portrait)仍可用en_subtitle 自动映射到 en_sub, sub 自动映射到 subtitlecover/section/list/quote/end 仍能跑,走 templates 注册表的别名六件套装饰都通过 OOXML XML 直接注入实现(python-pptx 的 dataclass API 覆盖不全)。核心函数在 templates/helpers.py:
函数实现add_gradient_rect先画矩形,再把 p:spPr 下的 a:solidFill 替换成 a:gradFill(双色 stop + 方向角)apply_text_gradient给 run 的 a:rPr 注入 a:gradFill(覆盖 a:solidFill),实现渐变文字add_glow_halo在大字周围叠 N 层椭圆,每层递减 alpha 值(通过 a:srgbClr/a:alpha),模拟发光_draw_grid_overlay按 grid_spacing 铺横竖细矩形 —— 纯色矩形比 line shape 更稳(LibreOffice 渲染一致)_draw_dot_grid按 dot_spacing 铺 OVAL,中性色 + 小尺寸 —— Vercel/Linear 招牌_draw_corner_marks四角各画 2 个 L 型方块,拼出取景框add_dev_badge左下固定位置 mono textbox, {year}/{date}/{build}/{n} 模板插值
已知限制:
apply_text_gradient 只在 PowerPoint/Keynote 下可见;LibreOffice/Impress 渲染会回落成 solid(因为 Impress 不支持文字 gradFill)——生成 PDF 预览时 hero 大字看上去是单色 accent,但实际 pptx 打开在 mac Keynote/Windows PowerPoint 下会显示渐变。glow_accent 的 halo 用多层半透明椭圆模拟,不是 PowerPoint 真正的 glow effect(python-pptx 没暴露 effect API)。视觉效果在 PDF/PNG 预览下接近真 glow。new_slide 里按顺序绘制),不会遮挡正文。详细 changelog 见 git log。当前主要里程碑: