Zan Html To Ppt logo

Zan Html To Ppt

Organization
studio-yebisu
zan-html-to-ppt

把 guizang-ppt-skill 生成的 HTML 横向翻页 deck 转成 deck.pdf 和 deck.pptx,供线下演讲、加速器/评委上传、印刷等场子使用。**只要用户提到 HTML deck 转 PPT、deck 导出 PowerPoint、网页 PPT 转 pptx、HTML 转 PowerPoint、把幻灯片/演讲材料/演示文件做成离线版、需要 .pptx 上传,就用这个 skill**,即使用户没说 "guizang" 字样。产出是图片型 PPTX(每页一张 PNG 满版,视觉 100% 还原但内文不可编辑)。

Overview

Publisherstudio-yebisu
Repositoryyaoyorozu-ai-toolbox-slides
Skill namezan-html-to-ppt
Stars
10
Forks
2
Bundled files
5
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 5 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by studio-yebisu on GitHub. Read the source before you install it.

Installation

Install the Zan Html To Ppt AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/studio-yebisu/yaoyorozu-ai-toolbox-slides/tree/main/examples/repositories/html-to-ppt-pdf/source/upstream
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/studio-yebisu/yaoyorozu-ai-toolbox-slides.git /tmp/yaoyorozu-ai-toolbox-slides
mkdir -p .claude/skills
cp -r /tmp/yaoyorozu-ai-toolbox-slides/examples/repositories/html-to-ppt-pdf/source/upstream .claude/skills/zan-html-to-ppt
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Zan Html To Ppt in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Zan Html To Ppt on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Zan Html To Ppt is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

zan-html-to-ppt

把 guizang-ppt-skill 出来的横向翻页 HTML deck 转成线下能用的 PDF + PPTX。 原理:Playwright 控 Chromium 逐页截图,封装成多页 PDF(pdf-lib)和图片型 PPTX(pptxgenjs)。

这个 Skill 做什么

输入一个 guizang-ppt-skill 风格的 HTML deck(横向翻页、单文件、<section class="slide"> 结构),产出三份离线演示资产:

  • <out>/deck.pdf —— 多页 PDF,每页 16:9 满版。投影 / Preview / Acrobat 直接全屏播。
  • <out>/deck.pptx —— 每页一张 PNG 满版背景的 PPTX(图片型)。可上传任何 PPT 平台。
  • <out>/frames/slide-NN.png —— 每页原始 PNG,默认 5760×3240(--scale 3)。

工作流

Step 1 · 问清必要信息(动手前必做)

向用户问清:

  1. deck 位置(三种之一,必填):
    • 已经在跑的 http URL,例 http://localhost:8810/deck/
    • 本地 HTML 文件路径,例 /path/to/deck/index.html(skill 自动起 server)
    • 本地目录(默认找 index.html)
  2. 输出目录(可选,默认 ./out,建议建一个新目录避免覆盖旧产物)
  3. 清晰度 / 比例(可选,默认 --scale 3 出 5760×3240 超清;文件嫌大可降到 --scale 2)

Step 2 · 装依赖

bash
bash <SKILL_ROOT>/scripts/setup.sh

幂等。首次跑会装 npm 依赖 + Chromium(~150MB,1–2 分钟,告诉用户在装别静默等);之后秒过。

Step 3 · 跑主脚本

bash
node <SKILL_ROOT>/scripts/build.mjs <input> --out <output-dir>

参数:

参数默认说明
<input>必填URL / 本地 HTML 文件 / 本地目录
--out <dir>./out输出目录
--width <px>1920CSS 视口宽(影响布局基准)
--height <px>1080CSS 视口高
--scale <n>3deviceScaleFactor。3 出片 5760×3240(超清);糊就保持 3,文件嫌大降到 2
--wait <ms>2500每页 settle 的上限(不是固定睡这么久)。low-power 下入场动画被关,通常 ~300ms 就截完;只有动画/字体没跑完才会等到这个上限。某页缺内容就调大
--format pdf,pptx都出输出格式(逗号分隔)

成功输出长这样:

🌐  http server :60199  root=/path/to/web
📍  Open: http://localhost:60199/deck/
📐  Viewport 1920×1080 · scale=3× (出片 5760×3240) · wait=2500ms · out=/path/to/out
🎞  8 slides
  ✓ 1/8
  ✓ 2/8
  ...
📄  deck.pdf
📊  deck.pptx
✅ Done → /path/to/out/

Step 4 · 报告产物

告诉用户:

  • <out>/deck.pdf 路径
  • <out>/deck.pptx 路径
  • 总页数(脚本输出里有 🎞 N slides)
  • 调试可看 <out>/frames/slide-NN.png

调用范例

用户:

把我这个 deck 转成 PPT —— /Users/X/web/deck/index.html,输出到 ~/Downloads/2026q4-pitch/

你(Agent):

bash
# 1. 首次装依赖(之后秒过)
bash <SKILL_ROOT>/scripts/setup.sh

# 2. 跑
node <SKILL_ROOT>/scripts/build.mjs /Users/X/web/deck/index.html --out ~/Downloads/2026q4-pitch/

