A blog icon.

Codifying Your Presentations

This blog will explore Deckset and Marp to draw comparisons and find their best use cases.
VSCode markup window with Deckset and Marp logos overlaid on top

When developers are working on a project, their main focus is typically fleshing out a foundation for their code and then building upon this base. Each new feature added means added complexity to their project or product. Over time, this can cause difficulty in following along with the project or even how to utilize it. For this reason, we have documentation such as a README.md in a GitHub repository. While this is a good way to document your work, it may not be enough for situations like demos or presentations. So, what if we could use an already familiar syntax, like that of a README.md, to generate a slide deck in a short amount of time?

I’ve had the opportunity to look into two solutions for overcoming this particular challenge: Deckset and Marp. They both use markdown to automatically style and generate a slide deck presentation for you. This could potentially help developers level up their documentation while also keeping their presentations in source control with the rest of their code.

Deckset

Deckset is a pretty awesome tool for generating aesthetically pleasing slides using markdown while mainly focusing on the content. Their documentation and tutorials are fairly short and easy to follow along with, making it very beginner friendly.

Deckset has their own configuration commands that belong at the very top of the markdown file as a way of controlling the way your presentation looks and works. These can be set globally or on a per-slide basis.

An example Deckset slide written in markdown
An example Deckset slide written in markup
The final slide generated from the markdown.
The final slide generated from the markdown.

A dandy feature that is offered with Deckset is speaker notes. For specific slides that shouldn’t be text heavy, speaker notes allow the presenter to jot down notes that can only be seen on the presenter’s display.

A shortcoming that we encountered with Deckset is that it only allows you to export presentations in the following formats: PDF, PDF (reduced file size), JPEG, and PNG. While these options are normally fine, we needed it to be in an embeddable format for our use case of embedding the presentation somewhere else, such as a static site.

Pandoc was brought up as a means of converting the Deckset presentation into an embeddable format, such as a PowerPoint presentation (*.pptx). Pandoc is a command-line tool for converting files from one markup format to another. What we tried was to simply convert the markdown file for Deckset into *.pptx format and see how the slide deck would translate in Powerpoint. For the conversion, we use the command

pandoc < input_file.md > -f markdown_mmd -t pptx -s -o < output_file.md >

What ended up happening was that most (if not all) of the styling from Decksets configuration commands were lost and would actually display the markdown in the slide.

Results of converting Deckset markdown into pptx format with Pandoc
Results of converting Deckset markdown into pptx format with Pandoc

While Deckset is a very awesome tool for creating stylish slide decks using markdown, we had to explore other options to satisfy our use case. Enter Marp

Marp

Marp is an open-source markdown presentation tool that functions very similarly to Deckset. The key differences we found is that Marp offers a plugin for VS Code, a command-line interface, and the ability to export to *.pptx. One drawback is that the styling is a little bit more involved than Deckset. Marp offers 3 built-in themes, but also allows for custom styling by either tweaking markdown or creating your own using plain CSS.

Converting your markdown presentation to *.pptx is made simple using the Marp CLI. The format of the command is:

marp --pptx < input_file.md >

What we observed is that the markdown translates pretty well to Powerpoint. One thing to note is that after it is converted, you will not be able to edit content within the slides. Think of them as being an image, or a layer, at this point. However, it is possible to add additional content to the slides.

converting Marp markdown to pptx format with the Marp CLI
Converting Marp markdown to pptx
The final slide generated from the markdown conversion.
The final result

Conclusion

Overall, we found that Deckset was a wonderful tool for creating beautiful slide decks using markdown. Their brief and concise documentation makes it very easy to get started, and the ability to incorporate speaker notes adds more flexibility in the way that the slide deck can be presented. If you just want a charming presentation, Deckset is definitely the tool for the job. However, if you want to be able to convert your markdown to an embeddable format, such as *.pptx, Marp is a good alternative with the slight inconvenience of having to work on styling a little more.

Share This Article

Have a question or comment?

Contact uS

Related Posts

The IBM Cloud logo and AWS logo overtop of an abstract background.
IBM Cloud vs AWS: The Difference and How to Choose

In this post, we'll bring you a comparison between two of the main cloud providers: Amazon Web Services (AWS) and IBM Cloud.

Computers floating in the clouds in a Chris Ware art style.
Multi-Cloud vs Hybrid Cloud: The Difference and How to Choose

Multi-cloud vs hybrid cloud, what's the difference and how can you choose the best one for your situation?

An abstract digital blue background of cloud computing with the Azure and Terraform logos in the front.
We rebuilt Azure CAF in Terraform so you don’t have to!

In this introduction of Liatrio’s Terraform Azure CAF implementation we introduce the founding principles of our module, as well as some of the benefits it provides.

A complete workflow run in GitHub Actions with Github and CodeQL logos overlaid on top.
Now We’re Cooking with GHAS! Getting Started with CodeQL and Code Scanning in GitHub Advanced Security

This blog post is an introduction to CodeQL and how you can get started with code scanning in GitHub Advanced Security (GHAS).

The Liatrio logo mark.
The Liatrio logo mark.

About Liatrio

Liatrio is a collaborative, end-to-end Enterprise Delivery Acceleration consulting firm that helps enterprises transform the way they work. We work as boots-on-the-ground change agents, helping our clients improve their development practices, react more quickly to market shifts, and get better at delivering value from conception to deployment.