PRESENTATION
Build PPTX presentation files from OQL verbs. Compose slides with positioned content — titles, body text, images, graphs, tables, bullet lists, speaker notes, and video. Output is a standard .pptx file.
[pending] — PRESENTATION is designed and specified. Runtime implementation is in progress. Requires python-pptx (server dependency).
Structure
PRESENTATION INTO "/root/deck.pptx"
OPEN NEST
SLIDE LAYOUT "content" DURATION "5s" OPEN NEST
BACKGROUND "#1a1a2e"
TITLE "Q3 Results" AT 5% BY 5% FORMAT 90% BY 10% ALIGN LEFT TOP
BODY "Revenue exceeded targets across all regions." AT 5% BY 18% FORMAT 90% BY 12% ALIGN LEFT TOP
GRAPH TYPE "bar" WITH ?revenue AT 5% BY 32% FORMAT 60% BY 55% ALIGN LEFT MIDDLE
IMAGE "/root/logo.png" AT 80% BY 2% FORMAT 15% BY 8% ALIGN RIGHT TOP
BULLET OPEN NEST
ITEM "EMEA up 34%"
ITEM "APAC up 21%"
ITEM "Americas up 18%"
CLOSE NEST
NOTE "Mention the restructuring impact on EMEA here."
CLOSE NEST
SLIDE LAYOUT "blank" OPEN NEST
TITLE "Thank You" ALIGN CENTER MIDDLE
CLOSE NEST
CLOSE NEST
SET ?file
SLIDE modifiers
| Modifier | Description |
|---|---|
LAYOUT "type" | Slide layout. Types: "title", "content", "two-column", "blank", "image-full", "title-only" |
DURATION "3s" | Auto-advance timing. Omit for manual advance. If no slide has DURATION, all durations are ignored. |
Positioning
All positions and sizes use percentages relative to the slide dimensions. AT x% BY y% positions from the top-left corner. FORMAT w% BY h% sets width and height. ALIGN horizontal vertical aligns the element within its bounds.
TITLE "Heading" AT 5% BY 5% FORMAT 90% BY 10% ALIGN LEFT TOP
IMAGE "/root/logo.png" AT 80% BY 2% FORMAT 15% BY 8% ALIGN RIGHT TOP
GRAPH TYPE "pie" WITH ?data AT 5% BY 20% FORMAT 45% BY 60% ALIGN LEFT MIDDLE
BODY "Footer text" AT 5% BY 88% FORMAT 90% BY 8% ALIGN CENTER BOTTOM
If AT and FORMAT are omitted, the element flows automatically in layout order. If only ALIGN is set, the element is placed by alignment alone within the full slide.
(* Alignment only — no explicit position *)
TITLE "Centered Heading" ALIGN CENTER MIDDLE
IMAGE "/root/logo.png" ALIGN RIGHT TOP
BODY "Footer" ALIGN CENTER BOTTOM
Alignment values
| Horizontal | Vertical |
|---|---|
LEFT CENTER RIGHT | TOP MIDDLE BOTTOM |
Slide content verbs
| Verb | Description |
|---|---|
TITLE "text" | Slide title text |
SUBTITLE "text" | Subtitle text |
BODY "text" | Body paragraph text |
IMAGE "/root/path.png" | Embedded image |
VIDEO "/root/clip.mp4" | Embedded video |
GRAPH TYPE "type" WITH ?data | Embedded SVG chart |
TABLE WITH ?data | Table from array of objects |
BULLET OPEN NEST ITEM "..." CLOSE NEST | Bulleted list |
NOTE "text" | Speaker notes (not visible on slide) |
BACKGROUND "#hex" | Slide background colour |
THEME "name" | Slide colour theme |
FONT "Inter" AS "24" | Font family and size for subsequent text elements |
COLOR "#hex" | Text colour for subsequent text elements |