Skip to content

Exploring How to Develop Accessible, Open-Source Curriculum

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!

My desired features are

    • accessible output (lecture notes and slides)
    • limit extra work (single file for publishable lecture notes and in-class slide presentations)
    • easy to edit (when editing lecture notes, I want to focus on the content not the formatting or markup)
    • a reliable tool that has community support and will exist in the future
    • easy to convert notes to slides (ideally an add-on for the editor I’m using, but at least it should be a quick conversion that can be run)
    • drag and drop support for images (a bonus)
    • compatible with GitHub readable markdown (since I want to make the content open-source. Ideally I would like it to automatically create GitHub HTML pages. For now, GitHub readable markdown is fine)
    • able to make illustrations / flowcharts / line drawings

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

    • Reveal.js is the most full-featured and includes “drawing” mode just like PowerPoint
    • Remark.js is specifically designed for markdown
    • Marpit is the simplest to use but least featured (and only has one contributor)

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 notes or 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


Original lecture notes

Marpit-generated HTML slides

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

2 thoughts on “Exploring How to Develop Accessible, Open-Source Curriculum”

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

    1. Hi Felipe!
      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.

Leave a Reply

Your email address will not be published. Required fields are marked *