一键导入
showcase
Generate or update the wheely showcase deck (reveal.js HTML with screenshots and GIFs)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Generate or update the wheely showcase deck (reveal.js HTML with screenshots and GIFs)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | showcase |
| description | Generate or update the wheely showcase deck (reveal.js HTML with screenshots and GIFs) |
| user_invocable | true |
Generate a self-contained HTML slide deck demonstrating the wheely simulation platform.
showcase/showcase.html — a single self-contained HTML file (all images embedded as base64 data URIs). No external image files should remain in the directory.
Ensure playwright and chromium are available in the project venv:
pip install -e ".[dev]"
.venv/bin/python -m playwright install chromium
Also requires ffmpeg for GIF generation from frame sequences.
.venv/bin/uvicorn wheely.server:app --port 8765
Run in background. Verify with curl -s -o /dev/null -w "%{http_code}" http://localhost:8765/.
Use Playwright (headless Chromium) at 850x600 viewport with device_scale_factor: 2 for retina quality.
http://localhost:8765, wait for WebSocket Connected statuspage.evaluate(), page.select_option(), page.click() etc.page.screenshot()ffmpeg -y -framerate 15 -i frame_%04d.png \
-vf "scale=850:600:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" \
output.gif
Write showcase/showcase.html as a self-contained reveal.js presentation:
cdn.jsdelivr.net)<img src="filename.png"> initially while authoringmargin: 0.08 for safe text areaThis step is mandatory. After building the deck, verify every slide fits a 4:3 screen with no text cutoff:
file:// URL in headless PlaywrightReveal.getTotalSlides(), calling Reveal.slide(i) for eachfont-size in CSS (body text: 0.55em, code: 0.38em, lists: 0.55em)This step is mandatory. The final HTML must be fully self-contained:
src="filename.png" or src="filename.gif"):
src="filename.ext" with src="data:image/<type>;base64,<data>"showcase/ directoryshowcase/ contains only showcase.htmlThis can be done with a Python one-liner:
import base64; from pathlib import Path
html = Path('showcase.html').read_text()
for f, mime in [('img.png','image/png'), ('anim.gif','image/gif')]:
d = base64.b64encode(Path(f).read_bytes()).decode()
html = html.replace(f'src="{f}"', f'src="data:{mime};base64,{d}"')
Path('showcase.html').write_text(html)
#1a1a2e, headings #e94560, accents #4fc3f7atom-one-dark highlight.js theme#0f3460 background, #16213e for cards#0f3460 background with #4fc3f7 text#4ade80 green values