Token导航 LogoToken导航TokenDH.com
效率操作浏览器clawhub未标认证来源可访问clear审计提醒

generate-presentation生成演示文稿

Agent Skill

generate-presentation 用于整理文档、README、Markdown 和说明材料,适合在 OpenClaw 中需要把零散信息整理成结构清晰的文档时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

59,824

周安装

2,468

GitHub Stars

1

下载量

19,547
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:generate-presentation(生成演示文稿)
来源仓库:https://github.com/nhype/generate-presentation
安装命令:
openclaw skills install generate-presentation
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install generate-presentation

简介

从 Markdown 或主题生成带 AI 插图的 HTML/PDF 演示文稿。

  • 适用于会议汇报、产品发布与教学培训材料制作。
  • 自动排版与视觉优化提升呈现效果。适用宿主包括 OpenClaw,接入前应确认版本、权限和运行环境要求。
  • 插图版权归属需根据服务条款确认使用范围。
  • generate-presentation 属于效率类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

name
generate-presentation
description
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.
argument-hint
[topic, URL, or path to .md file]
disable-model-invocation
true
metadata
openclaw
requires
bins
env

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 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:

<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
  1. Set the viewport to 1920x1080 (standard presentation aspect ratio):
   Use mcp__plugin_playwright_playwright__browser_resize with width=1920, height=1080
  1. 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:

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:

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:

# 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

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

79.63%
按下载量换算15,565

安全审计

VirusTotal

可疑

ClawScan

通过

Static analysis

未展示

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills