Show HN: MkSlides – Markdown to slides with a similar workflow to MkDocs
5 comments
·November 27, 2025abdullahkhalids
Don't you find the linear format of slides built in this fashion very constraining?
Many excellent presenters use a slide as a 2D canvas on which text and images can be placed in arbitrary locations - whatever best helps get the ideas across to the audience. Is losing this feature worth the advantages of this tool?
shipman05
A text-based tool like this certainly puts a ceiling on presentation quality. Whether that really matters is situational. In most cases, content is more important than style once a certain threshold of "not hideous" is reached.
The same tradeoffs apply to a text-based diagram tool like mermaid.js vs more traditional diagramming tools like Miro.
My coworkers' Miro diagrams are prettier than my mermaid diagrams. But mine are composable and able to be versional controlled. I'm able to create complex diagrams many times faster using a text-based tool.
Ultimately, slides and diagrams are for conveying knowledge. If you're able to convey the same knowledge with significantly less effort, that outweighs the loss of "style points" in most situations (internal knowledge-transfer, meet-ups, etc).
jimmySixDOF
Reveal.js vs Sli.dev seems like a toss up I am sure there are nuanced differences or maybe I am missing something obvious ?
dkdcio
Quarto also supports this: https://quarto.org/docs/presentations/
not sure if Quarto-specific but it lets you have Python code is slides too which is nice, i.e. can directly use visualization libraries
lowbloodsugar
I’ve used presenterm. Like it a lot.
As a teacher, we keep our slides as markdown files in git repos and want to build these automatically so they can be viewed online (or offline if needed). To achieve this, I have created MkSlides. This tool converts all markdown in a folder to slides generated with Reveal.js. The workflow is very similar to MkDocs.
Install: `pip install mkslides`
Building slides: `mkslides build`
Live preview during editing: `mkslides serve`
Comparison with other tools like marp, slidev, ...:
- This tool is a single command and easy to integrate in CI/CD pipelines.
- It only needs Python.
- The workflow is also very similar to MkDocs, which makes it easy to combine the two in a single GitHub/GitLab repo.
- Generates an index landing page for multiple slideshows in a folder which is really convenient if you have e.g. a slideshow per chapter.
- It is lightweight.
- Everything is IaC.