Hi all
It is with great pleasure that I present Mu: a tool to write Open edX-compatible courses in HTML5 or Markdown. In nerd-speak, you could call it a âcourseware cross-compilerâ
In a nutshell, Mu allows you to write your courses in Markdown or HTML5, and then convert them to OLX, and vice-versa.
This project was kickstarted and managed by @matthew-brett who hired me to implement it, with financial support from the Chan Zuckerberg Initiative?
Here is the source code: GitHub - overhangio/mu: Lecture is the course authoring tool for teachers with a deadline.
Quickstart
Letâs have a look at an example of a course.md
file (source):
# My course title {olx-org=overhangio olx-course=mu olx-url_name=session1}
## Chapter 1
### Sequential 1.1
#### Syllabus
::: {mu-type=video}
##### Video
![](https://s3.amazonaws.com/edx-course-videos/edx-edx101/EDXSPCPJSP13-H010000_100.mp4)
:::
##### Some html content
Each one of these paragraphs should result in a different `<p>` tag.
We can even include images here:
![](https://www.google.com/images/logo.png)
Raw code:
import base64
base64.decodebytes(b'UmFjbGV0dGUgY2hlZXNlIGlzIHRoZSBiZXN0')
#### Problems
::: {mu-type=mcq}
#### Multiple choice question
What is the answer to Life, the Universe, and Everything?
* â
6 x 7
* â 666
* â 0
* â
42
:::
::: {mu-type=ftq}
#### Free text question
How many legs does a healthy snake have?
<!-- All accepted answers are listed below -->
* None
* Zero
* 0
:::
Convert this course to OLX:
mkdir olx
mu ./course.md ./olx/
Convert to tar.gz:
tar -czf mycourse.tar.gz ./olx
And you get a course that is ready to be imported in Open edX. VoilĂ !
Why did we create this?
The first reason was that we wanted to resolve one of the biggest pain points of course authors, which is that they must use the Open edX studio to create their courses. There are different problems with the native OLX format used for courses in Open edX:
- It cannot be version-controlled.
- It cannot be edited from a code editor.
- It makes it difficult to share and re-use content.
- Translating courses is a complex process.
But there are other important side benefits to this tool. In the future, I hope that we can create and share courses just like open source software. Courses are commodities that people should be able to re-use, fork, branch and transform. Maybe then weâll be able to create a public catalog of free online courses that anyone running Open edX could import and run on their own instance.
Which input and output formats are supported?
At the moment, Mu supports reading from and writing to Markdown, HTML5 and OLX. In the future we hope to support other LMS courseware formats. Our goal is to âwrite once, teach everywhereâ.
Which xblocks are supported?
Just a couple xblocks are supported at the moment: video, raw HTML, free text question, multiple choice question. With your help we hope to support more!
Whatâs the status of this project? Can it be used in production?
Yes! With a caveat: the API is likely to change until we reach v1.0.0.
The supported input format is not very well documented yet, and weâre bound to discover some cases where the output is not exactly whatâs expected. But we feel like the project is ready to be tried and tested by others.
We are eager to hear about your requirements and how this new tool can be useful to the community. If you are facing a problem or would like to require a new feature, please open an issue on GitHub: Issues · overhangio/mu · GitHub
Feel free to ask your questions in the comments