Markdown support for canvas

Idea created by Johan Larsson on Sep 27, 2019
    Open for Voting
    • Ramkumar T
    • John Martin
    • Krzysztof Podgorski
    • Chris Finley
    • Mike Murphy
    • Jewell Simon
    • Justin Wolford
    • Katherine Welzenbach


    Markdown is a plain text format for writing content using a simple markup language. It is in widespread use and features prominently on sites related to research, math, and coding. It is, for instance, the default markup language for Stack Exchange and GitHub. You can read a brief (and the original) introduction to markdown here. It would be a great addition to canvas is would be appreciated by everyone who teaches in topics related to math and computer science.



    There are several so called flavors of markdown, which feature support for code blocks and math. One of these, such as Pandoc or CommonMark should be used.



    Please see this demo for a live demo of how text written in markdown is translated into HTML.



    As an extension for markdown, support for MathJax should also be added. There is already an idea for using mathjax instead of the current math editor: Make Math Equation Editor Accessible. This and that idea should do well to be implemented in parallel.


    Possible implementation

    In addition to having a button for the HTML editor, include a markdown editor as an alternative editor. In a basic implementation, the text in this editor would be processed by a script/executable (such as pandoc or commonmark) on the server side once the user switches to the HTML tab or previews the page.


    Text translated from markdown is translated into standard HTML. In fact, my current workflow right now is to simply write in markdown, convert it using pandoc to HTML, and then copy from a preview in my browser into the canvas editor. This works (surprisingly) well for everything except math and code highlighting. This means that there is already basic support in canvas for viewing output produced by markdown. In a first implementation, the only necessary step would be to include a simple editor and a script that can translate code into HTML.


    Previous ideas

    There has been several previous ideas (put in cold storage now) calling for support for markdown, such as

    Markdown Support 

    Add Markdown Support 

    Markdown Support in Editor 

    Markdown support