mirror of
https://git.openapi.site/https://github.com/desirecore/market.git
synced 2026-06-06 04:30:42 +08:00
## 概述 / Summary 新增市场技能 **`guizang-ppt`**(归藏网页 PPT),vendored 自上游开源项目 [op7418/guizang-ppt-skill](https://github.com/op7418/guizang-ppt-skill)。 Add a new **market skill** `guizang-ppt` — generates single-file HTML horizontal-swipe slide decks (web PPT) in two visual systems (editorial "magazine × e-ink" / "Swiss International"). Vendored from the upstream open-source project. ## 变更内容 / Changes - `skills/guizang-ppt/`:SKILL.md(DesireCore frontmatter 覆盖层 + 上游正文)、`references/`(10)、`assets/`(2 模板 + motion.min.js + 9 张 webp)、`scripts/validate-swiss-deck.mjs`、`LICENSE`(AGPL-3.0)、`NOTICE.md`(署名与合规) - `skills/guizang-ppt/_desirecore/`:DesireCore 维护态(不随上游覆盖) - `frontmatter.yaml`:市场 frontmatter 覆盖层(i18n: zh-CN 源 + en-US 显示串,body 暂回退中文,留给 CI 翻译) - `upstream.json`:上游溯源(commit `014c572`、AGPL-3.0、作者 歸藏/op7418) - `scripts/vendor/guizang-ppt.mjs`:可复用的 vendor 更新脚本(`--src <本地路径>` 或 `--ref <tag>`) - `manifest.json`:`version` → `1.2.3`,`stats.totalSkills` → 25 ## 定位 / Positioning - **仅市场可选安装**:未加入 `builtin-skills.json`,不随客户端开机自动安装;用户在市场按需安装。 - 分类 `creative`;与已有 `pptx`(生成 .pptx 文件)区分:本技能生成 **HTML deck**。 ## 许可与署名 / License & Attribution 上游为 **AGPL-3.0**。本技能保留原 `LICENSE` 与作者署名(`NOTICE.md` + `metadata.author` + `market.maintainer`),作为聚合内容分发。 ## 校验 / Validation - `python3 scripts/i18n/validate-i18n.py skills/guizang-ppt` → `OK: no i18n issues found.` ## 手动更新流程 / Manual update 上游发版时:`node scripts/vendor/guizang-ppt.mjs --ref <tag>` → 核对 diff → 必要时 bump `_desirecore/frontmatter.yaml#version` 与 `manifest.json` → 提交。 --- 🤖 Generated with [Claude Code](https://claude.com/claude-code)
5.9 KiB
5.9 KiB
Swiss Layout Lock
本文件是瑞士主题的硬约束。它的目的不是增加灵感,而是防止生成时“看起来像 Swiss,但已经脱离原始模板”。
Golden Source
原始参考文件:
/Users/guohao/Documents/op7418的仓库/项目/Thin-Harness-Fat-Skills/ppt/index.html
瑞士主题生成时,除用户明确要求实验版式外,只能从下面登记的 22 个版式中选择。新增首页/尾页可以使用 Skill 里的 IKB ASCII 版本,但正文页必须来自这 22 个版式。
生成前硬规则
- 每个正文页都必须先选一个登记版式,并在
<section>上写data-layout="Sxx"。 - 不允许临时发明
P23/P24这类未出现在原始 22P 的正文结构。需要图片时,优先使用S22 Image Hero;多图时使用S15/S16的原始网格骨架做图片格改造,不要发明新的证据墙。唯一登记的交互扩展是S08 + Swiss Map Component,详见references/swiss-map-component.md。 - 顶部中文标题默认左对齐并贴近左上内容轴。除原始
S03/S09/S10这种 statement/split 版式外,不要把大标题放到页面水平中心。 - SVG 只能负责几何线条、圆、箭头、路径。不要在 SVG 里写可见文字;所有文字标签用 HTML 放在网格、卡片或 caption 里。
- 图片槽位和图片生成比例必须绑定。先确定版式和槽位,再生成图片。
登记版式
| ID | 原始页 | 名称 | 必须保留的骨架 | 图片规则 |
|---|---|---|---|---|
| S01 | 01 | Index Cover | 三行 cover-row,左大编号,右大标题 |
无 |
| S02 | 02 | Vertical Timeline + KPI | 顶部左对齐标题,中部 .timeline-v,底部 .kpi-row-4 |
无 |
| S03 | 03 | Split Statement | .slide.split 双半屏,左巨字,右灰底解释 |
无 |
| S04 | 04 | Six Cells | 顶部左对齐标题,下方 .sub-grid-3-2 六卡 |
可把卡片内部换成小图标,不放大图 |
| S05 | 05 | Three Layers | 顶部左对齐标题,下方 .stack-row 三大块 |
无 |
| S06 | 06 | KPI Tower | 左标题+右说明,下方不等高 KPI 塔 | 无 |
| S07 | 07 | Horizontal Bar | 左对齐标题,横向条形图 | 无 |
| S08 | 08 | Duo Compare | .duo-compare 两列 + 中线 |
无;地点/路线内容可使用 S08 + Swiss Map Component 替换右侧插槽 |
| S09 | 09 | Dot Matrix Statement | 大号 statement + 点阵装饰 | 无 |
| S10 | 10 | Split Closing | .slide.split 左巨字右列表 |
无 |
| S11 | 11 | Horizontal Timeline | 原始 grid-template-columns:auto 1fr 头部 + .timeline-h |
无 |
| S12 | 12 | Manifesto + Ink Banner | 大字 statement + 底部通栏 ink 条 | 无 |
| S13 | 13 | Three Forces | 左 ink hero 块 + 右 3 张卡 | 无 |
| S14 | 14 | Loop Form | 左 4 步列表 + 右几何 loop | SVG 禁止文字,标签改 HTML |
| S15 | 15 | Matrix + Hero Stat | 顶部左对齐标题,中段 6×2 矩阵,底部巨数 | 多图可改造矩阵格,同组统一 21:9 |
| S16 | 16 | Multi-card Brief | 顶部左对齐标题,下方 3×2 微卡 | 多图可改造卡片内容,同组统一 21:9 |
| S17 | 17 | System Diagram | 顶部左小标题+右段落,中部几何系统图,底部三列解释 | SVG 禁止文字,标签改 HTML |
| S18 | 18 | Why Now | 三列递进 + 底部巨数 | 无 |
| S19 | 19 | Four Cards | 顶部蓝线 + 四列均分 | 无 |
| S20 | 20 | Stacked KPI Ledger | 纵向账单式巨数 | 无 |
| S21 | 21 | Tech Spec Sheet | 大标题 + 三 KPI + 右下竖线矩阵 | 无 |
| S22 | 22 | Image Hero | 顶部全宽图 + 左上白块标题 + 下方三列 KPI | 主图按 21:9 生成,关键主体放中央安全区 |
登记扩展组件
S08 + Swiss Map Component
- 使用场景:地理、历史、城市路线、门店/校区/事件点位、人物住所关系。
- 版式身份:仍是
data-layout="S08",不是新正文页。 - 页面结构:顶部左对齐标题 + 左侧关系/说明卡片 + 右侧 MapLibre 地图卡片。
- 标记结构:点 + 连线 + HTML 卡片;SVG 只画 fallback 关系线,不写文字。
- 交互控制:右上角必须有
+/-/DRAG;默认禁用滚轮缩放和拖动,避免触发 PPT 翻页。 - 详细代码和数据契约见
references/swiss-map-component.md。
图片槽位规则
S22 · Hero Strip
- 生成比例:
21:9 - 图片用途:实拍场景、产品场景、UI 情景图。
- 生成提示词必须包含:
21:9 ultra-wide strip,subject centered in the safe middle area,no title, no footer, no page chrome, no logo, no border. - HTML 容器必须使用原始 S22 的顶部全宽图骨架;不要改成普通居中大图。
- 照片用
object-fit:cover;object-position:center 35%。如果是人像/会议场景,不要用top center。 - 信息图/UI 截图如果放 S22,必须重新生成接近
21:9,并用object-fit:contain或保证核心内容在中央 70% 安全区。
S15/S16 · Multi Image Grid
- 生成比例:统一
21:9或统一16:10,不要混用。 - 同一组图片必须同高、同宽、同一容器背景。
- 图片格必须吸附原始卡片网格,不要让图片自己决定宽高。
- 如果图片是按槽位重新生成的
s15-grid-21x9/s16-brief-21x9,容器必须用.frame-img.r-21x9铺满槽位,不要再加.fit-contain,也不要用固定height:18vh这类短槽把长图缩小。 .fit-contain只用于必须保留原始比例的用户截图或文字密集图片;一旦决定重生成图片,就应该按槽位比例重生成并铺满。- 如果原始截图比例不可控,先按
references/screenshot-framing.md做程序化比例适配;只有长截图、极窄截图或信息需要重构时,才用 GPT-M 2.0 重生成“截图再设计”。
禁止清单
- 禁止
text-align:center用在顶部中文大标题。 - 禁止将顶部标题写进右侧 7.8fr 栏,造成视觉居中。
- 禁止未登记正文页:例如临时
Swiss Image Split、Evidence Grid、三圆图自绘页。 - 禁止图片容器灰底包白底信息图。
- 禁止 SVG 中出现
<text>作为可见标签。 - 禁止图片默认
object-position:top center用于照片。