html-to-ppt
Convert HTML/Markdown to PowerPoint presentations using Marp
DeepseekModel
官方收录技能
质量 优秀 · 78
v1.0.0
获取
https://deepseekmodel.com/api/download.php?id=claude-office-skills-skills-html-to-ppt-skill-md&format=skill
下载 .skill
标准格式,含 system_prompt 与 model_config,导入任意 Agent 框架即可使用
.skill 文件中 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  Sized Image    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']} }) --- # Market Opportunity - **TAM:** {company_data['tam']}
Agent 识别该技能的关键词,点击任意一个即可复制。
该技能未提供触发词。
下载的 .skill 包内含以下字段。
| 字段 | 说明 |
|---|---|
| format | 格式标识(skill/v1) |
| skill_id | 技能唯一 ID |
| name | 技能名称 |
| version | 版本号 |
| description | 技能描述 |
| category | 所属分类(数组) |
| trigger_words | 触发词列表 |
| tags | 标签列表 |
| source | 来源标识 |
| source_url | 来源链接(本页地址) |
| exported_at | 导出时间(每次下载生成) |
| system_prompt | 系统提示词正文 |
| model_config | 模型参数:provider / model / temperature / max_tokens / top_p |
| examples | 示例 |
| install_guide | 各平台导入说明(Coze / Dify / Claude / 自定义框架) |