P

Skill 详情

pptx-generator

生成、编辑和阅读PowerPoint演示文稿。使用PptxGenJS从头开始创建(封面、目录、内容、章节分隔符、摘要幻灯片),通过XML工作流编辑现有的PPTX,或使用markitdown提取文本。触发词:PPT, PPTX, PowerPoint, 演示, 幻灯片, 幻灯片集, 幻灯片们。

来源平台:ModelScope
来源标识:ModelScope/MiniMax-AI/pptx-generator
源文件:原始说明
办公效率 超热门 ModelScope 中 风险 下载 2.4千访问 7.8千Stars 4.4千 ModelScopeGitHub Copilot
来源平台ModelScope
文档版本master
热度超热门
排名信号下载 2.4千
概述 安装 文档 下载

快速判断

生成、编辑和阅读PowerPoint演示文稿。使用PptxGenJS从头开始创建(封面、目录、内容、章节分隔符、摘要幻灯片),通过XML工作流编辑现有的PPTX,或使用markitdown提取文本。触发词:PPT, PPTX, PowerPoint, 演示, 幻灯片, 幻灯片集, 幻灯片们。

最后校验2026-03-25
来源平台ModelScope
安全提示
下载副本ZIP 可用

适合任务

  • 按 ModelScope 收录说明完成平台、开发或工作流任务。
  • 通过下载包离线保存 Skill 内容。
  • 结合下载量、访问量和喜欢数评估优先级。

输入与输出

输入:任务目标、上下文材料、平台信息、文件路径、约束条件或需要处理的内容。

输出:按 Skill 说明生成的文档、代码、检查结果、计划、建议或操作步骤。

示例任务

  • 使用 pptx-generator 帮我完成当前任务,并先确认必要上下文。
  • 根据 pptx-generator 的说明,列出操作步骤和风险检查点。

安装方式

  1. 下载本站提供的 Skill ZIP 并解压。
  2. 把解压后的 Skill 目录放入当前 AI 工具支持的 skills 目录。
  3. 如需在线查看原始内容,可打开 GitHub 的 SKILL.md

在线原始地址:modelscope-minimax-ai-pptx-generator/SKILL.md

风险边界

使用前请检查权限、外部依赖和要处理的数据类型。第三方平台数据、支付、部署、账号和密钥相关内容应先核对官方说明。

SKILL.md 文档介绍

PPTX Generator & Editor

Overview

This skill handles all PowerPoint tasks: reading/analyzing existing presentations, editing template-based decks via XML manipulation, and creating presentations from scratch using PptxGenJS. It includes a complete design system (color palettes, fonts, style recipes) and detailed guidance for every slide type.

Quick Reference

| Task | Approach |

|------|----------|

| Read/analyze content | python -m markitdown presentation.pptx |

| Edit or create from template | See [Editing Presentations](references/editing.md) |

