I’m teaching a new course in electronics / internet of things (IoT), and I would like to share the content publicly. In addition, I would like the content to be accessible for all users. As such, I’m looking to migrate from PowerPoint (which I really enjoy using). This post serves as a memory stone for myself of the options (circa Aug 2019).
Special thanks to Ryan Straight for all his suggestions!
Here are my preliminary findings. Note this is based on a couple of weeks of experimenting and subject revision.
Easy things first: illustrations like those that can be made in PowerPoint can’t be done with any option. I found a program called Inkscape that is free and creates SVG files. These files unfortunately don’t work in slides but can be exported to PNG so there is a workaround.
Language / Format
Markdown is the way I’m going. It is text-like with simple markup codes. There are also great graphical WYSIWYG editors which make it more like using Microsoft Word (which I also like). My favorite editor so far has been Typora. It is clean and minimalist, shows a file tree, and only shows markdown files (*.md)
A great mention from Erik Fredericks was LaTeX. I know / hear it does great things but personally I am not familiar with it and Markdown has a smaller learning curve.
Slide Conversion Tools
Quick primer: Reveal.js, remark.js, and Marpit are all HTML slide framework. To varying degrees, they all take HTML or markdown and create slides (HTML, PowerPoint, PDF).
Option 1: RStudio + Reveal.js (or Remark.js)
This is great if you use R already OR if you don’t care about GitHub-readable markdown. RStudio is the popular R IDE and it has plugins for both reveal and remark. You just create RMarkdown docs and it will create HTML presentations automatically.
- RStudio and Reveal.js both have a huge user bases so development will continue
- Process of slide creation is fairly seamless
- RMarkdown files are not GitHub readable
- No drag and drop image support
- RStudio is not elegant to use (it is a powerful program for writing R programs, but feels like most programming IDEs)
- Other markdown editors don’t support *.rmd (Typora for example)
Option 2: Manually convert slides from markdown files (*.md) into Reveal.js or Remark.js
This is the most onerous option that involves copying / pasting markdown files into HTML templates. There are some mentions online of scripts that claim to do it automatically but nothing I settled on for certain.
- Able to use markdown files, editor of your choice (Typora), and Reveal.js
- Copying / pasting every markdown file into an HTML template is untenable. Each time there is an edit to the code, the process would need to be repeated
Option 3: Typora + VS Code + Marpit
This is the option I’m using now. I edit my lecture files in markdown using Typora. I keep a few notes in mind when making the lectures, but mostly it is just text.
When I’m ready to create slides, I open the same lecture note file in VS Code and then use the Marpit extension to generation HTML, PowerPoint, or PDF slide presentations.
- Use Typora which is a great clean editor
- Drag and drop images into Typora
- Copy and paste images into Typora and it will automatically add to local folder
- Uses markdown files which are GitHub readable
- Still have to use two programs (Typora and VS Code). I could just use VS Code, but it is just my preference to use Typora.
- Typora doesn’t do great job showing correct sizes of images in preview
- Marpit works well but doesn’t
have speaker notesor support drawing on screen (update on Jan 2022: Marpit now supports a separate window for presenter view with speaker notes. Thanks Felipe Polo-Wood for pointing that out!)
- Marpit has a single developer / small community
Marpit-generated PowerPoint file
That’s where I’m at for now. My ideal solution would be to use Typora to edit markdown files, and then automatically generate reveal.JS slides but I can’t do that (or don’t yet know how).
I don’t know how your trip has evolved since you wrote this, I have been through a similar journey and would be interested to know your current setup. I am currently using Marpit and loving it. It now has presenter notes, but still no screen drawing. I use it directly on VSCode which has very usable markdown support.
It’s great to hear you have a similar setup.
Actually since I posted this originally, my setup is mostly unchanged because it generally does what I need (and the thought of redoing everything is daunting). I agree the screen drawing is a feature I would really like to see in Marpit, but otherwise it generally does what I need. Two things that I didn’t mention in the post about Marpit (perhaps these are newer features?) is the ability to “animate” successive bullets and the ability to have background images. I do wish there was a way to more elegantly arrange images visually though.
Thanks for pointing out the addition of speaker notes! I’ll update the post.