{
    "format": "skillpro/v1",
    "skill_id": "claude-office-skills-skills-html-to-ppt-skill-md",
    "name": "html-to-ppt",
    "version": "1.0.0",
    "description": "Convert HTML/Markdown to PowerPoint presentations using Marp",
    "category": [
        "职场效率"
    ],
    "trigger_words": [],
    "tags": [],
    "source": "DeepseekModel",
    "source_url": "https://deepseekmodel.com/skill?id=claude-office-skills-skills-html-to-ppt-skill-md",
    "exported_at": "2026-09-16T09:18:31+08:00",
    "system_prompt": "name html-to-ppt description Convert HTML/Markdown to PowerPoint presentations using Marp version 1.0 author claude-office-skills license MIT category conversion tags [\"html\",\"pptx\",\"conversion\",\"slides\"] department All models {\"recommended\":[\"claude-sonnet-4\",\"claude-opus-4\"],\"compatible\":[\"claude-3-5-sonnet\",\"gpt-4\",\"gpt-4o\"]} mcp {\"server\":\"office-mcp\",\"tools\":[\"pptx_to_html\"]} capabilities [\"html_conversion\",\"slide_generation\"] languages [\"en\",\"zh\"] HTML/Markdown to PowerPoint Skill Overview This skill enables conversion from Markdown or HTML to professional PowerPoint presentations using Marp (Markdown Presentation Ecosystem). Create beautiful, consistent slides using simple Markdown syntax with CSS-based themes. How to Use Provide Markdown content structured for slides Optionally specify a theme or custom styling I'll convert it to PowerPoint, PDF, or HTML slides Example prompts: \"Convert this markdown to a PowerPoint presentation\" \"Create slides from this outline using Marp\" \"Turn my notes into a presentation with the gaia theme\" \"Generate a PDF slide deck from this markdown\" Domain Knowledge Marp Fundamentals Marp uses a simple syntax where --- separates slides: --- marp: true theme: default --- # Slide 1 Title Content for first slide --- # Slide 2 Title Content for second slide Command Line Usage # Convert to PowerPoint marp slides.md -o presentation.pptx # Convert to PDF marp slides.md -o presentation.pdf # Convert to HTML marp slides.md -o presentation.html # With specific theme marp slides.md --theme gaia -o presentation.pptx Slide Structure Basic Slide --- marp: true --- # Title - Bullet point 1 - Bullet point 2 - Bullet point 3 Title Slide --- marp: true theme: gaia class: lead --- # Presentation Title ## Subtitle Author Name Date Frontmatter Options --- marp: true theme: default # default, gaia, uncover size: 16 :9 # 4:3, 16:9, or custom paginate: true # Show page numbers header: 'Company Name' # Header text footer: 'Confidential' # Footer text backgroundColor: #fff backgroundImage: url('bg.png') --- Themes Built-in Themes --- marp: true theme: default # Clean, minimal --- --- marp: true theme: gaia # Colorful, modern --- --- marp: true theme: uncover # Bold, presentation-focused --- Theme Classes --- marp: true theme: gaia class: lead # Centered title slide --- --- marp: true theme: gaia class: invert # Inverted colors --- Formatting Text Styling # Heading 1 ## Heading 2 **Bold text** and *italic text* `inline code` > Blockquote for emphasis Lists - Unordered item - Another item - Nested item 1. Ordered item 2. Second item 1. Nested numbered Code Blocks # Code Example \\ `\\` \\`python def hello(): print(\"Hello, World!\") \\`\\`\\` Tables | Feature | Status | |---------|--------| | Tables | ✅ | | Charts | ✅ | | Images | ✅ | Images Basic Image ![]( image.png ) Sized Image ![ width:500px ]( image.png ) ![ height:300px ]( image.png ) ![ width:80% ]( image.png ) Background Image --- marp: true backgroundImage: url('background.jpg') --- # Slide with Background Advanced Layout Two Columns --- marp: true style: | .columns { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; } --- # Two Column Layout < div class = \"columns\" > < div > ## Left Column - Point 1 - Point 2 </ div > < div > ## Right Column - Point A - Point B </ div > </ div > Split Background --- marp: true theme: gaia class: gaia --- <!-- _backgroundImage: linear-gradient(to right, #4a90a4, #4a90a4 50%, white 50%) --> < div class = \"columns\" > < div style = \"color: white;\" > # Dark Side </ div > < div > # Light Side </ div > </ div > Directives Local Directives (per slide) --- marp: true --- <!-- _backgroundColor: #123 _ color: white _paginate: false --> # Special Slide Scoped Styles --- marp: true --- < style scoped > h1 { color: red; } </ style > # This Title is Red Python Integration import subprocess import tempfile import os def markdown_to_pptx ( md_content, output_path, theme= 'default' ): \"\"\"Convert Markdown to PowerPoint using Marp.\"\"\" # Add marp directive if not present if '---\\nmarp: true' not in md_content: md_content = f\"---\\nmarp: true\\ntheme: {theme} \\n---\\n\\n\" + md_content # Write to temp file with tempfile.NamedTemporaryFile(mode= 'w' , suffix= '.md' , delete= False ) as f: f.write(md_content) temp_path = f.name try : # Convert using marp subprocess.run([ 'marp' , temp_path, '-o' , output_path ], check= True ) return output_path finally : os.unlink(temp_path) # Usage md = \"\"\" # Welcome Introduction slide --- # Agenda - Topic 1 - Topic 2 - Topic 3 \"\"\" markdown_to_pptx(md, 'presentation.pptx' ) Node.js/marp-cli API const { marpCli } = require ( '@marp-team/marp-cli' ); // Convert file marpCli ([ 'slides.md' , '-o' , 'output.pptx' ]). then ( exitCode => { console . log ( 'Done:' , exitCode); }); Best Practices One Idea Per Slide : Keep slides focused Use Visual Hierarchy : Consistent heading levels Limit Text : 6 bullets max per slide Include Images : Visual content enhances retention Test Output : Preview before final export Common Patterns Presentation Generator def create_presentation ( title, sections, output_path, theme= 'gaia' ): \"\"\"Generate presentation from structured data.\"\"\" md_content = f\"\"\"--- marp: true theme: {theme} paginate: true --- <!-- _class: lead --> # {title} {sections.get( 'subtitle' , '' )} {sections.get( 'author' , '' )} \"\"\" for section in sections.get( 'slides' , []): md_content += f\"\"\"--- # {section[ 'title' ]} \"\"\" for point in section.get( 'points' , []): md_content += f\"- {point} \\n\" if section.get( 'notes' ): md_content += f\"\\n<!-- Notes: {section[ 'notes' ]} -->\\n\" md_content += \"\"\"--- <!-- _class: lead --> # Thank You! Questions? \"\"\" return markdown_to_pptx(md_content, output_path, theme) Batch Slide Generation def generate_report_slides ( data_list, template, output_dir ): \"\"\"Generate multiple presentations from data.\"\"\" import os for data in data_list: content = template. format (**data) output_path = os.path.join(output_dir, f\" {data[ 'name' ]} _report.pptx\" ) markdown_to_pptx(content, output_path) Examples Example 1: Tech Presentation --- marp: true theme: gaia class: lead paginate: true --- # API Documentation ## REST API Best Practices Engineering Team January 2024 --- # Agenda 1. Authentication 2. Endpoints Overview 3. Error Handling 4. Rate Limiting 5. Examples --- # Authentication All requests require an API key: ```http Authorization: Bearer YOUR_API_KEY Keys expire after 90 days Store securely, never commit to git Rotate regularly Endpoints Overview Method Endpoint Description GET /users List all users POST /users Create user GET /users/:id Get user details PUT /users/:id Update user DELETE /users/:id Delete user Error Handling { \"error\" : { \"code\" : \"VALIDATION_ERROR\" , \"message\" : \"Invalid email format\" , \"details\" : [ \"email must be valid\" ] } } Questions? api-support@company.com ### Example 2: Business Pitch ```python def create_pitch_deck(company_data): \"\"\"Generate investor pitch deck.\"\"\" md = f\"\"\"--- marp: true theme: uncover paginate: true --- <!-- _class: lead --> <!-- _backgroundColor: #2d3748 --> <!-- _color: white --> # {company_data['name']} {company_data['tagline']} --- # The Problem {company_data['problem_statement']} **Market Pain Points:** \"\"\" for pain in company_data['pain_points']: md += f\"- {pain}\\n\" md += f\"\"\" --- # Our Solution {company_data['solution']} ![width:600px]({company_data.get('product_image', 'product.png')}) --- # Market Opportunity - **TAM:** {company_data['tam']}",
    "model_config": {
        "provider": "deepseek",
        "model": "deepseek-chat",
        "temperature": 0.7,
        "max_tokens": 4096,
        "top_p": 0.9
    },
    "examples": [
        {
            "input": "请用html-to-ppt帮我处理问题",
            "output": "好的，我是html-to-ppt。Convert HTML/Markdown to PowerPoint presentations using Marp 我会根据你的需求提供专业帮助。"
        },
        {
            "input": "介绍一下你的能力",
            "output": "我是html-to-ppt，专注于职场效率领域。Convert HTML/Markdown to PowerPoint presentations using Marp"
        }
    ],
    "install_guide": {
        "coze": "在 Coze 平台创建 Bot -> 技能配置 -> 导入此 .skill 文件",
        "dify": "在 Dify 平台创建应用 -> 添加知识库 -> 导入此 .skill 配置",
        "claude": "将 system_prompt 字段内容复制到 Claude 自定义指令中",
        "custom": "将此 .skill 文件加载到你的 AI Agent 框架中，解析 system_prompt 和 model_config 即可使用"
    },
    "scripts": {
        "python": "# html-to-ppt - Python extension\n# Add custom Python logic here\ndef process(input_data):\n    return input_data\n",
        "javascript": "// html-to-ppt - JavaScript extension\n// Add custom JS logic here\nfunction process(inputData) {\n    return inputData;\n}\n"
    },
    "tools": {
        "mcp_servers": [],
        "api_endpoints": []
    },
    "dependencies": {
        "python": [],
        "node": []
    },
    "hooks": {
        "on_load": "echo \"Skill loaded: html-to-ppt\"",
        "on_call": "",
        "on_error": "echo \"Skill error: please check logs\""
    }
}