top | item 34501901

Marp: Markdown Presentation Ecosystem

223 points| bjourne | 3 years ago |marp.app | reply

102 comments

order
[+] Helmut10001|3 years ago|reply
For my lectures [1], I use reveal-js [2], created with Jekyll from Markdown slides [3], surprised no one has mentioned reveal-js so far. The combination with Jekyll is great, since you can author & organize larger lectures in multiple smaller, ordered Markdown files. Reveal also has some really nice code animations, e.g. [4] or [5]. This [6] is the git repo for [1].

[1] e.g. https://kartographie.geo.tu-dresden.de/ad/python_datascience...

[2] https://revealjs.com/

[3] https://github.com/sylhare/Reveal-Jekyll

[4] https://kartographie.geo.tu-dresden.de/ad/python_datascience...

[5] https://kartographie.geo.tu-dresden.de/ad/python_datascience...

[6] https://gitlab.hrz.tu-chemnitz.de/tud-ifk/python_datascience...

[+] kmarc|3 years ago|reply
I wanted to love revealjs... but the "everything centered" approach seems to me low-effort and chaotic. Maybe a pleasure to author and render it, but hard to follow as a viewer the always position-changing content.
[+] pydry|3 years ago|reply
I'm curious what people's experiences are who have used both. It seems to be the most solid competitor in this field.
[+] amai|3 years ago|reply
I believe https://quarto.org/ is the way to go in the universe of Markdown tools. At least for serious scientific presentations it seems the better choice. Under the hood it uses pandoc markdown and converts it into a revealjs presentation.
[+] doersino|3 years ago|reply
Since everyone's sharing their implementation of "slides, but written in Markdown", here's mine: https://github.com/doersino/markdeep-slides

