You have ox-beamer, which lets you write your slides in Org-mode, and export using LaTeX and Beamer, which look pretty great. You can also use org-reveal, or org-re-reveal to make some visually very attractive presentations with reveal-js. And finally, if you want to actually have the presentation run inside Emacs, you can use dslide[0] which looks really nice, and leans heavily on org-babel.
[0] https://github.com/marp-team/marp [1] https://github.com/mfontanini/presenterm [2] https://revealjs.com/
I use Quarto with reveal.js and love it. I teach and particularly like the multiplex plugin[1] to sync the presentation on multiple devices. My students can open it on their laptops and I control the changing of the slides, but they can click on links or interact with the presentation themselves.
[0] https://ia.net/presenter [1] https://revealjs.com/multiplex/
The big downside for me is you don't have easy pixel-level control over layout like you do in PowerPoint or Google Slides. Even changing font size, for example, is a little clunkier. I hear some people also miss being able to draw diagrams and flowcharts.
the reason complex tools can do so much as each feature is needed in some obscure case. However because it is there presenters are tempted to use it when they should not.
Even if your presentation runs offline the browser is really good place for presentations to live at. E.g. I can include live circuit simulations on slides using circuit.js and if a student asks whst would happen to the output of a signal processing circuit if there was one more component I can just add it. If a question shows up that isn't in there I press ctrl + t and search for an image or a wikipedia article on the topic.
The only thing one has to think about is maybe to create a "clean" browser profile for presentations so your suggestions and personal things don't show up mid presentation.
let a=[...document.getElementsByClassName("slide")]
.map((a,b)=>[a,"slidenote"==(b=a.nextElementSibling)
?.className?b:a]),b=0,c=0,d=()=>a[b][c]
.scrollIntoView(),e=new BroadcastChannel("s"),
l=a.length-1;d();e.onmessage=({data:a})=>{c^=a.c,
b=a.b,d()};document.addEventListener("keypress",
({key:f})=>{b+=(f=="j")-(f=="k");b=b<0?0:b>l?l:b;
c^=f=="n";e.postMessage({c,b});d()});
div.slide, div.slidenote {
height: 100vh;
width: 100vw;
/* Other slide styling options below */
...
...
}
<div class="slide">
Anything in here is one slide
</div>
<div class="slidenote">
(optional) Anything in here is
a note for the slide above
</div>
You can trivially use the HTML and CSS inside markdown, so any markdown parser that generates HTML is now an ultra-lightweight slides generator.For a deeper explanation, see Dave Gaur's original minslides[0] and my own presentation on how I added note-support to it and golfed the JS code[1].
[0] https://ratfactor.com/minslides/
[1] https://nbd.neocities.org/slidepresentation/Slide%20presenta...
From what I have seen most of these tools need to do more user research on how powerpoint slides actually look like in practice.
There's a lot of "you're doing it wrong, show don't tell, just keep the basics on the slide" but the people that use powerpoint to make $$$ make incredibly dense powerpoint materials that serve as reference documents, not presentation guides (i.e. they are intended as leave-behind documents that people can read in advance)
Presentations are also quite hard because:
1. It must "compile to" Powerpoint (it must compile to powerpoint because your end users will want to make direct edits and those end users will NOT be comfortable in markdown and in general will be very averse to change) 2. Powerpoint has no layout engine 3. Powerpoint presentations are in fact a beautiful medium in which VISUAL LAYOUT HAS SEMANTIC MEANING (powerpoint is like medieval art where larger is more important)
If anyone wants to help me build an engine that can get an LLM to ACTUALLY make powerpoints please let me know. I am sure this is a lot harder than you think it is.
The average user is content enough with using plain PowerPoint and won’t bother with Markdown. People using Markdown are more on the “you’re doing it wrong, put the basics on the slide” side.
The people that make nice backgrounds for their talk, sometimes with a word or two, won’t get there with a text based tool either.
People that use LaTeX, markdown or some other text to slides tool are few and far between.
I would never be able to design my slides if I used a Markdown to PPT converter.
That is a PDF copy of the actual pitch deck Deutsche Bank used for a proposed trade to take advantage of the 2008 housing financial crash by "Shorting Home Equity Mezzanine Tranches" (an incredible and lucrative prediction they made back in 2007, when the PDF was authored). The real meat and potatoes starts on page 6, but every page after the disclaimer could be put on screen as a slide in a powerpoint.
Note how nearly every slide is a diagram with title and potentially a caption. Each diagram is annotated with custom annotations explaining the concepts at play, requiring a ton of annotations. There's charts, block diagrams, process workflows, tables, and more. A minority of the pages are text-only with bulleted lists. This is an ultra high value artifact and very little of it would have benefited from a markdown->slides automation. What makes it amazing is the sheer volume and detail of very specific information, only replicable via tremendous elbow grease.
They are typically 60+ pages slides on something like go-to-market strategy or organizational realignment that the C-level at the hiring firm hired them to do and will forward around to his reports and teams to implement.
Each slide is handcrafted to have a punchy title and be self contained, dense, with links to references and data sources. There's a hefty appendix section so that when someone asks a "what about X?" question, there's a slide in there about alternatives considered and a data-centric reason on why it wasn't or shouldn't be pursued.
> in legacy present slides/sections use "*" instead of "##"
A picture says more than a thousand words.
As much as I'd like to use a simple markdown based tool to create my presentations, most of these appear to come short regarding visuals (1).
Look at the 2007 iPhone introduction - thats how you use visuals to deliver a message.
Going from bullets to visuals is definitely not easy, and while I'm not as brilliant as Steve Jobs, I always give it my best shot. And a supporting tool makes it a lot easier.
(1) if anyone knows about a md-based slide creator supporting good visuals, I'm open to suggestions.
I want to convey technical and scientific material. My presentation isn’t to motivate a billion people to buy an iPhone. My presentation is meant to inform 50-100 people to learn a new technique. And the slide deck is markers for where they can follow up later for detail and references.
I too see presentations with walls of text. I go to academic and scientific conferences. This is helpful to me. I like it better than posters. I don’t want to go to a conference and have a bunch of Steve Jobs (or more likely Elizabeth Holmes) giving one word per slide presentations.
I also don’t have 100 people working on my slide deck. It’s just me. I don’t need a TED talk.
I wish people would recognize the different purposes and audiences for presentations.
Most of the time that I am presenting technical material, I spend it on explaining the concepts through short descriptions, hand-draw illustrations or diagrams.
If there’s code to show, it will be smaller snippets interspersed between those slides. If attendees want to deep dive into 100 lines of code, it is best that they do it on their own time at their own pace after I send out the materials.
I actually talk about code but this applies to non-technical presentations too. Yeah, it’s also not a sales presentation but don’t wall-of-text me.
Explain concepts to me.
I'd honestly prefer using straight html for the whole slidedeck, but want my slides to be user friendly for others who may inherit/fork them.
Like here's one
https://quarto.org/docs/presentations/revealjs/presenting.ht...
Having intentionally stayed away from going down the PDF rabbit hole, but now confronting it again recently … what’s the deal with how sparsely populated the space is with solid and (relatively) light weight rendering solutions/back-ends?
Am I missing something or am I right in thinking that there’s a kinda pandoc/FFmpeg shaped hole in the document tooling space that no one wants to (or can’t) fill? Where tex and chrome based solutions are arguably just too heavy for a number of needs but all we really have?
[1] https://speakerdeck.com/ajstarks/decksh-a-little-language-fo...
[2] https://speakerdeck.com/ajstarks/decksh-object-reference
I was going to write tooling to convert markdown to typst, but typst is so easy that I haven't bothered. Of course Jupyter has markdown support, but I'm normally running code when presenting with it (did 20 hours last week).
I’ve had it for a while and it’s awesome to write all the notes and stuff in markdown. They also provided a good amount of content on how to write good presentations.
Looking at these two offerings the iA presenter tries to look great out of the box straight away versus this one where you have to mess with the layout. It helps you focus on the content. I’ve done a few presentations with iA presenter and it’s been well received — note I’m a good speaker but not a great slide maker.
Its docs also work hard to sway you away from walls of text. It’s probably a good idea to download Presenter even if you don't want to use it, just so you can read its presentation advice.
It also lets you export your presentation plus speaker notes to a PDF later to distribute to your audience.
One of my coworkers copied our PowerPoint theme, built a super basic presentation mode with transitions and used the engine for interactive demos live in the slides running the code.
I am not sure how he managed to do it, I tried building a very simple game in godot and it took me way too much to figure out the physics etc. part, though that might be because I was making a simple shooting game like space invaders but with red and green squares and ability to rotate ...
Using godot to do this does seem to me pretty cool since godot is more interactive than lets say pygame but I am also still not sure how he managed to do it in godot, I would love it if your co worker could write a blog post explaining how he did so in godot!
I once wanted to create a presentation tool in ebitengine in golang just for fun and oh boy I failed miserably hard.
I genuinely like this idea. I had heard of this idea of using godot for unconvential usecases a long time ago in some HN post but seriously , while writing this post, I realized that your co worker could have also actually made a way to run that powerpoint tool in wasm since godot can compile to wasm and its kind of insane that you can get android,ios,web,every single desktop support while still not being electron or heavy on javascript.
I did find this https://github.com/GDquest/godot-presentations which is pretty interesting though I wish that some kind of video tutorial could go in hand with this because I am not that level of familiar with godot to actually run this
You can see it here: https://github.com/fzakaria/learn-nix-the-fun-way https://fzakaria.github.io/learn-nix-the-fun-way/1
I liked putting the commit SHA on the title slide :)
HedgeDoc [1] (a markdown collaborative pad tool) also uses reveal.js to build presentation slides from markdown pads. It's quite easy to use and works very well. Also it supports LaTeX for math and code highlighting.
The presentation mode is able to manage a dual screen interface so the speaker can have a timer, see the next slide, and some private notes if necessary.
Very cool!
The most interesting thing for me is that you can write your own Vue components for your most specific use cases. Makes it easy to write some rather interactive slides. And it saves you from having to learn some presentation-specific software, some motion design or video making tool. Just quickly code your way through everything.
Quite refreshing to build slides that way.
[1] https://github.com/hakimel/reveal.js/compare/master...rectal...
I've been trialling it for a little while and loving the whole experience so far.
Just a little Python to generate a Typst file and then render it.
It won't fit everyone but for me it's quick, flexible enough and creates good-looking slides.
So far I write a rough draft in obsidian copy into chatgpt / claude then copy back into obsidian. I'd love a way in app to work in more a fluid way. Much like how Notion has its simple AI actions (improve this writing, etc).
If markdown can be used to create your slides, it seems like you're incorrectly using slides as a medium ... when instead, you should be writing a memo.
Note: I'm not hating on the product. Just asking a higher level meta question.
I like using Markdown for all sorts of "human and machine readable" tasks these days. Text-only formats are really, really nice, and Markdown has formatting-for-display built in, so using it as a text format for defining slides seems like a natural extension to me.
Maybe you're saying, "You shouldn't use slides. You should be writing a memo!" I guess that is a different take from my assumptions which was: "Sometimes I want to make slides. I'd like them to be easy to author and edit in text. Maybe Markdown would be nice..."