Marp: Markdown Presentation Ecosystem
marp.app
marp.app
[1] e.g. https://kartographie.geo.tu-dresden.de/ad/python_datascience...
[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...
```
Reveal.initialize({ disableLayout: false });
```
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.
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.
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.
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).
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.
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.
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.
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.
[0] https://hedgedoc.org/ and https://demo.hedgedoc.org/slide-example?both
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).
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.
A blog post: https://ubikium.gitlab.io/portfolio/latex-beamer-flake.html Example code: https://github.com/crvdgc/latex-beamer-flake
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.
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://docs.decksetapp.com/English.lproj/Formatting/08-form...
(their docs are also quite good in my experience)
This has been in Go from the very early days - also Markdown.
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!
I try to model my figures after these suggestions (it means it's not easy to make figures without a visual editor): https://www.youtube.com/watch?v=Unzc731iCUY
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.
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.
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.
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.
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.
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.
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
Why not use LaTeX (Beamer) for presentations?
Also, a poor craftsman blames his tools... things like Beamer might "look nicer", but the downside is homogeneity. I've you seen one Beamer presentation, you've seen them all. On the other hand, the "ugliness" of a Powerpoint or Keynote presentation is probably down to your lack of skill at visual design.
If you're giving presentations as part of your job, then part of your job is to give presentations. Presumably, you should also do a good job of giving those presentations. Giving a good presentation means communicating effectively using the medium, which very well could require becoming enough of a craftsman to use the medium well. Lots of jobs require learning skills that are unrelated to main focus of the job. That's just life.
Of course, we could talk about whether so many people should be giving presentations, but that's another issue...
I suppose the opportunity exists for someone to step in and create a magical tool, but I have to say I think it's probably better if people just learn to communicate visually if they're able.
I come at this from a weird angle, maybe. As an academic, I’m basically a professional writer. I recognize that I have pro-level writing skills, earned over years of blood and pain, and that when I read some corporate memo (more often than I’d like) it will almost certainly be written very badly, by my lights. But I forgive that, because even though writing memos and such is a part of many corporate jobs, it isn’t the most important skill, and it’s a skill that takes years to master.
Would it be ideal if those memos were written more skillfully? Sure. Is that realistic, given the constraints on people’s time? Absolutely not. When someone wires up a language transformer model to fix that, I will cheer.
(Incidentally, your response is quite condescending. I clearly didn't suggest that visual design isn't a professional field.)
There are plenty of fields which require tons of specialized training but which nevertheless can be useful with only a modest amount of time invested. You seem to be making things out to be pretty black and white: "either I will become a master at visual design or I won't give it a second thought!" There's an abundantly useful middle ground.
For instance, I regularly use ordered and unordered HTML list in table cells, this is generally supported by all MD renderers
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.
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...
Here is an example of a presentation I gave:
https://github.com/veganjay/prefectdemo/blob/main/presentati...
I have played around with slides^1 before for doing small demos with my team, but I find that outside of highly technical geeks most people don't want to look at presentations in plain text in a terminal window. I like that this lets you create more traditional graphical slide decks while still using markdown + your favorite editor.
Import your SVG in LibreOffice Impress, right click on it and select "Break", save your file as a .pptx, open your file in PowerPoint, copy the chart to your presentation.
I have used it a few times because I generated my charts using graphviz and the business people wanted something editable within PowerPoint. It is far from perfect because anchors are not supported, but it is enough to do minor modifications like fixing typos or changing the font for something similar sized.
I mean attachment points. I didn't need clickable objects in my presentation so I don't know about them.
Use keynote/powerpoint/Gslides/etc.
Most recently I have been using Figma with great results. I was surprised at how easy it is to make slides and with a few plugins manage page numbering and such alongside components.
Feels like there is room for something that combines marp and figma (assuming it doesnt already exist)
It also seems to have a DSL giving you some control of the slides presentation, which in pandoc seems limited to applying CSS.
https://docs.asciidoctor.org/reveal.js-converter/latest/conv...
Back in the day I made GistDeck, which made presentations from Markdown in a gist via a bookmarklet.
https://github.com/nzoschke/gistdeck
Awesome to see this idea fully realized.
Question: is there an option obsidian plug in for this?
This is exactly the reason many people, myself included, prefer markdown. If you want to make an obviously provocative comment like this, you should add some substance it.