Html Slides To PPTX
编写可无损还原为 PPTX 的 HTML 幻灯片。先经引导式访谈确认样式/形式/结构并落盘 deck-brief,再生成完整目录结构(assets/theme.css、slides/*.html、playlist.json), 每页严格遵循 html-spec.md 规范,经 validate.js 预检零 ERROR 后用 convert.js 转成 PowerPoint。TRIGGER when: 用户要求"做PPT/幻灯片/slides/演示文稿"、"把内容做成 HTML幻灯片"、"生成可转PPTX的slides",或调用 /html-slides-to-pptx。DO NOT TRIG Skill: Html Slides To PPTX Owner: cqcmj74 Summary: 编写可无损还原为 PPTX 的 HTML 幻灯片。先经引导式访谈确认样式/形式/结构并落盘 deck-brief,再生成完整目录结构(assets/theme.css、slides/*.html、playlist.json), 每页严格遵循 html-spec.md 规范,经 validate.js 预检零 ERROR 后用 convert.js 转成 PowerPoint。TRIGGER when: 用户要求"做PPT/幻灯片/slides/演示文稿"、"把内容做成 HTML幻灯片"、"生成可转PPTX的slides",或调用 /html-slides-to-pptx。DO NOT TRIG Tags: latest:2.1.0 Version history: v2.1.0 | 2026-08-18T01:14:59.551
Rank
62
Safety
84
Downloads
995
Updated
Oct 11, 2026
Version
2.1.0
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 995 downloads reported by the source. Last updated 10/11/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 11, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 11, 2026
- Adoption signal
- 995 downloadsadoption · observed Oct 11, 2026
- Latest release
- 2.1.0release · observed Aug 18, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s179tv6cb45gbx621g7903gfqh8bd4tj:html-slides-to-pptx- Node.js workspace detected. Install dependencies securely: run `npm ci --ignore-scripts` to prevent post-install lifecycle triggers from running arbitrary code, then selectively audit the dependency tree.
- Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-cqcmj74-html-slides-to-pptx/snapshot"
Run-check
$0.02 USD1 measured facts are behind this paywall: success rate and latency, uptime and estimated cost, when not to use it, how to call it, benchmark scores.
Agents pay $0.02 in USDC. A card payment is $0.50, the smallest a card allows.
Documentation
CLAWHUB
160,000 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: html-slides-to-pptx
description: >-
编写可无损还原为 PPTX 的 HTML 幻灯片。先经引导式访谈确认样式/形式/结构并落盘
deck-brief,再生成完整目录结构(assets/theme.css、slides/*.html、playlist.json),
每页严格遵循 html-spec.md 规范,经 validate.js 预检零 ERROR 后用 convert.js 转成
PowerPoint。TRIGGER when: 用户要求"做PPT/幻灯片/slides/演示文稿"、"把内容做成
HTML幻灯片"、"生成可转PPTX的slides",或调用 /html-slides-to-pptx。DO NOT TRIGGER when:
只需单页HTML网页、或要做的是 reveal.js/Marp 等其他幻灯片格式。
version: 2.1.0
metadata:
openclaw:
requires:
bins:
- node
- npm
---
# html-slides · 可无损转 PPTX 的 HTML 幻灯片生成器(引导式访谈版)
## 核心原则
转换器(`scripts/convert.js` + 浏览器端提取管线)只**无损支持 HTML/CSS 的一个子集**。
每页 HTML 必须严格遵循 `reference/html-spec.md` —— 这是契约,不是建议。
写页面之前必须先完成 Step 1 访谈并让用户确认 `slides/deck-brief.md`。
## 首次使用:检查工具依赖
> 以下命令中的 `SKILL_DIR` 指本技能的根目录(即 SKILL.md 所在目录)。
> 技能加载时系统会显示 "Base directory for this skill: <路径>",用该路径替换 `SKILL_DIR`。
```bash
SKILL_DIR="<技能根目录,即 Base directory>"
ls "$SKILL_DIR/scripts/node_modules/playwright" >/dev/null 2>&1 \
&& echo OK || (cd "$SKILL_DIR/scripts" && npm install && npx playwright install chromium)
```
若输出 OK 则跳过安装;否则等待安装完成再继续。
## 工作流程(按顺序执行)
### Step 1 · 引导式访谈 → 需求确认卡
**读 `reference/interview-guide.md` 并严格执行**:5 阶段(定位→结构→视觉→版式→输出)+ 收尾确认卡,
共 **16 问 + 1 个大纲确认环节**,每问有默认值与智能跳过规则。配套查询:
- 叙事骨架:`reference/narrative-skeletons.md`(脚手架非模具;用户可选"自由结构")
- 色板预设:`reference/theme-presets.md`(5 套预设 + 自定义 hex 推导)
- 信息密度:`reference/density-tiers.md`(演讲/混合/阅读 三档参数)
- **内容深化:`reference/content-deepening.md`**(**素材形态 × 深度档**二维矩阵定做什么:
四步追问审素材 → 多角色 → 委员会审大纲;裸主题改出**假设清单**不做追问;
所有档位都跑**大纲级形式门禁**;大纲 v2 才进 Q5 确认)
**Step 1 执行顺序**:①读 interview-guide 的**推断总表**,从用户首句匹配 deck 族 → 一次定全轴推荐值
②按**依赖图**决定哪些问可跳 ③选路径(快通道 2-3 轮 / 标准 4-6 轮 / 深度 + 深化层)
④逐阶段抛问,置首项说明理由 ⑤深化层按矩阵执行 ⑥Q5 确认大纲 v2。
**任何路径都不跳 Q6 色板 与 Q5 大纲确认**(返工最贵的两个决定)。
访谈收尾:按 `assets/deck-brief.template.md` 生成确认卡展示给用户,
**用户确认后落盘 `slides/deck-brief.md`** —— 此后它是唯一执行事实源;
后续"改第 N 页/换色板"类迭代直接读它,不重访谈。
### Step 2 · 搭目录结构
在当前工作目录生成:
```
assets/theme.css # 按 brief 色板:复制 assets/presets/<选定预设>.css(自定义色则按推导值生成)
slides/NN-slug.html # 每页一个文件,两位数字前缀排序
slides/playlist.json # 从 assets/playlist.template.json 实例化,playlist 按顺序列全页面
slides/deck-brief.md # Step 1 落盘的需求确认卡
slides/deck-insights.md # 深化层详档(非快速档才有;模板 assets/deck-insights.template.md)
slides/deck-pages.md # 页级内容卡(所有档位都有;模板 assets/deck-pages.template.md)
slides/slides.config.json # 从 assets/slides.config.template.json 实例化(键见 scripts/config/default.config.js)
```
目录已存在时,保留用户已有文件,只补缺失项。
**slides.config.json 按 brief 填**(实例化 `assets/slides.config.template.json`):
```json
{
"design": {
"tier": "presentation | mixed | reading",
"minBodyPx": 14,
"fillThreshold": 0.85,
"airyPages": ["01-cover.html", "05-statement.html"],
"formProfile": "balanced",
"hedgePages": ["07-forecast.html"]
}
}
```
- 设计检查**默认就是开着的**(缺省 `presentation` + `balanced`);本文件的作用是按 brief
**校准**档位与豁免页,不是"开启开关"。整份文件缺失时按默认档跑,不会静默放行。
- `design.tier` 由 brief 使用场景映射(演讲→presentation/混合→mixed/阅读→reading);
决定_meta.json
{
"ownerId": "kn7af33xbszyq32pce2pa6f84n8bdfqy",
"slug": "html-slides-to-pptx",
"version": "2.1.0",
"publishedAt": 1787015699551
}scripts/package-lock.json
{
"name": "html-slides-tools",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "html-slides-tools",
"version": "1.0.0",
"dependencies": {
"playwright": "^1.61.1",
"pptxgenjs": "^4.0.1"
}
},
"node_modules/@types/node": {
"version": "22.20.1",
"resolved": "https://registry.npmmirror.com/@types/node/-/node-22.20.1.tgz",
"integrity": "sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q==",
"license": "MIT",
"dependencies": {
"undici-types": "~6.21.0"
}
},
"node_modules/core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz",
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
"license": "MIT"
},
"node_modules/fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/https": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/https/-/https-1.0.0.tgz",
"integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==",
"license": "ISC"
},
"node_modules/image-size": {
"version": "1.2.1",
"resolved": "https://registry.npmmirror.com/image-size/-/image-size-1.2.1.tgz",
"integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==",
"license": "MIT",
"dependencies": {
"queue": "6.0.2"
},
"bin": {
"image-size": "bin/image-size.js"
},
"engines": {
"node": ">=16.x"
}
},
"node_modules/immediate": {
"version": "3.0.6",
"resolved": "https://registry.npmmirror.com/immediate/-/immediate-3.0.6.tgz",
"integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
"license": "MIT"
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"license": "ISC"
},
"node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
"licensescripts/package.json
{
"name": "html-slides-tools",
"version": "3.0.0",
"description": "HTML slides -> PPTX converter + validator (bundled with the html-slides skill)",
"private": true,
"type": "commonjs",
"scripts": {
"test": "node test/golden.js verify",
"test:update": "node test/golden.js update",
"test:design": "node test/exemplar-checks.js && node test/threshold-parity.js && node test/generation-checks.js && node test/anchor-integrity.js",
"test:thresholds": "node test/threshold-parity.js",
"test:generation": "node test/generation-checks.js",
"test:anchors": "node test/anchor-integrity.js",
"validate": "node validate.js",
"convert": "node convert.js"
},
"dependencies": {
"playwright": "^1.61.1",
"pptxgenjs": "^4.0.1"
}
}scripts/test/FEATURE-COVERAGE.md
# 特性覆盖矩阵(FEATURE-COVERAGE) > golden fixtures 的"特性 → 锚定页"台账(2026-08-02 Phase G 建立)。 > **登记规则(硬约束)**: > 1. 新增转换器特性(基元/样式/元素/配置)时,必须指定锚定页并更新本表;无锚定页的特性不得合并。 > 2. 删除夹具页前,先查本表确认它不是某特性的唯一锚点。 > 3. 样张页(96-107、110-117、118-130)同时受 `test/exemplar-checks.js` 设计门禁(0 ERROR/0 WARN)。 > 4. **2026-08-06 第五轮 P5**:本表的锚点关系已由 `test/anchor-integrity.js` 变成**可执行断言** > —— 改样张设计时若换掉了承载特性的元素,守卫会失败(唯一锚点失效 = 致命)。 > 新增/换锚时**同步改该守卫的 ANCHORS 表**,否则台账与守卫脱节(守卫自身会警告)。 ### 样张双角色的已知张力(2026-08-06 定型) 样张页身兼"设计范本 + 转换锚点"两职。曾考虑让样张退出 L2/L3 基线以解耦,**经查证不可行**: `99-archetype-chart` 是 `data-chart:line` 的唯一锚点,`107-dashboard` 是 pie/doughnut/area 的唯一锚点, `112-funnel` 是 `data-shape="trapezoid"` 的唯一锚点 —— 退出即等于删除这些特性的转换覆盖。 实测澄清了成本结构:这 9 页**本来就不在 L3**(2026-08-05 瘦身:L3 只截含 capture 基元的页), 所以改设计的成本只有 L1+L2 重建,而那是"输出确实变了"的证据,不是冗余开销。 真正的风险不是重建成本,而是**改设计会静默摧毁转换覆盖**:实测把 99 页的 `data-chart` 换成纯文本后, 样张门禁 ✅、生成侧回归 ✅,只有 golden 报 diff —— 而"我重排了这页"的 diff 复核里重建基线是自然动作。 故结论:**保留双角色,用 `anchor-integrity.js` 守住锚点**,而不是拆分角色。 > 页面角色:fidelity 锚(01-21 精简页/游离页/特性页)= 转换保真;exemplar 样张(96-107、110-117、118-130)= 保真+设计纪律双锚。 > 2026-08-05 第三轮重构(布局丰富度):零管线改动;新增样张 110-117 锚定组 6 图示原型(23-30)与内联 SVG 图标。 > 2026-08-09 第七轮重构(咨询分析布局):零管线改动;新增样张 118-130 锚定组 7 分析论证原型(31-43)。 > 新增四个唯一锚点:`data-chart:scatter`→123、`data-shape="pie"`→120、`data-shape="diamond"`→122、td 级底纹→125。 ## 一、文字类 | 特性 | 锚定页 | 备注 | |---|---|---| | 斜体 `<i>/<em>` | 90-p0-features、49-four-layer、chip-market-share | 49-four/chip 是历史缺陷修复锚 | | 下划线 / 删除线 / 超链接 | 90-p0-features | run 级 | | run 级字体 fontFace | 90-p0-features、96-107(`.num`) | `.num` Inter 混排是真实场景锚 | | text-transform | 90-p0-features | uppercase/lowercase | | 上下标 `<sup>/<sub>` | 93-p2-sup-sub-geo | baseline 30000/-40000 | | run 级字距 charSpacing | 93-p2-sup-sub-geo | 与 box 级独立 | | 原生列表 `<ul>/<ol>` bullet | 91-p1-forms、01-cockpit 压测(临时) | LI 直接含文字挂 bullet;**2026-08-05 H11 修复**:旧写法 type+characterCode 永不产 buChar;现 UL 无 type、OL 用 style | | pre/code 空白保留 | 91-p1-forms | white-space:pre | | 竖排 writing-mode | 49-four-layer | 实验性 eaVert(基线 WARN) | | 混合字号行 | 98-statband、107-dashboard | 大数字+单位,行高按最大 run | | 500 字重退化 WARN | advice-for-newcomers、ai-trends-2026、four-revolutions | validate 基线锚 | ## 二、形状/装饰类 | 特性 | 锚定页 | 备注 | |---|---|---| | 纯色形状 / 圆角 / 正圆 | 全体 | 基础 | | 统一边框 | 02 等 | px→pt(0.5 倍) | | 非统一边框逐边细条 | 02、12 | 圆角共存 WARN 锚 | | 虚线/点线 dashType | 90-p0-features | dashed→dash,dotted→sysDot | | box-shadow 真实参数 | 07-journey-map、data-limit-boundary、90 | 历史缺陷修复锚(行为红线) | | 纯旋转 rotate | 90-p0-features、93-p2-sup-sub-geo | origin 居中约束 | | data-shape 预设几何 | 93-p2-sup-sub-geo、111(chevron/homePlate)、112(trapezoid+rotate)、116(triangle/trapezoid) | 15 种(白名单 80+) | | 不透明度 opacity 折算 | 全体(基础路径) | 形状填充折算 | | 内联 SVG 图标(截图) | 110/114/115/117(卡内嵌套)、113(环形箭头) | 2026-08-05;stroke 显式 hex;currentColor→空白(H7 怪癖) | | 组 6 图示原型 | 110 图标网格(23)/111 chevron 带(24)/112 漏斗(25)/113 循环(27)/114 辐射(28)/115 色带(30)/116 金字塔(26)/117 对比卡阵(29) | 2026-08-05 第三轮;exemplar 门禁 0/0 | | `data-shape="pie"` 扇形(Harvey ball) | **120-harvey-matrix**(唯一锚点) | 2026-08-09;圆饼打分格,与
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/cqcmj74/skills/html-slides-to-pptx",
"sourceUrl": "https://clawhub.ai/cqcmj74/skills/html-slides-to-pptx",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T20:44:41.235Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-cqcmj74-html-slides-to-pptx/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-cqcmj74-html-slides-to-pptx/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-11T20:44:41.235Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "995 downloads",
"href": "https://clawhub.ai/cqcmj74/html-slides-to-pptx",
"sourceUrl": "https://clawhub.ai/cqcmj74/html-slides-to-pptx",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T20:44:41.235Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "2.1.0",
"href": "https://clawhub.ai/cqcmj74/html-slides-to-pptx",
"sourceUrl": "https://clawhub.ai/cqcmj74/html-slides-to-pptx",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-18T01:14:59.551Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-cqcmj74-html-slides-to-pptx/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-cqcmj74-html-slides-to-pptx/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 2.1.0",
"description": "**Version 2.1.0 – Major structure and workflow update** - Added deck-pages.md (基于内容卡的逐页写作原则)、新的卡片模板(assets/deck-pages.template.md)与相关填卡流程 - 明确要求每页先填内容卡再写 HTML,每页出厂必须基于主题片段或样板页,不允空白页手写(assets/snippets/* 新增大量组件片段) - 色板用色纪律升级:强制所有色值来源于 theme.css 变量,页面禁止硬编码 hex - 视觉自查流程扩充到八项,新增内容卡兑付验证和可验证事实、出处核查等判据 - assets、scripts 目录下补充了丰富的测试原型页与工具(如 gen-ladder.js、validate/palette-checks.js) - 移除 skill-card.md,文档结构调整,整体规范升级",
"href": "https://clawhub.ai/cqcmj74/html-slides-to-pptx",
"sourceUrl": "https://clawhub.ai/cqcmj74/html-slides-to-pptx",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-18T01:14:59.551Z",
"isPublic": true
}
]
}Record generated Oct 12, 2026.
For crawlers
This page is free to read. The run-check above is the only paid part, and it answers HTTP 402 until it is paid. Everything else here is public.
- One record, as JSON: card, facts, snapshot, contract, trust.
- Every agent, one feed: /.well-known/ai-catalog.json
- What this site sells, and the price: /.well-known/x402
- Paid run-check: /api/v1/agents/clawhub-cqcmj74-html-slides-to-pptx/run-check
