I found Presenterm [1] to be optimal for me. Simple and works in the terminal, yet powerful to export to PDF and HTML. It supports Mermaid and images. I'm also collecting a list [2] with other Markdown-first presentation tools, and according to the git stars, reveal.js seems to be the most popular. Tough for me, it was too heavy.
i made a toolset i call "mdslides" for making pure HTML+CSS (no JavaScript) presentations in Markdown. it's just a CSS stylesheet and an 8 line Awk preprocessor for a slide delimiter, adding just enough HTML wrapping to work with the stylesheet. the stylesheet adds page breaks at each slide so you can get a PDF by asking your browser to print/save-as-PDF. it should work with any CommonMark Markdown formatter (i use "md2html" from the MD4C project).
I tried to use pandoc+revealJS, then tried presenterm (which was really nice but didn't give me enough control over font sizes), and then settled on Marp, which worked great.
Ha, yeah I think it's my vim muscle memory that made it feel so weird. `j` going left instead of down and `k` going right instead of up. `h` and 'l` probably would have made me feel right at home though. (And in fairness, changing the keys is trivial in this case!) :-p
Those are Vim bindings. The J key rests right under your index finger (and it’s easy to find it thanks to the nudge on your key), which enables you to spend little to no energy to “scroll down”; the K key is for scrolling up.
This is my favorite size project. It allows us to be pedantic about every detail.
When the key press event is triggered current is to be increased or decreased if two conditions are met. One shouldn't check just one, take action then change it back if the other condition isn't met.
The else is there because we don't need to check the other condition if the first is true.
Not that the original code doesn't work. I just want to execute instructions needed and avoid unnecessary ones if it is simple enough. The case where we try to increase beyond the array size would still trigger the second check. Even more correct would be:
Could add clicker support (which I have done previously). Note however that clickers vary between Up/Down and PgUp/PgDown. Enabling the former was potentially annoying if you like to use the arrow keys to scroll, so I made that configurable.
Alternatively you configure mappings per device outside the browser.
I use HTML for my presentations and publish them online mentioning the URL at the top, such that people can open them on their device, which is often a smart phone. I take that into account for the interactive parts of the presentation.
Then could post it it when the clock advances by a second, shortly before the slide advances on the main screen. Aggressively poll it on the clients
to figure out how many ms after the whole second to poll.
All the screens would advance simultaneously which would impress the developers.
If someone in the audience has a question they can press a button to have their face and audio streamed to the big screen. Modified by LLM of course, or it would be pointless to have.
one thing that I immediately noticed is that this site has no mobile support at all.
that's why I will link this presentation I made, in just a few hours, for a school project. it has mobile support, automatic fullscreen, and is still lightweight. unfortunately, I lost the code for the engine alone, so I only have the "exported product".
[1] https://github.com/mfontanini/presenterm
[2] https://www.ssp.sh/brain/markdown-presentations-or-slides/