kslides¶
kslides is a Kotlin DSL for the reveal.js presentation framework. Author your slides in Markdown, raw HTML, or the type-safe kotlinx.html DSL, and ship them as a static site or live Ktor server.
Why kslides?¶
- One source, two output modes — render to static HTML for Netlify or GitHub Pages, or serve dynamic content over HTTP with Ktor.
- Mix authoring styles — Markdown for prose, raw HTML for fine control, the Kotlin DSL for anything generated.
- Hierarchical configuration — set defaults globally, override per presentation, and tweak per slide.
- Batteries included — embedded reveal.js, Kotlin Playground iframes, Kroki diagrams, and Lets-Plot charts.
A taste¶
fun main() {
kslides {
presentation {
markdownSlide {
content {
"""
# Hello, kslides!
A Kotlin DSL for reveal.js.
"""
}
}
}
}
}
That's a complete kslides program. Run main(), open docs/index.html, and you've got a slide deck.
Where to next?¶
- Installation — add kslides to a Gradle project.
- Quickstart — build your first deck end-to-end.
- Slides — Markdown, HTML, and DSL slide types.
- Configuration — the global → presentation → slide cascade.
- Output modes — static site vs Ktor server.
- KDocs — Dokka-generated API reference.