cancel
Showing results for 
Search instead for 
Did you mean: 

Markdown support for canvas

Markdown support for canvas

(5)

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

https://community.canvaslms.com/ideas/4835?sr=search&searchId=27ae75f0-9b33-4920-be7f-7a54f687e4c2&s... 

https://community.canvaslms.com/ideas/11707?sr=search&searchId=27ae75f0-9b33-4920-be7f-7a54f687e4c2&... 

https://community.canvaslms.com/ideas/12851?sr=search&searchId=27ae75f0-9b33-4920-be7f-7a54f687e4c2&... 

https://community.canvaslms.com/ideas/10784?sr=search&searchId=27ae75f0-9b33-4920-be7f-7a54f687e4c2&... 

14 Comments
Community Member

Thanks a lot to for documenting and consolidating the idea. I would love this feature very much.

My use case is simple formatted text writing. I find markdown convenient and concise (much preferred over WYSIWYG HTML). It also makes it so much easier to quote source code (github).

My preferred implementation is a switch per course that sets the default editor (HTML or Markdown). A JavaScript Markdown editor such as https://simplemde.com could be used which renders in real-time. I find such an approach to be good compromise between purist text and WYSIWYG. I am not tied to a particular Markdown flavor (as my requirements are simple) or editor.

Back-end storage can be in HTML or Markdown -- an implementation trade-off about how deeply to integrate into the backend. HTML back-end storage is probably minimally invasive as much of it can be done in JS in the browser.

PS: While searching, I also found this GitHub issue on the same topic: Markdown Rendering · Issue #503 · instructure/canvas-lms · GitHub 

Surveyor

Agree, this would be most welcome and there are many nice markdown editors/processors out there.

Community Member

This could be very helpful. Markdown or a code editor can be even more helpful for the CS students. I wish canvas ELMS would have this feature right now since I'm taking a programming midterm on ELMS in two days.

Surveyor II

Upvoted for MathJax.

It would be great if MathJax could be incorporated with the Point Annotation tool (which works with just text at the moment), or annotation tools in general.

Community Member

Agree, agree, 100 times agree. This feature, particularly support for code blocks and MathJAX, would make developing curriculum for my computer science course so much easier.

Surveyor II

Just echoing my support for Markdown! Thank you.

Surveyor

This would be super useful to have available in Canvas, thanks for considering it!

Surveyor

Yes! Please! The current editor is so slow! Markdown support would help tremendously!

Surveyor

Agreed markdown would make life so easy!

Surveyor

I'd just like to add our support to this too. Having native Markdown support within Canvas would make
the following much easier 

  • formatting comments
  • responses
  • ePortfolio content