Skip to content

Present and share ​

deck.html is a static page. Open it in any browser, put it on a web server, or send it as one file.

The viewer with the speaker notes panel

Keyboard ​

KeyAction
→ PageDown SpaceNext slide
← PageUpPrevious slide
Home / EndFirst / last slide
NSpeaker notes panel
PPresenter window: notes, next slide, timer
SStatic mode (no animations)
FFullscreen
EBack to the editor (only when deckforge edit serves the deck)
  • Links to a slide: deck.html#3 or deck.html#slide-<id>.
  • Reduced motion: if the system asks for reduced motion, slides appear in their final state.
  • No JavaScript: every slide stays readable.

Print from the browser. You get one 13.333 × 7.5 in page per slide, without the controls. For other paper sizes or margins, each slide is scaled down to fit. Images on slides you never opened are still printed.

Export to PowerPoint ​

Click PowerPoint in the editor's top bar, or run:

bash
deckforge export my-talk            # writes my-talk/deck.pptx

The export measures each slide as the browser lays it out and rebuilds it as native PowerPoint objects:

In the deckIn PowerPoint
Headlines, text, lists, linksEditable text boxes with the same fonts, sizes, colours and line spacing
Cards, pills, panels, borders, dividersRectangles, rounded rectangles, ellipses and lines
Images and image overlaysPictures, cropped like on the slide
Icons, arrowheads, gradientsVector (SVG) pictures
Speaker notesSpeaker notes

Hidden slides are left out. The editor saves deck.pptx next to deck.yaml and downloads it. The CLI needs Playwright, see deckforge export.

Check the result

Slides are exported in their final state, without the staged reveals. PowerPoint uses the fonts installed on the computer that opens the file: when a theme font is missing, the export uses the fallback the browser showed and lists it. See the limitations.

Runtime modes ​

The --runtime option sets how deck.html loads the viewer's script and stylesheet:

ModeOutputNetwork
local (default)deck.html + deckforge/ folder (+ assets/)none
inlineOne self-contained deck.html, images includednone
cdndeck.html that loads the runtime from jsDelivr (tagged releases only)jsDelivr
bash
deckforge build my-talk --runtime inline --out ~/Desktop/talk.html

Share one file

Use inline to send a deck by email or chat. It opens offline from any folder.

Preview while you write ​

bash
deckforge serve my-talk

This command serves the deck read-only on 127.0.0.1. It rebuilds and reloads the page whenever deck.yaml changes.

Released under the MIT License.