Skip to content

Latest commit

History

84 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DeckHTML

npm versionnpm downloadsLicense: MIT

DeckHTML — HTML to PPTX

Languages:English · 简体中文 · 繁體中文 · Français · Deutsch · Español · 日本語 · 한국어

Convert HTML files, stdin, or URLs into PPTX or PNG presentations from your terminal.

HTML → PPTX demo

Quick Start

Run without installing:

npx -y @deckflow/deckhtml@latest index.html -o deck.pptx

Installation

npm install -g @deckflow/deckhtml
deckhtml --version

Convert HTML

Convert a single HTML file (output defaults to the same path and base name):

deckhtml index.html
# → index.pptx

Specify an output path:

deckhtml index.html -o deck.pptx

Pipe HTML from stdin:

cat index.html | deckhtml - -o deck.pptx

Convert multiple HTML files in order:

deckhtml page1.html page2.html page3.html -o deck.pptx

Convert a hosted page:

deckhtml https://example.com/deck.html -o deck.pptx

Output Formats

Output format is inferred from the -o extension:

FormatDescription
pptxPowerPoint deck output (default)
pngPNG frame output
deckhtml index.html -o frames.png

Execution Modes

ModeDescription
autoUse cloud when an API key is configured; otherwise run locally
localAlways run locally (no API key required)
cloudAlways run in the cloud (API key required)
deckhtml index.html --mode local
deckhtml index.html --mode cloud -o deck.pptx

Cloud-Only Enhancements

These flags require cloud mode:

FlagDescription
--embed-fontsEmbed fonts into the output
deckhtml index.html \
-o deck.pptx \
--mode cloud \
--embed-fonts

Authentication & Config

Local conversion works without an API key. Cloud mode can start as a rate-limited guest; sign in or configure an API key when prompted or when you need authenticated access.

deckhtml auth login
deckhtml auth status
deckhtml config set api-key <key>

For CI, Docker, or agent environments, set the environment variable (takes precedence over stored credentials):

export DECKHTML_API_KEY=your-api-key

Persistent settings:

CommandDescriptionDefault
deckhtml config set api-key <key>API key for cloud requests
deckhtml config set size <size>PPTX dimensions1920x1080
deckhtml config set webhook <url>Default callback URL
deckhtml config set retention-hours <n>Cloud file retention (hours)3

Credentials are stored locally at ~/.deckflow/credentials.

CLI Reference

Conversion Flags

FlagDescriptionDefault
-h, --helpShow help
--versionShow version
-o, --output <path>Output pathSame base name as input
-v, --verboseDetailed logs to stderrfalse
--quietOnly errors and final resultfalse
--jsonMachine-readable JSON on stdoutfalse
--reportGenerate a conversion reportOff
--mode <mode>auto, local, or cloudauto
--width <pixels>Playwright viewport width (height scales at 16:9)1920
--platform <platform>win, mac, ios, android, or linuxDetected
--embed-fontsEmbed fonts (cloud only)false
--executable-path <path>Chromium binary for local conversion (else DECKHTML_CHROMIUM_EXECUTABLE_PATH env, then Playwright's bundle)
--exclude <selector>CSS selector matching runtime/navigation elements to exclude
--identity-attribute <name>Attribute carrying a stable element identity (default: data-element-id)data-element-id
--forceOverwrite an existing output file (default: refuse)false

--quiet and --verbose cannot be used together. Output format is inferred from the -o extension (pptx or png).

JSON Output

deckhtml index.html -o deck.pptx --json
{
"ok": true,
"input": ["index.html"],
"output": "deck.pptx",
"format": "pptx",
"mode": "local"
}

Programmatic API

Use the package as a library in Node.js. The library returns a Buffer (or PNG image buffers) — it never writes to disk on its own. Write the output yourself, or use the CLI for file output.

import{convertHtmlToPptx}from'@deckflow/deckhtml';constresult=awaitconvertHtmlToPptx({input: 'index.html',});// result.data: Buffer containing the PPTX file// result.slideCount: number of slides// result.usedFonts: resolved font names// result.stats: element/font/simplified statisticsimport{writeFileSync}from'node:fs';writeFileSync('deck.pptx',result.data);

Documentation

Start with the quick start, then learn the core concepts and architecture. Detailed CLI documentation is available in the docs/cli/ directory.

License

MIT

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

10 stars

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages