返回顶部
g

generate-presentation

Generate professional HTML and PDF presentations from markdown content, URLs, or topics. Creates visually stunning slides with AI-generated illustrations, keyboard navigation, and automatic PDF export.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
1,592
下载量
1
收藏
概述
安装方式
版本历史

generate-presentation

# Generate Presentation You are a presentation designer. Your job is to create beautiful, professional presentation slides that match the visual style found in the `references/` folder. ## Workflow Follow these steps exactly in order: ### Step 1: Gather Content Ask the user what the presentation should contain. The user may: - Provide a topic and let you generate the content - Provide a URL — fetch it with the WebFetch tool and extract the key content - Provide a markdown file path — read it with the Read tool and use its structure as slide content - Provide the content directly as text - Provide a combination of the above If `$ARGUMENTS` is provided, use it as the starting point. Detect the input type: - If it ends in `.md` or `.markdown` — treat it as a **markdown file path**. Read the file with the Read tool and use its content to generate slides. Use headings (`#`, `##`) as slide titles/breaks, and body text as slide content. - If it starts with `http://` or `https://` — treat it as a **URL**. Fetch it with WebFetch and extract key content. - Otherwise — treat it as a **topic description** and generate content from it. **Markdown file conventions:** When the source is a markdown file, interpret its structure as follows: - `# Top-level heading` → Presentation title (first slide) - `## Second-level heading` → New slide title (each `##` starts a new slide) - `### Third-level heading` → Section heading within a slide - Bullet lists (`-` or `*`) → Slide bullet points - Numbered lists (`1.`, `2.`) → Ordered content on a slide - Bold text (`**text**`) → Emphasized/highlighted text on slides - Regular paragraphs → Slide body text (keep concise, split long paragraphs) - `---` (horizontal rule) → Explicit slide break (alternative to using `##`) - Images (`![alt](path)`) → Include the referenced image on the slide if the file exists If the markdown has no `##` headings, split content into logical slides automatically (aim for one key idea per slide). Ask clarifying questions if needed: - How many slides? (if not obvious from the markdown structure) - What is the target audience? - Any specific points to emphasize? ### Step 1.5: Draft Content and Get User Approval **This step applies when the input is NOT an existing `.md` file** (i.e., the user gave a topic, URL, or plain text). If the user already provided a `.md` file, skip to Step 2 — the content is already approved. Before building any slides, generate a **content draft** as `presentation/content.md` and ask the user to review it. **Process:** 1. Based on the gathered content (from topic, URL, or text), write `presentation/content.md` following the markdown format described in Step 6. 2. Tell the user: "I've drafted the slide content at `presentation/content.md`. Please review it and let me know if you'd like any changes before I start designing." 3. **STOP and wait for the user's response.** Do NOT proceed to Step 2 until the user confirms. 4. If the user requests changes — edit `content.md` accordingly and ask again. 5. If the user approves (e.g., "looks good", "go ahead", "ok") — proceed to Step 2. This ensures the user controls the narrative before any design work begins. It prevents wasted effort on slides with wrong content. **Tip:** When drafting from a URL or topic, keep slides concise. Aim for: - 1 key idea per slide - Max 3-5 bullet points per slide - Short sentences, not paragraphs ### Step 2: Analyze Design References Read ALL image files in the `references/` folder using the Read tool (it can read images): ``` Glob pattern: references/*.{png,jpg,jpeg,webp,PNG,JPG,JPEG,WEBP} ``` Study the reference images carefully. Extract the design language: - **Color palette**: Primary, secondary, accent, background colors (extract exact hex values) - **Typography style**: Font weight, size hierarchy, letter spacing feel - **Layout patterns**: How content is arranged, spacing, alignment - **Visual elements**: Shapes, gradients, borders, shadows, decorative elements - **Overall mood**: Minimal, bold, corporate, playful, etc. If no reference images exist, inform the user and use a clean, modern default style (dark background, sans-serif fonts, generous whitespace). ### Step 3: Create HTML Slides Create a single HTML file at `presentation/slides.html` containing all slides. Requirements: - Each slide is a full-viewport section (100vw x 100vh) - Use inline CSS — no external dependencies - Use web-safe fonts or Google Fonts via CDN link - Include navigation: arrow keys to move between slides, slide counter - The visual style MUST match the reference images as closely as possible - Each slide should have a `data-slide-number` attribute (1-indexed) - Slides should be stacked vertically, with JS handling viewport snapping Use the template structure in [templates/slide-template.html](templates/slide-template.html) as a starting point but adapt the styling entirely to match the references. Slide content guidelines: - Title slide: presentation title, subtitle, author/date if relevant - Content slides: use bullet points, short sentences, visuals descriptions - Keep text concise — presentations are visual, not documents - Use consistent spacing and alignment across all slides - Add visual variety: some slides text-heavy, some minimal, some with diagrams ### Step 3.5: Generate Illustrations and Images **IMPORTANT: You MUST actively generate images for the presentation.** Do not skip this step. Every presentation benefits from visuals. Go through each slide and decide what image would enhance it, then generate it. Use the **OpenAI GPT Image MCP server** to generate images. Create the `presentation/images/` directory first. **For EACH slide, evaluate and generate:** 1. **Title/hero slides** → Generate a background illustration or key visual (always) 2. **Concept slides** → Generate an illustration representing the idea (e.g., architecture diagram, workflow visualization, metaphor image) 3. **Data/stats slides** → Consider generating infographic-style visuals 4. **Closing slides** → Generate a memorable visual or branded graphic **How to generate:** - Use `mcp__openai-gpt-image-mcp__create-image` with a detailed prompt. In the prompt, specify: - The subject matter clearly - The color palette from the reference design (e.g., "dark background with red accents #e63226") - The style (e.g., "minimal flat illustration", "abstract geometric", "tech-themed") - `size: "1536x1024"` for landscape, `"1024x1024"` for square - `output: "file_output"` with `file_output` path like `presentation/images/slide_3_illustration.png` - `quality: "high"` for hero images, `"medium"` for supporting visuals - Use `mcp__openai-gpt-image-mcp__edit-image` to refine any generated image that doesn't fit well. **Embed images in the HTML** using relative paths: ```html <img src="images/slide_3_illustration.png" style="max-width: 100%; height: auto;" /> ``` **Aim for at least 2-3 generated images per presentation.** More is better unless the user says otherwise. **Only skip image generation when:** - The user explicitly says no images - The slide is purely a short bullet list where text alone is clear enough ### Step 4: Screenshot and Validate Each Slide After creating the HTML file: 1. Open the HTML file in the browser using the Playwright MCP tools: ``` Use mcp__plugin_playwright_playwright__browser_navigate to open the file ``` 2. Set the viewport to 1920x1080 (standard presentation aspect ratio): ``` Use mcp__plugin_playwright_playwright__browser_resize with width=1920, height=1080 ``` 3. For EACH slide: a. Navigate to the slide (use keyboard arrow keys via mcp__plugin_playwright_playwright__browser_press_key with "ArrowDown" or "ArrowRight") b. Take a screenshot: `mcp__plugin_playwright_playwright__browser_take_screenshot` saving to `presentation/slide_N.png` c. Read the screenshot with the Read tool to visually inspect it d. Read the reference images again for comparison e. Compare the screenshot against the reference design: - Does the color scheme match? - Does the layout feel similar? - Is the typography style consistent? - Are visual elements (shapes, gradients) similar? f. If the slide does NOT match the reference style well enough: - Identify what's wrong - Edit the HTML/CSS to fix the issues - Reload and re-screenshot - Repeat until the slide matches the reference style g. Move to the next slide ### Step 5: Convert to PDF After all slides are validated, convert the slide screenshots to a single PDF. Run the bundled Python script: ```bash python3 <skill-directory>/scripts/slides_to_pdf.py presentation/ presentation/presentation.pdf ``` Where `<skill-directory>` is the path to this skill's directory (e.g., `.claude/skills/generate-presentation`). This script: - Finds all `slide_*.png` files in the presentation directory - Sorts them by slide number - Combines them into a single PDF (one slide per page, 1920x1080 aspect ratio) - Outputs to `presentation/presentation.pdf` If the script fails (missing dependencies), install them: ```bash pip install Pillow ``` ### Step 6: Export Content as Markdown Generate a `presentation/content.md` file that contains the **final text content** of every slide in an editable markdown format. This file serves as a single source of truth — the user can edit it and ask you to regenerate the presentation from it. Format: ```markdown # Presentation Title ## Slide 2: Slide Title Here Body text of the slide goes here. - Bullet point one - Bullet point two - Bullet point three ## Slide 3: Another Slide Title More content here. **Bold text** for emphasis. 1. Numbered item one 2. Numbered item two --- ## Slide N: Final Slide Title Closing content. ``` Rules for `content.md`: - Start with `# Title` matching the title slide - Each subsequent slide starts with `## Slide N: Title` - Include ALL text exactly as it appears on the slides (not paraphrased) - Preserve bullet lists, numbered lists, bold text, and emphasis - Use `---` between sections if a slide has no heading - If a slide has a generated image, note it: `![description](images/filename.png)` - Do NOT include CSS, HTML, or layout instructions — only content This allows the user to: 1. Open `content.md`, edit any text 2. Run `/generate-presentation presentation/content.md` to regenerate with updated content ### Step 7: Deliver Tell the user: - The HTML presentation is at `presentation/slides.html` (interactive, can be opened in browser) - The PDF is at `presentation/presentation.pdf` - Individual slide images are at `presentation/slide_N.png` - **The editable content is at `presentation/content.md`** — edit this file and run `/generate-presentation presentation/content.md` to regenerate with changes ## Important Notes - Always create the `presentation/` directory before writing files - The HTML must be completely self-contained (inline styles, no external CSS files) - Target 1920x1080 resolution (16:9 aspect ratio) for all slides - Keep slide count reasonable (5-15 slides unless user specifies otherwise) - If Playwright tools are not available, inform the user and skip the screenshot/validation step - If Python is not available, inform the user and provide just the HTML + screenshots

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 generate-presentation-1776420046 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 generate-presentation-1776420046 技能

通过命令行安装

skillhub install generate-presentation-1776420046

下载 Zip 包

⬇ 下载 generate-presentation v1.0.0

文件大小: 28.51 KB | 发布时间: 2026-4-17 20:17

v1.0.0 最新 2026-4-17 20:17
Version 1.0.0 – Initial Release

- Generate professional HTML and PDF presentations from markdown content, URLs, or topics.
- Supports AI-generated illustrations matching visual styles from a reference folder.
- Keyboard navigation for slides and automatic PDF export.
- Extensive markdown file parsing and customizable slide structure.
- User approval workflow for slide content drafts before design work begins.
- Design analysis of reference images for color, typography, and layout consistency.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部