Markdown & Syntax
Kova supports standard Markdown via remark, GitHub Flavored Markdown (GFM) tables, Mermaid diagrams, and a set of Kova-specific extensions for presentation content.
Standard Markdown
Headings
# H1 — title slide (triggers the `title` layout)
## H2 — section break or slide heading
### H3 — sub-heading (renders as a paragraph-size label)
Shortcuts: Ctrl+1 through Ctrl+6 toggle heading levels on the current line. Pressing the same level again removes the heading marker.
Text formatting
| Syntax | Result |
|---|---|
**bold** |
bold |
*italic* |
italic |
~~strikethrough~~ |
~~strikethrough~~ |
`inline code` |
inline code |
Shortcuts: Ctrl+B for bold, Ctrl+I for italic.
No selection needed
If no text is selected when you press Ctrl+B or Ctrl+I, Kova inserts a placeholder (bold text / italic text) with it pre-selected so you can type immediately.
Lists
- Unordered item
- Another item
- Nested item (two spaces indent)
1. Ordered item
2. Second item
3. Third item
Blockquote
Lines beginning with —, –, or - after the quote body are rendered as an attribution in a smaller typeface.
Links and images
Image sizing — use the title attribute to control width:
 <!-- 50% of slide width -->
 <!-- fixed 300 px -->
 <!-- relative to font size -->
Supported units: %, px, em, rem, cqi.
Code blocks
Fenced code blocks with syntax highlighting. Specify the language after the opening fence:
Supported languages include Python, JavaScript, TypeScript, Rust, Go, SQL, Bash, and many more via highlight.js.
Slides containing only code blocks or Mermaid diagrams automatically use the code layout — a dark, full-width display optimised for readability.
Tables (GFM)
| Feature | Status |
| ------------- | ------ |
| Live preview | ✅ |
| Mermaid | ✅ |
| Custom themes | ✅ |
Horizontal rule
Use <hr> for a visual divider within a slide. Do not use --- inside a slide — it is the slide separator.
Diagrams (Mermaid)
Fenced code blocks with the mermaid language identifier are rendered as diagrams, automatically themed to match the active presentation theme.
```mermaid
graph LR
A[Write Markdown] --> B[Kova detects layout]
B --> C[Live preview]
C --> D[▶ Present]
```
Tip
See the Mermaid documentation for all supported diagram types: flowcharts, sequence diagrams, Gantt charts, pie charts, class diagrams, and more.
Kova-specific syntax
Column break (|||)
Force a two-column layout by placing ||| between two content blocks on the same slide:
## Comparing approaches
**Traditional tools**
- Manual layout adjustments
- Vendor lock-in
- Export quality varies
|||
**Kova**
- Layout detected automatically
- Plain `.md` files
- Native `.pptx` export
Kova splits the slide at the ||| and renders each side as a column. See Layouts — two-column for details.
Progress bars (!progress)
Numbers represent percentages from 0 to 100; decimals are allowed (!progress[Almost there](99.5)).
Multiple consecutive !progress bars are grouped as a single logical unit for layout detection — they won't accidentally trigger the grid layout.
YouTube embed (!youtube)
Displays the video thumbnail on the slide. During presentation, clicking the thumbnail opens the video in the default browser.
Export behaviour
YouTube embeds export to PowerPoint as a text placeholder with the URL — not as an embedded video. See Exporting to PowerPoint.
Poll / QR code (!poll)
Renders a scannable QR code pointing to the URL, plus the URL as text — useful for live audience interaction with Poll Everywhere or any URL-based polling tool.
Speaker notes
Add speaker notes below ??? on any slide. Notes are never visible to the audience.
## Our Roadmap
- Q1: Public beta
- Q2: v1.0 release
- Q3: Plugin API
???
Pause here and ask the audience what features they most want to see.
Remember: the plugin API question usually sparks good discussion.
In single-screen mode, press N to toggle the notes panel.
In dual-screen mode, notes appear permanently in the presenter overlay.
See Presenting — Speaker Notes for more.
Layout override
Force a specific layout regardless of content with an HTML comment at the top of the slide:
Available layout names: title, section, title-content, title-image, split, full-bleed, quote, two-column, bsp, grid, media, code.
See Layouts for what each layout looks like and when Kova uses it automatically.