Turn a blog post, article, notes, or any source material into a set of vertical poster images — one cover plus several coherent content slides that explain the core points. Renders HTML/CSS to exact-size PNGs via headless Chrome. Use whenever the user wants cover art, 讲解图/配图, carousel slides, 封面图, poster series, or "content images" from an article/文章/素材/文件, especially for blog, 公众号, 小红书, or social posts. Default output is 1080×1920 PNG named 1.png (cover), 2.png, 3.png … written to the current working directory (the project the user is in) — never the source file's directory.
77
96%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Generate a cover image (1.png) plus N coherent content slides (2.png, 3.png, …) from source material. Each image is an exact 1080×1920 PNG. The pipeline authors one HTML file per page using bundled CSS/templates, then renders them to PNG with headless Chrome — this gives precise control over Chinese/English typography, color semantics, and emphasis.
theme-dark (tech / AI / finance / dev topics) or theme-light (knowledge / tutorial / lifestyle / business explainer). Default to the topic fit; honor an explicit user request.1 cover → 2 <point> → 3 <point> …. If the user gave a fixed count, follow it.WORK=$(mktemp -d)
cp <SKILL_DIR>/assets/poster.css "$WORK"/$WORK/page-1.html (cover), $WORK/page-2.html, … using the templates as a starting point (see Authoring pages). The relative <link href="poster.css"> resolves because the CSS sits beside them.$PWD — where the user invoked the skill), never the source file's directory:
python3 <SKILL_DIR>/scripts/render.py --in "$WORK" --out "$PWD"1.png, 2.png, … (exact 1080×1920) into $PWD. page-1.html always becomes the cover 1.png. If the user names a different output dir, use that instead — but default to $PWD.$WORK and re-render until clean.rm -rf "$WORK"). Only the N.png files remain in the project dir — that is the deliverable. The source directory is never touched.Start from the templates and edit — don't write markup from scratch:
assets/template-cover.html → page-1.htmlassets/template-content.html → page-2.html, page-3.html, …Keep the same theme-* class on <body> across all pages.
The content template ships three layout blocks — keep one per page, delete the rest:
ul.points): 2–4 scannable items, best default for "reasons / steps / features"..body): 2–3 short sentences for a concept that needs prose..stat): one large number for a data point that deserves a full slide.Emphasis must track meaning and importance, not decoration:
.hl / .hl2 — filled color chip. At most ONE per page, on the single most important term. .hl2 (warm) for contrast/warning/payoff; .hl (cool) otherwise..ul — underline. Softer emphasis, for 1–2 secondary terms..accent — colored text, for the lead word of each list item..muted — de-emphasized text (subtitles, footers, labels)..index (e.g. 01 / 05) so the series reads as coherent.<SKILL_DIR> is this skill's folder. render.py needs Python 3 with Pillow and a Chrome/Chromium install (it auto-detects common locations).page-N.html and re-run render.py — it overwrites all N.png deterministically from the current HTML set.assets/poster.css tokens (--d-accent, --l-accent, etc.) or add an <img> in the template.3b9c83d
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.