Syntax
SliDesk uses Markdown to define slides.
Headings and slide breaks
# defines a level-1 title. ## defines a level-2 title and starts a new slide.
## First Slide
# My Talk Title
Content of the first slide.
## Second Slide
Content of the second slide.
The first # heading does not start a new slide — it is the global talk title.
Text formatting
**bold text**
*italic text*
~~strikethrough~~
`inline code`
Lists
- Unordered item
- Another item
1. Ordered item
2. Another ordered item
Links
Raw URLs are automatically converted to clickable links.
[Custom link text](https://example.com)
Code blocks
```js
const greeting = "Hello SliDesk!";
console.log(greeting);
```
Blockquotes
> This is a quote
> Spanning multiple lines
Horizontal rules
---
HTML
Raw HTML is fully supported:
<video autoplay loop src="demo.mp4"></video>
<canvas id="chart"></canvas>
Slide classes
Add classes with .[classname] after the heading:
## My Slide .[cover dark]
Renders as <section class="sd-slide cover dark">.
Templates
Apply a template with .[#template-name]:
## My Slide .[#split left right]