It's perhaps unique in that it doesn't require any sort of build process – inheriting its approach from Markdeep (https://casual-effects.com/markdeep/), it's just an HTML file (containing your Markdown content and a few <script> tags at the bottom) and a bit of JS/CSS.

[+] amtamt|3 years ago|reply
This is so nice. One feature I would like to see in web presentation tools where we can run multiple browsers in different location with participant view, synced with the view what presenter is showing. Can save a ton of bandwidth then by not having to share the screen and not having to need video streaming.
[+] sfpotter|3 years ago|reply
Using Markdown for presentations seems like we're going in the wrong direction, if anything?

Presentations should have as little text as possible, but Markdown is a text-first markup language. I feel like if I used Markdown, I would end up putting way too much text on the screen because it's what's most convenient.

[+] yalue|3 years ago|reply
Boy, if only you saw how popular Beamer (a LaTeX presentation framework) was in certain academic circles. Spoiler: it leads to exactly the problem you describe, in addition to using some default styling that manages to be both hideous and crushingly bland at the same time. At least, based on the screenshots, this proposed framework doesn't have the second problem.

I guess, the way I view this is as a "better beamer" (which isn't saying much IMO) rather than a better powerpoint. Basically, it's a way for people who were going to make a text-heavy presentation anyway to produce something that looks OK, and to avoid using a heavyweight tool like LaTeX.

[+] masukomi|3 years ago|reply
Markdown doesn't encourage or discourage text volume per slide. that's entirely the human. I mean sure, there's nothing stopping you from putting the full Illiad per slide but... again, that's you not the markdown.

you could just as easily paste or type paragraphs worth of text per slide in GUI presentation tools.

It's more a problem of not thinking about the volume you're putting on a slide or not using a tool that gives you good visual feedback like a GUI app does as you add text.

I've been using Deckset https://www.deckset.com/ for years and tend to have very little text per screen.

[+] cycomanic|3 years ago|reply
Having used many different tools to create presentations, including sozi, and jessyink (svg to presentation tools using inkscape), Markdown tools (reveal, sli.dev, reveal via org mode) and power point, I actually find that using Markdown tools typically leads to less text in slides (I know this is counterintuitive). You essentially often end up with a single statement/single image type slides that one often sees in "inspirational" type presentation (e.g. Ted talks.

There in also lies an issue with Markdown presentations, more complex layouts (e.g. a side by side comparison) often require tweaking css/html and are more inconsistent. Unfortunately I find it very hard to avoid layouts like these for deeply technical content.

[+] gugagore|3 years ago|reply
I agree. Graphical animations (even to highlight text, tables, figures) is such an essential part of communicating in a slide show, and I have not found a tool that achieves both separation of content and style while allowing convenient design of these graphical elements.
[+] claytonjy|3 years ago|reply
I agree, but lots of folks are making presentations of this style because it's expected of them and they don't have the power to rock the boat, like the sibling comment about Beamer. Those folks still deserve good tools.

History and momentum is part of it, but the other part is the value of the slides when viewed later. There's an inverse correlation between the usefulness of slides and the quality of the presentation!

Best I've seen is low-text Google slides with heavy speaker notes included, but that's more work and prep than most people are willing to do (myself included).

[+] atoav|3 years ago|reply
I think it depends. If you need to write many slides fast, this is a very good format to get it done.
[+] dewey|3 years ago|reply
There's also an alternative coming out from the people building iA Writer: https://ia.net/presenter

The problem with all of these is that there's no good way to live-collaborate with others. I feel like for most work use cases this is table stakes these days.

[+] super256|3 years ago|reply
I hope they won't just focus on the presentation of graphics, but also on text.

When you have many code samples in your project, solutions like Keynote fall apart, unless you screenshot your code and add it as a graphic. Same for formulas; MathJax or something similar would be great.

I used Marp before and it was the best solution I found so far.

[+] neodymiumphish|3 years ago|reply
Are you talking about collaboration during the draft process for slides? This seems like realm that HedgeDoc[0] could take on, as they already support slide presentation modes for any of their collaborative markdown files. My only issue is with how difficult it seems to an average user to make decent slides using this method.

[0]: https://hedgedoc.org/

[+] methyl|3 years ago|reply
Do you know any way to get the beta access besides just waiting?
[+] paultopia|3 years ago|reply
oooooh.... I'd love a beta invite for this if anyone has one.
[+] gampleman|3 years ago|reply
I wish someone made a Markdown -> Keynote tool.

Markdown is great to write a talk (especially a talk about code) and not get distracted by pimping your slides. But once it comes time to make your slides look really great, I wish there was a proper UI for it (with fancy anination etc).

[+] masklinn|3 years ago|reply
Pandoc apparently supports exporting to PowerPoint, maybe that could be a sufficient intermediate step from which you can import into keynote?

Alternatively it supports a few HTML-based slides support (as well as beamer), that’s no UI but it should offer good opportunities for styling / customising.

[+] Dunedan|3 years ago|reply
In the past I used reveal.js with its Markdown plugin to create slides for presentations. While that worked somewhat it always felt like working against reveal.js. Also their default of editing the index.html and other files in the source code felt really odd and I never managed to get good looking PDFs out of it (and I tried a lot).

Then I stumbled over Marp and it's been great. Don't get me wrong, it's not perfect, but for my use cases it's much better than using reveal.js with Markdown, as it just gets out of the way. Write your Markdown, maybe sprinkle in a bit of CSS and that's it. Wanna generate standalone HTML pages or a PDF out of it? Just run one command and get beautiful looking results.

[+] a3w|3 years ago|reply
markdown -> reveals.js pandoc is great. Having an tree-view overlay for your 2D presentation flow in the final presentation is as good as slides get.
[+] pickledish|3 years ago|reply
Ha, I am stunned to see there are so many of these!

I’m sure they all work very well, in my own case I’ve been using Deckset for a number of years now and have always been impressed with the polish and usability:

https://www.deckset.com/

[+] dainiusse|3 years ago|reply
Congrats for posting. But I open up the page - don't see any easy way to launch fullscreen example and I quit.
[+] michaelrpeskin|3 years ago|reply
I _really_ want to like any of the markdown to slides tools, but I can never find one that makes sense for my workflow.

I've revamped my entire workflow around writing proposals, reports, and other collaborative documents using markdown. With the time savings of using plain text and git, I can put together a professional looking document in a third the time compared to when we were all passing around proposal_version2_final_final2.docx around. And with most of the company using Azure DevOps wikis which are markdown based, I can have everyone collaborate in the wiki and then I pull the repo locally, cat the .md files together and render as a pdf and send it out.

...but my presentations are typically a title, one or two phrases, and a figure. And then I mark up the figure with arrows or circles, or other overlays. The only way I can get that to work in a markdown-to-slides workflow is to end up drawing the figures in powerpoint or draw.io or something, exporting them as a png and embedding them in the slide. So if I'm going to be in powerpoint anyway, I just end up making the slides there.

That being said, I'll probably spend the day in the Marp rabbit hole and see if I can get it to work for me. I hadn't heard of it until today. If I can live in markdown and VS Code, I'll be happy!

[+] masukomi|3 years ago|reply
https://github.com/doersino/markdeep-slides

markdeep slides can support all the stuff that markdeep supports https://casual-effects.com/markdeep/ Admittedly, creating that asciiart by hand is obnoxious, but tools like monodrow https://monodraw.helftone.com/ make it easy.

However, then we're right back at the question of why bother using markdown if you're making complicated graphics in another tool anyway.

I love Monodraw and use it for many things (it can create svg and png and other formats not just ascii) but yeah, it doesn't seem like a great solution for your use case.

[+] rspoerri|3 years ago|reply
I am using marp since about 2 years for my lectures. I have started to use markdown with presentations with deckset.com, however it seems as the developer stopped support and development. Also it's mac only which defeats one of the good reasons to use markdown (platform independence).

Generally it's nice for me to have content summarized in text only form. I have generally been distracted by all the layout features i need to define with any other presentation tool.

What i was missing was some layouts in marp, such as left / right splitting for images and text. However it's possible to use markdown-it plugins with marp which makes that possible.

Using pandoc is another nice addition which makes it possible to generate pptx from the files, however it's not supporting the markdown-it plugin definitions. To share something it's still better then the marp's pptx export which creates images in the presentations.

Generally i am missing good support for video's in most presentation tools. Also most presentation tools i have encountered only work on specific browsers. I'd love to share the presentations as html which is currently not feasible.

[+] erremerre|3 years ago|reply
I never understood the appealing of Markdown for this kind of projects. At least on my environment, a presentation is a document that get send to different people, or live in a network/sharepoint folder were several persons contribute to it.

I imagine it must be a time saver for somebody, otherwise they were not be so many markdown presentation frameworks. But I can't figure it out the case.

[+] paultopia|3 years ago|reply
TBH the appeal for me is that using powerpoint and the like is miserable. The moment you have more than one element on a slide, it's click click click click click click drag drag drag drag click click drag drag click drag killself to get anything aligned and somehow it still comes out ugly and just MAKE IT STOP.

the dream is that something could do for slides what LaTeX did for text---just make it possible to have basically attractive defaults for most cases rather than have to either tolerate ugly or spend hours doing layout

[+] blindseer|3 years ago|reply
The idea is that if you just wanted to send someone something to read you could send them a PDF or word document.

If I wanted to present it you could build a ppt.

And having the source for this un Markdown to use with pandoc is nice.

[+] AeroNotix|3 years ago|reply
I would assume the vast majority of use-cases for this kind of thing is that Markdown is really easy to write, simple to add the few markup type things you'd want (bullet lists, tables etc) while having a simple enough format to render to various other formats which are more widely accepted as being "professional" enough for presentations.
[+] benrbray|3 years ago|reply
For me it's the ability to type math in LaTeX notation on the slides. Google slides doesn't support this and neither did PowerPoint last time I used it many years ago.

When I was a TA I used a plugin to let me display Jupyter notebooks as a slideshow, that was really handy. Much better editing experience than ppt plus you have readable diffs with git.

[+] t43562|3 years ago|reply
You can put markdown into git and see diffs of it as it changes. This is easier with a text format than with PDF.

On top of that you can just concentrate on the content because how it gets shown is mainly handled by the system not you. There might be less freedom but you are freed from burden too.

[+] wink|3 years ago|reply
I wrote something like this for conference talks ~12 years ago because I hate PowerPoint and don't have a Mac (for whatever not completely disastrous presentation tool my coworkers used). Didn't use it for a while but markdown to latex-beamer made total sense to me.
[+] w0m|3 years ago|reply
Git is the answer. Inline rendering and versioning/sharing baked in.
[+] bad_username|3 years ago|reply
I love the idea of Markdown and try to use it everywhere where there's a need to write text. But, man, Markdown tables just suck. The limitation of what you can put in a cell (exactly one paragraph of text) is just crazy. I understand the need for minimalism but the trade-off is simply not rational. Other limitations I can work around but this is crippling.
[+] rmnclmnt|3 years ago|reply
You can put anything in a Markdown table cell using HTML markup!

For instance, I regularly use ordered and unordered HTML list in table cells, this is generally supported by all MD renderers

[+] d4rkp4ttern|3 years ago|reply
I am always looking for ways to quickly put together math presentations and I’ve been recently turning to marp’s VS code plugin for this.

I also recently heard that quarto can do something similar (I.e markdown slides with math notation), and it also has a vs code plugin but I haven’t played with it much

Hackmd also has a nice markdown/math slides mode but unlike Marp it has no pdf export.

[+] heywoodlh|3 years ago|reply
With Marp, I use a PowerShell function I call marp-template[0] (I use PowerShell Core on Linux and MacOS) to create a markdown file to serve as a starting template for me.

Then I use Marp's docker image, in another PowerShell function named marp[1] to render the HTML (I like using the --html flag so I can have actual HTML in my markdown files).

This workflow results in me being able to create presentations very quickly.

[0] https://github.com/heywoodlh/conf/blob/00d1b5aadd6a39288fa68...

[1] https://github.com/heywoodlh/conf/blob/00d1b5aadd6a39288fa68...

[+] veganjay|3 years ago|reply
It depends on what you are presenting. I found [mdp](https://github.com/visit1985/mdp) to be very useful when presenting a tech talk. It is easy to copy and paste from the source material, it can be done all via the terminal, and it views well as a README on github.

Here is an example of a presentation I gave:

https://github.com/veganjay/prefectdemo/blob/main/presentati...

[+] docandrew|3 years ago|reply
I’ve had good success with mdp as well - when I saw the OP I was kind of hoping it would work with the same format mdp uses so I could go either lo-fi or fancy depending on the audience.
[+] eevilspock|3 years ago|reply
I'm not sure something counts as an "ecosystem" if all the pieces that play in that system are produced by the same entity. Feels to me like marketing BS.