html2pptx
Converts HTML slides to PowerPoint presentations with accurate positioning and styling, ensuring a seamless transition from web to presentation format.
Install this skill
Security score
The html2pptx skill was audited on Feb 12, 2026 and we found 21 security issues across 2 threat categories, including 20 high-severity. Review the findings below before installing.
Categories Tested
Security Issues
Template literal with variable interpolation in command context
| 66 | if (widthOverflowPt > 0) directions.push(`${widthOverflowPt.toFixed(1)}pt horizontally`); |
Template literal with variable interpolation in command context
| 67 | if (heightOverflowPt > 0) directions.push(`${heightOverflowPt.toFixed(1)}pt vertically`); |
Template literal with variable interpolation in command context
| 69 | errors.push(`HTML content overflows body by ${directions.join(' and ')}${reminder}`); |
Template literal with variable interpolation in command context
| 87 | `HTML dimensions (${widthInches.toFixed(1)}" × ${heightInches.toFixed(1)}") ` + |
Template literal with variable interpolation in command context
| 88 | `don't match presentation layout (${layoutWidth.toFixed(1)}" × ${layoutHeight.toFixed(1)}")` |
Template literal with variable interpolation in command context
| 117 | `Text box "${textPrefix}" ends too close to bottom edge ` + |
Template literal with variable interpolation in command context
| 118 | `(${distanceFromBottom.toFixed(2)}" from bottom, minimum ${minBottomMargin}" required)` |
Template literal with variable interpolation in command context
| 467 | errors.push(`Inline element <${node.tagName.toLowerCase()}> has margin-left which is not supported in PowerPoint. Remove margin from inline elements.`); |
Template literal with variable interpolation in command context
| 470 | errors.push(`Inline element <${node.tagName.toLowerCase()}> has margin-right which is not supported in PowerPoint. Remove margin from inline elements.`); |
Template literal with variable interpolation in command context
| 473 | errors.push(`Inline element <${node.tagName.toLowerCase()}> has margin-top which is not supported in PowerPoint. Remove margin from inline elements.`); |
Template literal with variable interpolation in command context
| 476 | errors.push(`Inline element <${node.tagName.toLowerCase()}> has margin-bottom which is not supported in PowerPoint. Remove margin from inline elements.`); |
Template literal with variable interpolation in command context
| 557 | `Text element <${el.tagName.toLowerCase()}> has ${hasBg ? 'background' : hasBorder ? 'border' : 'shadow'}. ` + |
Template literal with variable interpolation in command context
| 569 | `Placeholder "${el.id || 'unnamed'}" has ${rect.width === 0 ? 'width: 0' : 'height: 0'}. Check the layout CSS.` |
Template literal with variable interpolation in command context
| 573 | id: el.id || `placeholder-${placeholders.length}`, |
Template literal with variable interpolation in command context
| 615 | `DIV element contains unwrapped text "${text.substring(0, 50)}${text.length > 50 ? '...' : ''}". ` + |
Template literal with variable interpolation in command context
| 818 | `Text element <${el.tagName.toLowerCase()}> starts with bullet symbol "${text.substring(0, 20)}...". ` + |
Template literal with variable interpolation in command context
| 928 | console.log(`Browser console: ${msg.text()}`); |
Template literal with variable interpolation in command context
| 931 | await page.goto(`file://${filePath}`); |
Template literal with variable interpolation in command context
| 968 | : `Multiple validation errors found:\n${validationErrors.map((e, i) => ` ${i + 1}. ${e}`).join('\n')}`; |
Template literal with variable interpolation in command context
| 980 | throw new Error(`${htmlFile}: ${error.message}`); |
Access to .env file
| 905 | tmpDir = process.env.TMPDIR || '/tmp', |