Skip to content

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.