lov-any2deck skill
scriptsTransforms Markdown, text, or URLs into professional slide deck images with multiple visual styles and PPTX/PDF export capabilities.
- GitHub stars
- 72
- Files
- 40
- Last commit
- Nov 10, 2026
- License
- MIT
- Allowed tools
- —
What does the lov-any2deck skill do?
lov-any2deck transforms Markdown, text, or URLs into professional slide deck images with multiple visual styles and PPTX/PDF export capabilities.
Summary generated from the skill's SKILL.md.
About the lov-any2deck skill
Converting Markdown, raw text, or website URLs into professional visual presentations is what this tool enables. It is designed for creators who need to transform long-form content into self-explanatory slide decks optimized for reading and social media sharing rather than live speaking. The process begins by analyzing content to generate a structured outline and specific image prompts, which are then used to create individual slide images.
Users can choose from 16 distinct visual styles, such as blueprint for technical designs, chalkboard for education, or corporate for business proposals. The system supports branding overlays by compositing logos onto slides using Python and can export the final results into PPTX or PDF formats via Node.js scripts. It handles multilingual content, including CJK and Latin text, and allows for fine-tuned control over slide counts, target audiences, and specific slide regeneration.
Written from the skill's SKILL.md. Every use case is checked against a quote from it.
How to install the lov-any2deck skill
Each command copies the skill folder into the client's skills directory. Restart the client or start a new session to load it.Install the lov-any2deck skill in Plugin
/plugin marketplace add lovstudio/skills /plugin install office-automation@lovstudio
Install the lov-any2deck skill in Claude Code
~/.claude/skills/lov-any2deck/SKILL.md
$ npx degit lovstudio/skills/skills/any2deck ~/.claude/skills/lov-any2deckInstall the lov-any2deck skill in Claude Code (project)
.claude/skills/lov-any2deck/SKILL.md
$ npx degit lovstudio/skills/skills/any2deck .claude/skills/lov-any2deckInstall the lov-any2deck skill in Codex
~/.agents/skills/lov-any2deck/SKILL.md
$ npx degit lovstudio/skills/skills/any2deck ~/.agents/skills/lov-any2deckInstall the lov-any2deck skill in Gemini CLI
~/.gemini/skills/lov-any2deck/SKILL.md
$ npx degit lovstudio/skills/skills/any2deck ~/.gemini/skills/lov-any2deckInstall the lov-any2deck skill in Claude.ai
npx degit lovstudio/skills/skills/any2deck lov-any2deck && zip -r lov-any2deck.zip lov-any2deck # claude.ai → Customize → Skills → + → Create skill → Upload a skill → lov-any2deck.zip
SKILL.md
View on GitHubPPT 大师 · PPT Master
Transform content into professional slide deck images.
Usage
/lov-any2deck path/to/content.md
/lov-any2deck path/to/content.md --style sketch-notes
/lov-any2deck path/to/content.md --audience executives
/lov-any2deck path/to/content.md --lang zh
/lov-any2deck path/to/content.md --slides 10
/lov-any2deck path/to/content.md --outline-only
/lov-any2deck # Then paste content
Script Directory
Agent Execution Instructions:
- Determine this SKILL.md file's directory path as
SKILL_DIR - Script path =
${SKILL_DIR}/scripts/<script-name>
| Script | Purpose |
|---|---|
scripts/merge-to-pptx.ts |
Merge slides into PowerPoint |
scripts/merge-to-pdf.ts |
Merge slides into PDF |
scripts/apply-branding.py |
Composite logo(s)/QR onto slides — dual logo, tight-crop, JPG white→alpha (opt-in) |
Options
| Option | Description |
|---|---|
--style <name> |
Visual style: preset name, custom, or custom style name |
--audience <type> |
Target: beginners, intermediate, experts, executives, general |
--lang <code> |
Output language (en, zh, ja, etc.) |
--slides <number> |
Target slide count (8-25 recommended, max 30) |
--outline-only |
Generate outline only, skip image generation |
--prompts-only |
Generate outline + prompts, skip images |
--images-only |
Generate images from existing prompts directory |
--regenerate <N> |
Regenerate specific slide(s): --regenerate 3 or --regenerate 2,5,8 |
--logo <path> |
Primary brand logo (top-right, skips cover/back-cover) |
--logo2 <path> |
Secondary logo (placed left of primary, optically aligned) |
--presentation |
Presentation mode: strips narration text, keeps only visual anchors |
Slide Count by Content Length:
| Content | Slides |
|---|---|
| < 1000 words | 5-10 |
| 1000-3000 words | 10-18 |
| 3000-5000 words | 15-25 |
| > 5000 words | 20-30 (consider splitting) |
Style System
Presets
| Preset | Dimensions | Best For |
|---|---|---|
blueprint (Default) |
grid + cool + technical + balanced | Architecture, system design |
chalkboard |
organic + warm + handwritten + balanced | Education, tutorials |
corporate |
clean + professional + geometric + balanced | Investor decks, proposals |
minimal |
clean + neutral + geometric + minimal | Executive briefings |
sketch-notes |
organic + warm + handwritten + balanced | Educational, tutorials |
watercolor |
organic + warm + humanist + minimal | Lifestyle, wellness |
dark-atmospheric |
clean + dark + editorial + balanced | Entertainment, gaming |
notion |
clean + neutral + geometric + dense | Product demos, SaaS |
bold-editorial |
clean + vibrant + editorial + balanced | Product launches, keynotes |
editorial-infographic |
clean + cool + editorial + dense | Tech explainers, research |
fantasy-animation |
organic + vibrant + handwritten + minimal | Educational storytelling |
intuition-machine |
clean + cool + technical + dense | Technical docs, academic |
pixel-art |
pixel + vibrant + technical + balanced | Gaming, developer talks |
scientific |
clean + cool + technical + dense | Biology, chemistry, medical |
vector-illustration |
clean + vibrant + humanist + balanced | Creative, children's content |
vintage |
paper + warm + editorial + balanced | Historical, heritage |
Style Dimensions
| Dimension | Options | Description |
|---|---|---|
| Texture | clean, grid, organic, pixel, paper | Visual texture and background treatment |
| Mood | professional, warm, cool, vibrant, dark, neutral | Color temperature and palette style |
| Typography | geometric, humanist, handwritten, editorial, technical | Headline and body text styling |
| Density | minimal, balanced, dense | Information density per slide |
Full specs: references/dimensions/*.md
Auto Style Selection
| Content Signals | Preset |
|---|---|
| tutorial, learn, education, guide, beginner | sketch-notes |
| classroom, teaching, school, chalkboard | chalkboard |
| architecture, system, data, analysis, technical | blueprint |
| creative, children, kids, cute | vector-illustration |
| briefing, academic, research, bilingual | intuition-machine |
| executive, minimal, clean, simple | minimal |
| saas, product, dashboard, metrics | notion |
| investor, quarterly, business, corporate | corporate |
| launch, marketing, keynote, magazine | bold-editorial |
| entertainment, music, gaming, atmospheric | dark-atmospheric |
| explainer, journalism, science communication | editorial-infographic |
| story, fantasy, animation, magical | fantasy-animation |
| gaming, retro, pixel, developer | pixel-art |
| biology, chemistry, medical, scientific | scientific |
| history, heritage, vintage, expedition | vintage |
| lifestyle, wellness, travel, artistic | watercolor |
| Default | blueprint |
Design Philosophy
Decks designed for reading and sharing, not live presentation:
- Each slide self-explanatory without verbal commentary
- Logical flow when scrolling
- All necessary context within each slide
- Optimized for social media sharing
See references/design-guidelines.md for:
- Audience-specific principles
- Visual hierarchy
- Content density guidelines
- Color and typography selection
- Font recommendations
See references/layouts.md for layout options.
File Management
Output Directory
slide-deck/{topic-slug}/
├── source-{slug}.{ext}
├── outline.md
├── prompts/
│ └── 01-slide-cover.md, 02-slide-{slug}.md, ...
├── 01-slide-cover.png, 02-slide-{slug}.png, ...
├── {topic-slug}.pptx
└── {topic-slug}.pdf
Slug: Extract topic (2-4 words, kebab-case). Example: "Introduction to Machine Learning" → intro-machine-learning
Conflict Handling: See Step 1.3 for existing content detection and user options.
Language Handling
Detection Priority:
--langflag (explicit)- EXTEND.md
languagesetting - User's conversation language (input language)
- Source content language
Rule: ALL responses use user's preferred language:
- Questions and confirmations
- Progress reports
- Error messages
- Completion summaries
Technical terms (style names, file paths, code) remain in English.
Workflow
For the full step-by-step workflow, use references/workflow.md. Keep the main
flow in this order:
- Setup & analyze: load
.lov-skills/lov-any2deck/EXTEND.mdwhen present, save source content, analyze style signals, detect language, choose slide count, and check for existingslide-deck/{topic-slug}output before continuing. - Confirm: use
AskUserQuestionfor style, audience, slide count, outline review, and prompt review. If custom dimensions are selected, collect texture, mood, typography, and density. - Generate outline: read the selected preset from
references/styles/or combine dimension docs fromreferences/dimensions/, then writeoutline.mdusingreferences/outline-template.md. - Review outline when requested, then generate per-slide prompts under
prompts/usingreferences/base-prompt.mdandreferences/layouts.md. - Review prompts when requested, generate slide images, optionally apply branding with
scripts/apply-branding.py, then merge PPTX/PDF with the TypeScript scripts. - Report the output directory, generated slide count, PPTX/PDF paths, style, audience, language, and any partial failures.
Partial workflows (--outline-only, --prompts-only, --images-only,
--regenerate) and slide modification procedures are documented in
references/workflow.md.
References
| File | Content |
|---|---|
references/analysis-framework.md |
Content analysis for presentations |
references/outline-template.md |
Outline structure and format |
references/modification-guide.md |
Edit, add, delete slide workflows |
references/content-rules.md |
Content and style guidelines |
references/design-guidelines.md |
Audience, typography, colors, visual elements |
references/layouts.md |
Layout options and selection tips |
references/base-prompt.md |
Base prompt for image generation |
references/dimensions/*.md |
Dimension specifications (texture, mood, typography, density) |
references/dimensions/presets.md |
Preset → dimension mapping |
references/styles/<style>.md |
Full style specifications (legacy) |
references/config/preferences-schema.md |
EXTEND.md structure |
Notes
- Image generation: 10-30 seconds per slide
- Auto-retry once on generation failure
- Use stylized alternatives for sensitive public figures
- Maintain style consistency via session ID
- Step 2 confirmation required - do not skip (style, audience, slides, outline review, prompt review)
- Step 4 conditional - only if user requested outline review in Step 2
- Step 6 conditional - only if user requested prompt review in Step 2
Extension Support
Custom configurations via EXTEND.md. See Step 1.1 for paths and supported options.
维护备注
apply-branding.py的deck_dir相对当前 shell cwd 解析;在slide-deck/{slug}/子目录内调用会拼错路径,统一从仓库根调用(2026-08-21, 4aeebdb)- branding 合成 2752×1536×20 张大图耗时长(>3 分钟),用后台运行避免超时;PNG 白底二维码需先转 alpha,否则白方块与图纸底色冲突(2026-08-21, 4aeebdb)
build-batch.ts只识别## Illustration N标题;自定义大纲用## Slide N of M时它一张都解析不出,自己写脚本产出batch.json更快(2026-09-05, f9babe0)- 讲课版 deck 必须把讲稿写进
notes/<stem>.md,画面指令留在prompts/;merge-to-pptx.ts已改为优先取notes/作演讲者备注,prompts/仅为兜底(2026-09-05, f9babe0) - 满幅波普/漫画风 deck 不要再叠 logo:
apply-branding.py的白底 logo 会与粗描边和网点底冲突,品牌信息直接写进封面画面(2026-09-05, f9babe0)
Runtime context (shared)
运行前读取本 Skill 包的 skill.yaml,由宿主提供 skill-runtime/v1 上下文。字段解析顺序为:当前请求、项目上下文、个人 Preferences、品牌 Profile、通用默认值。
- 只使用 Manifest 声明的字段;Profile 保存公开品牌事实,Preferences 保存个人工作偏好。
required: true字段缺失时,按 Manifest 的问题配置向用户提出一个聚焦问题;用户明确同意后再保存回答。- 报错提供可复制的
context_id、字段路径与来源,诊断内容避开秘密、完整私人路径和原始配置。
通用反馈闭环
用户在 Skill 驱动任务中提出修改意见时,继续当前产物前必须执行:
- 先判断意见是
task-specific(仅本次)还是reusable(可跨任务复用)。 task-specific只修改当前任务,不改 Skill。reusable先确定作用域:领域规则先更新对应 canonical Skill;适用于所有 Skill 的规则先更新共享规范。- 完成规则更新、版本、lint 与分发核验后,再把修改应用到当前任务。
reusable修改会使此前的“确认”“继续”“发吧”失效;完成当前产物修改和回读后必须停下,等待用户下一步指示,不自动进入发布、提交或其他外部写入。
Files in this skill
40lov-any2deck skill questions
How do I install the lov-any2deck skill in Claude Code?
Run npx degit lovstudio/skills/skills/any2deck ~/.claude/skills/lov-any2deck. Claude Code loads skills from ~/.claude/skills (all projects) or .claude/skills (one project) and uses a skill when its description matches the task.
Which clients can use the lov-any2deck skill?
Any client that reads the Agent Skills format: Claude Code, Codex, Gemini CLI and claude.ai (upload as a ZIP). Scripts in the skill run only where the client allows code execution.
What file formats can I export my slide deck to?
The tool supports exporting generated slides into both PowerPoint (PPTX) and PDF formats.
Can I add my company logo to the slides?
Yes, you can apply branding by specifying a primary logo and an optional secondary logo using the --logo and --logo2 options.
How many slides can the tool generate?
It is recommended to target between 8 and 25 slides, with a maximum limit of 30 slides.