from Hacker News

Presentation Slides with Markdown

by sadeshmukh on 4/28/25, 1:21 AM with 87 comments

  • by spudlyo on 4/28/25, 2:40 PM

    I keep seeing new projects that implement things that Emacs and Org mode already do incredibly well. I guess it's a testament to how steep the Emacs learning curve is, or perhaps how ugly the defaults look.

    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/positron-solutions/dslide

  • by vanderZwan on 4/28/25, 10:46 AM

    Here's my neo-Luddite take on this. Slides with support for notes in a synchronized second window in just 371 bytes of minified javascript, some HTML and some CSS:

        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...

  • by nairadithya on 4/28/25, 5:25 AM

    For more like this: Check out marp[0], presenterm[1] and reveal.js[2]

    [0] https://github.com/marp-team/marp [1] https://github.com/mfontanini/presenterm [2] https://revealjs.com/

  • by theodorewiles on 4/28/25, 5:36 PM

    Whoever writes the tool that can Actually Make a legitimate microsoft office powerpoint slide from text will make a lot of money.

    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.

  • by disintegrator on 4/28/25, 10:16 AM

    The most amusing thing I found about Go is that they built a presentation framework similar alongside the language. It's got some additional syntax on top of markdown but the documentation to use it can readily fit in an LLM's context window. I'd say it's good enough for many simple presentations.

    https://pkg.go.dev/golang.org/x/tools/present

  • by sugarkjube on 4/28/25, 8:02 AM

    Whenever I go to a tech conference, I see slide after slide filled with a wall of text, or in the best case 3 to 5 bullet points with text only.

    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.

  • by ephimetheus on 4/28/25, 5:47 AM

    What always disqualifies these projects for me is the fact that they need to use a headless browser to export to PDF. PDF export is the primary feature I need from these, and it’s a shame the export mechanism is still this slow and unreliable.
  • by ajstarks on 4/28/25, 4:50 PM

    FYI, I use decksh [1][2] a DSL (aka "little language") for decks, information displays and charts decksh generates deck[3] markup that is rendered as PDF, SVG, or PNG.

    [1] https://speakerdeck.com/ajstarks/decksh-a-little-language-fo...

    [2] https://speakerdeck.com/ajstarks/decksh-object-reference

    [3] https://github.com/ajstarks/deck/blob/master/README.md

  • by __mharrison__ on 4/28/25, 10:48 AM

    I'm using Jupyter and typst for my slides these days. (Which depends on the audience.)

    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).

  • by RandomWorker on 4/28/25, 7:10 AM

    The company behind the minimalist writer is writer had a presenter app called iA Presenter. https://ia.net/presenter

    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.

  • by setheron on 4/28/25, 9:00 PM

    Not bad but I ended up writing a lot more CSS/HTML than I thought I would. Made me wonder if i should just write reveal.js instead.

    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 :)

  • by malshe on 4/28/25, 2:34 PM

    I like these projects but in my experience the four most common products people use for making slides are Google Slides, Canva (mostly by undergraduate students), PowerPoint, and Keynote. The common thread is the ease of use. So it's difficult to see why someone would switch to another product.
  • by kubb on 4/28/25, 10:32 AM

    For those using Obsidian: https://help.obsidian.md/plugins/slides
  • by seanhunter on 4/28/25, 5:31 PM

    I used to use https://github.com/webpro/reveal-md , which is a very thin layer on reveal.js.
  • by dingensundso on 4/28/25, 10:29 AM

    I usw pandoc to create slides from markdown: ```pandoc -t beamer slides.md -o slides.pdf``` And if you prefer HTML+JS slides, pandoc can do that too: https://pandoc.org/MANUAL.html#slide-shows
  • by darkhorse13 on 4/28/25, 3:04 PM

    Slidev is awesome. I'm working on something like this but for forms: https://forms.md
  • by alienreborn on 4/28/25, 11:41 AM

    I have been using https://www.deckset.com/ for the same for years and have no complaints.
  • by celie56 on 4/28/25, 6:15 PM

    The tool looks nice. I've used revealjs for this use case before so I was happy to see your comparison documentation: https://sli.dev/guide/why#comparisons
  • by doubtfuluser on 4/28/25, 5:36 AM

    What is the advantage over the reveal.js / quarto eco-system. I’m using that for my lectures, and am really happy about it (especially since it’s pretty easy to make an llm add automatic speaker notes and timing information)
  • by outlore on 4/28/25, 5:14 PM

    I’ve tried out a few of these, and iA Presenter seemed to be the only one that can handle arbitrary long text by dynamically changing the font size. However I wish you could specify a floor and ceiling for the font size so that fewer lines of text didn’t look comically big. Do folks have recommendations for markdown slide software that can strike this balance? I remember slidev would cut off text when it became too long
  • by manuhabitela on 4/28/25, 2:39 PM

    Used this in the past and it's my favorite tool to make presentations now. It's really the most dev friendly tool I managed to try, and I guess I tried a few.

    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.

  • by juanpabloaj on 4/28/25, 9:56 PM

    I tried something similar some years ago, maybe 10 years ago or more, finally I didn't find a way to make it profitable ... and lost myself.

    https://github.com/juanpabloaj/platon

  • by rectalogic on 4/28/25, 11:24 AM

    I use a small patch [1] to revealjs [2] hosted on GitHub pages [3], just point it to a markdown gist

    [1] https://github.com/hakimel/reveal.js/compare/master...rectal...

    [2] https://github.com/hakimel/reveal.js

    [3] https://gist-reveal.rectalogic.com/

  • by s-xyz on 4/28/25, 6:04 PM

    Love the concept, am a big fan of these kind of solutions. I can see it also being a use case for non-technical teams to ensure some kind of design consistency. Sales can be horrible in presentations and slides.
  • by Moggie100 on 4/28/25, 1:04 PM

    I'd just like to throw https://hedgedoc.org/ into the mix here, for anyone looking for a collab + notes + presentation selfhosted thing.

    I've been trialling it for a little while and loving the whole experience so far.

  • by cavenditti on 4/28/25, 9:45 AM

    I wrote my quick and very opinionated solution for this: https://github.com/cavenditti/quickslides

    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.

  • by ako on 4/28/25, 10:14 AM

    What is nice of the text/code based presentation tools is that you can easily have them be generated by an LLM: I’ve used it to generate a revealjs based presentation to explain a code base, including svg based (sequence) diagrams to illustrate the flow, based on the LLM (windsurf) inspection of the code base.
  • by inodb2000 on 4/28/25, 6:52 AM

    I’m using slidev as my main software for presentations on a mostly msoffice based company. I can export to pptx format (it’s screenshot image based though) which makes my colleagues happy for some reason… I’m using the integrated mermaid support to add simple architectures schemas or simple database driven charts.
  • by aborsy on 4/28/25, 6:55 PM

    Latex with Beamer is amazing. I haven’t made slides with Microsoft and Apple software for a long time. Do they make better slides?
  • by resiros on 4/28/25, 12:55 PM

    This looks very useful to get llms to generate slides. It would be nice if it had an llm.txt I can add as a context directly. Maybe an MCP server too
  • by skeptrune on 4/28/25, 5:07 PM

    I'll have to try it and see if it's better than Marp next time I'm building a presentation.
  • by dmje on 4/28/25, 2:13 PM

    I use Obsidian. That way my slides are just notes in my existing knowledge base - searchable, linkable, etc
  • by tiffanyh on 4/28/25, 5:34 PM

    Isn't this inherently flawed?

    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.

  • by gitroom on 4/28/25, 12:57 PM

    pretty cool seeing all these approaches for making slides with code, makes me kinda curious whether the tool or the workflow matters more in the end - you think the actual structure of a talk really changes based on how easy the tool is?
  • by swyx on 4/28/25, 9:26 PM

    what a great landing page explaining the basic concepts. kudos whoever worked on that.
  • by sshine on 4/28/25, 9:06 AM

    Reminds me of:

    https://slides.com

  • by mentalgear on 4/28/25, 4:02 PM

    very useful! is custom / tailwind css also supported ?
  • by Acrobatic_Road on 4/28/25, 7:05 PM

    Suprised nobody here ha mentioned sent.
  • by precompute on 4/28/25, 1:08 PM

    For Emacs, Org-Present and epresent work well.
  • by ingen0s on 4/28/25, 11:09 PM

    belicimo
  • by DyslexicAtheist on 4/28/25, 9:17 PM

    the minute a CoolNewThing uses npm I'm out. Not gonna install hundreds of vulnerable dependencies for CoolNewThing