Markdown support for canvas
Markdown
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.
Flavors
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.
Demo
Please see this demo for a live demo of how text written in markdown is translated into HTML.
MathJax
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: https://community.canvaslms.com/ideas/12274-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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.