Pptx Generator

作者 minimax-ai60aaae52bb2aMIT13K 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫5 個月前更新

Generate, edit, and read PowerPoint presentations. Create from scratch with PptxGenJS (cover, TOC, content, section divider, summary slides), edit existing PPTX via XML workflows, or extract text with markitdown. Triggers: PPT, PPTX, PowerPoint, presentation, slide, deck, slides.

僅含說明Documents & Office
AI 產生的概覽

使用 PptxGenJS、XML 工作流程與 markitdown 文字擷取來產生、編輯和讀取 PowerPoint 簡報。

功能
此技能涵蓋三種 PowerPoint 工作方式:透過 markitdown 擷取文字以讀取或分析現有簡報、透過 XML 操作編輯以範本為基礎的簡報,以及使用 PptxGenJS 從零開始建立簡報。針對新簡報,它會引導配色與字型選擇、投影片類型規劃、逐頁 JavaScript 模組撰寫,以及編譯成最終 PPTX。它也訂定 16:9 尺寸、主題色彩合約和頁碼徽章等版面規範。
適用情境
當工作涉及建立 PowerPoint 簡報、修改現有 PPTX 或範本,或從簡報中擷取文字內容時使用。它適合由 PPT、PPTX、PowerPoint、presentation、slide 或 deck 等詞觸發的需求。
執行需求
建立簡報需要 Node.js 與 pptxgenjs,文字擷取需要 Python 與 markitdown[pptx];選用的圖示支援需要 react-icons、react、react-dom 和 sharp。它不隨附指令碼,只有說明與參考文件,且未指定憑證或網路存取需求。

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

TaskApproach
Read/analyze contentpython -m markitdown presentation.pptx
Edit or create from templateSee Editing Presentations [blocked]
Create from scratchSee Creating from Scratch below
ItemValue
Dimensions10" x 5.625" (LAYOUT_16x9)
Colors6-char hex without # (e.g., "FF0000")
English fontArial (default), or approved alternatives
Chinese fontMicrosoft YaHei
Page badge positionx: 9.3", y: 5.1"
Theme keysprimary, secondary, accent, light, bg
ShapesRECTANGLE, OVAL, LINE, ROUNDED_RECTANGLE
ChartsBAR, LINE, PIE, DOUGHNUT, SCATTER, BUBBLE, RADAR

Reference Files

FileContents
slide-types.md [blocked]5 slide page types (Cover, TOC, Section Divider, Content, Summary) + additional layout patterns
design-system.md [blocked]Color palettes, font reference, style recipes (Sharp/Soft/Rounded/Pill), typography & spacing
editing.md [blocked]Template-based editing workflow, XML manipulation, formatting rules, common pitfalls
pitfalls.md [blocked]QA process, common mistakes, critical PptxGenJS pitfalls
pptxgenjs.md [blocked]Complete PptxGenJS API reference

Reading Content

bash
# Text extractionpython -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 [blocked] to select a palette matching the topic and audience. Use the Font Reference [blocked] to choose a font pairing.

Step 3: Select Design Style

Use the Style Recipes [blocked] 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 [blocked]. 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 and the type-specific guidance in slide-types.md [blocked]. 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)
  8. Must follow the PptxGenJS API reference [blocked]

Step 6: Compile into Final PPTX

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

javascript
// slides/compile.jsconst 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 [blocked].

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:

javascript
// slide-01.jsconst 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 filenameif (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:

KeyPurposeExample
theme.primaryDarkest color, titles"22223b"
theme.secondaryDark accent, body text"4a4e69"
theme.accentMid-tone accent"9a8c98"
theme.lightLight accent"c9ada7"
theme.bgBackground 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)

javascript
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

javascript
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)

來源與署名

來源:minimax-ai/skills位於skills/pptx-generator提交60aaae5

授權條款: MIT

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架