看到脚本输出 🎞 8 slides … ✅ Done,然后回报用户:

转好了 ✅ —— 8 页全部捕获。

  • PDF:~/Downloads/2026q4-pitch/deck.pdf(投影 / Preview 直接全屏播)
  • PPTX:~/Downloads/2026q4-pitch/deck.pptx(上传任何 PPT 平台)
  • 调试单页 PNG 在 ~/Downloads/2026q4-pitch/frames/

用户嫌文件大(PPTX > 10M)→ 加 --scale 2 重跑,文件降一半。 用户说某页内容空(文字 / 卡片没出来)→ 加 --wait 4000,让入场动画跑完再截。

关键技术细节(理解脚本行为)

  1. 本地路径如何变 URL:build.mjs 检测 HTML 里的 <base href="/X/">,从 fileDir 向上走 X 一级当服务根(例 <base href="/deck/"> → 服务 deck 父级,URL = /deck/)。这样图片路径才解析得对。
  2. 静态模式:打开 deck 后按 B(guizang 内建快捷键)关动效,WebGL 背景仍保留一帧。
  3. 逐页跳转:document.querySelectorAll('#nav .dot')[i].click() —— 用 deck 自身的导航点,不模拟键盘(键盘事件容易被 SPA 吃掉)。
  4. 截图前等待(动画感知):翻页后先给 150ms 让过渡注册,再轮询 document.getAnimations() 到没有 running 动画才截,封顶 --wait。low-power 下入场动画被关 → 几乎立刻返回(每页 ~300ms,不再死等 2.5s);只有动画/字体真没跑完才会等到上限。
  5. fonts.ready:打开页面后等 document.fonts.ready + networkidle + 1.5s 给 WebGL 暖机,字体才渲染对。
  6. deviceScaleFactor:默认 3(Retina 级),是治糊的关键。1× 在 Retina/投影/PowerPoint 渲染都会显得软。
  7. 单页失败不致命:每页截图独立 try/catch,某页报错(超时 / DOM 异常 / 写盘失败)只记下页码继续,末尾汇总 ⚠️ N/M 失败:[...],已成功的页照常拼进 PDF/PPTX;全失败才退出。
  8. PPTX 长宽比跟视口走:PPTX 版面由 --width/--height 比例推导(高 7.5in × W/H),16:9 仍是 13.333×7.5,但 4:3 / 方形 / 竖版 deck 也不会被拉变形。

故障排查

现象原因改
帧内容缺 / 一片空白stagger 没跑完--wait 4000 或更大
字体没渲染对Google Fonts 没下完--wait 4000 + 确认有网
某页排版漂视口和 deck 设计基准不一致--width 1920 --height 1080(guizang 设计基准)
本地 HTML 图片 404<base href> 路径错给 skill 整个目录,不要单文件
Chromium 启不来没装重跑 bash scripts/setup.sh
帧还是糊scale 太小--scale 4(文件会更大)
文件太大scale 过大--scale 2(出片 3840×2160,体积降一半)

资源文件导览

zan-html-to-ppt/
├── SKILL.md           ← 你正在读
├── README.md          ← GitHub 主页给人看的(含核心设计原则 / Roadmap)
├── LICENSE            ← MIT
├── .gitignore
└── scripts/
    ├── package.json   ← 依赖:playwright + pdf-lib + pptxgenjs
    ├── package-lock.json
    ├── setup.sh       ← 一键装依赖(幂等)
    └── build.mjs      ← 主脚本(单文件搞定截图 + PDF + PPTX)

上游依赖

输入端依赖 guizang-ppt-skill 生成的 HTML 结构。具体依赖的 API:

  • <section class="slide"> 是页面容器
  • #nav .dot[i] 是页码导航点(用于跳转)
  • 键盘 B 切静态模式
  • document.fonts.ready Web Fonts API

只要 deck 满足上面这套结构,就能转。完整的设计哲学 + v0.2 / v0.3 计划见 README.md。

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Zan Html To Ppt AI skill do?

把 guizang-ppt-skill 生成的 HTML 横向翻页 deck 转成 deck.pdf 和 deck.pptx,供线下演讲、加速器/评委上传、印刷等场子使用。**只要用户提到 HTML deck 转 PPT、deck 导出 PowerPoint、网页 PPT 转 pptx、HTML 转 PowerPoint、把幻灯片/演讲材料/演示文件做成离线版、需要 .pptx 上传,就用这个 skill**,即使用户没说 "guizang" 字样。产出是图片型 PPTX(每页一张 PNG 满版,视觉 100% 还原但内文不可编辑)。

Why use Zan Html To Ppt on TypingMind?

Because you install it once and use it with any model. Zan Html To Ppt is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Zan Html To Ppt in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/studio-yebisu/yaoyorozu-ai-toolbox-slides/tree/main/examples/repositories/html-to-ppt-pdf/source/upstream. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Zan Html To Ppt?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Zan Html To Ppt?

As many as you like. As long as a model supports skills, you can use Zan Html To Ppt with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Zan Html To Ppt AI skill free?

It is published on GitHub by studio-yebisu. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