| Create from scratch | See [Creating from Scratch](#creating-from-scratch-workflow) below |

| Item | Value |

|------|-------|

| Dimensions | 10" x 5.625" (LAYOUT_16x9) |

| Colors | 6-char hex without # (e.g., "FF0000") |

| English font | Arial (default), or approved alternatives |

| Chinese font | Microsoft YaHei |

| Page badge position | x: 9.3", y: 5.1" |

| Theme keys | primary, secondary, accent, light, bg |

| Shapes | RECTANGLE, OVAL, LINE, ROUNDED_RECTANGLE |

| Charts | BAR, LINE, PIE, DOUGHNUT, SCATTER, BUBBLE, RADAR |

Reference Files

| File | Contents |

|------|----------|

| [slide-types.md](references/slide-types.md) | 5 slide page types (Cover, TOC, Section Divider, Content, Summary) + additional layout patterns |

| [design-system.md](references/design-system.md) | Color palettes, font reference, style recipes (Sharp/Soft/Rounded/Pill), typography & spacing |

| [editing.md](references/editing.md) | Template-based editing workflow, XML manipulation, formatting rules, common pitfalls |

| [pitfalls.md](references/pitfalls.md) | QA process, common mistakes, critical PptxGenJS pitfalls |

| [pptxgenjs.md](references/pptxgenjs.md) | Complete PptxGenJS API reference |

---

Reading Content

# Text extraction
python -m markitdown presentation.pptx

---

Creating from Scratch — Workflow

Use when no template or reference presentation is available.

Step 1: Research & Requirements

Search to understand user requirements — topic, audience, purpose, tone, content depth.

Step 2: Select Color Palette & Fonts

Use the [Color Palette Reference](references/design-system.md#color-palette-reference) to select a palette matching the topic and audience. Use the [Font Reference](references/design-system.md#font-reference) to choose a font pairing.

Step 3: Select Design Style

Use the [Style Recipes](references/design-system.md#style-recipes) to choose a visual style (Sharp, Soft, Rounded, or Pill) matching the presentation tone.

Step 4: Plan Slide Outline

Classify every slide as exactly one of the [5 page types](references/slide-types.md). Plan the content and layout for each slide. Ensure visual variety — do NOT repeat the same layout across slides.

Step 5: Generate Slide JS Files

Create one JS file per slide in slides/ directory. Each file must export a synchronous createSlide(pres, theme) function. Follow the [Slide Output Format](#slide-output-format) and the type-specific guidance in [slide-types.md](references/slide-types.md). Generate up to 5 slides concurrently using subagents if available.

Tell each subagent:

1. File naming: slides/slide-01.js, slides/slide-02.js, etc.

2. Images go in: slides/imgs/

3. Final PPTX goes in: slides/output/

4. Dimensions: 10" x 5.625" (LAYOUT_16x9)

5. Fonts: Chinese = Microsoft YaHei, English = Arial (or approved alternative)

6. Colors: 6-char hex without # (e.g. "FF0000")

7. Must use the theme object contract (see [Theme Object Contract](#theme-object-contract))

8. Must follow the [PptxGenJS API reference](references/pptxgenjs.md)

Step 6: Compile into Final PPTX

Create slides/compile.js to combine all slide modules:

// slides/compile.js
const pptxgen = require('pptxgenjs');
const pres = new pptxgen();
pres.layout = 'LAYOUT_16x9';

const theme = {
  primary: "22223b",    // dark color for backgrounds/text
  secondary: "4a4e69",  // secondary accent
  accent: "9a8c98",     // highlight color
  light: "c9ada7",      // light accent
  bg: "f2e9e4"          // background color
};

for (let i = 1; i <= 12; i++) {  // adjust count as needed
  const num = String(i).padStart(2, '0');
  const slideModule = require(`./slide-${num}.js`);
  slideModule.createSlide(pres, theme);
}

pres.writeFile({ fileName: './output/presentation.pptx' });

Run with: cd slides && node compile.js

Step 7: QA (Required)

See [QA Process](references/pitfalls.md#qa-process).

Output Structure

slides/
├── slide-01.js          # Slide modules
├── slide-02.js
├── ...
├── imgs/                # Images used in slides
└── output/              # Final artifacts
    └── presentation.pptx

---

Slide Output Format

Each slide is a complete, runnable JS file:

// slide-01.js
const pptxgen = require("pptxgenjs");

const slideConfig = {
  type: 'cover',
  index: 1,
  title: 'Presentation Title'
};

// MUST be synchronous (not async)
function createSlide(pres, theme) {
  const slide = pres.addSlide();
  slide.background = { color: theme.bg };

  slide.addText(slideConfig.title, {
    x: 0.5, y: 2, w: 9, h: 1.2,
    fontSize: 48, fontFace: "Arial",
    color: theme.primary, bold: true, align: "center"
  });

  return slide;
}

// Standalone preview - use slide-specific filename
if (require.main === module) {
  const pres = new pptxgen();
  pres.layout = 'LAYOUT_16x9';
  const theme = {
    primary: "22223b",
    secondary: "4a4e69",
    accent: "9a8c98",
    light: "c9ada7",
    bg: "f2e9e4"
  };
  createSlide(pres, theme);
  pres.writeFile({ fileName: "slide-01-preview.pptx" });
}

module.exports = { createSlide, slideConfig };

---

Theme Object Contract (MANDATORY)

The compile script passes a theme object with these exact keys:

| Key | Purpose | Example |

|-----|---------|---------|

| theme.primary | Darkest color, titles | "22223b" |

| theme.secondary | Dark accent, body text | "4a4e69" |

| theme.accent | Mid-tone accent | "9a8c98" |

| theme.light | Light accent | "c9ada7" |

| theme.bg | Background color | "f2e9e4" |

NEVER use other key names like background, text, muted, darkest, lightest.

---

Page Number Badge (REQUIRED)

All slides except Cover Page MUST include a page number badge in the bottom-right corner.

  • Position: x: 9.3", y: 5.1"
  • Show current number only (e.g. 3 or 03), NOT "3/12"
  • Use palette colors, keep subtle

Circle Badge (Default)

slide.addShape(pres.shapes.OVAL, {
  x: 9.3, y: 5.1, w: 0.4, h: 0.4,
  fill: { color: theme.accent }
});
slide.addText("3", {
  x: 9.3, y: 5.1, w: 0.4, h: 0.4,
  fontSize: 12, fontFace: "Arial",
  color: "FFFFFF", bold: true,
  align: "center", valign: "middle"
});

Pill Badge

slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
  x: 9.1, y: 5.15, w: 0.6, h: 0.35,
  fill: { color: theme.accent },
  rectRadius: 0.15
});
slide.addText("03", {
  x: 9.1, y: 5.15, w: 0.6, h: 0.35,
  fontSize: 11, fontFace: "Arial",
  color: "FFFFFF", bold: true,
  align: "center", valign: "middle"
});

---

Dependencies

  • pip install "markitdown[pptx]" — text extraction
  • npm install -g pptxgenjs — creating from scratch
  • npm install -g react-icons react react-dom sharp — icons (optional)
建议反馈