Advice on Markdown format for course export and import?

Please forgive my current lack of experience, but I am looking around for a way of sharing the work of writing a course with my fellow open-source developers.

As we are are all developers, we are very used to working with Git and Github and Markdown and pull-requests. But, the standard way of writing course material for OpenEdX is via the OpenEdX web GUI. This would make it much less easy for us to collaborate fluently, in the way we are used to.

Is there any tool that would allow us - for example - to export the course content to a Markdown format, store that in version control? And then import the edited Markdown content back to an OpenEdX course?

If not - what would it take to build such a thing?

It occurs to me that this feature would also make it much easier to share work between teachers and courses. First, the Markdown source form would be much easier to skim without having to go into an EdX instance to review. Second, it would be a lot easier to copy parts of a course into a new course. Third, it would be easier for someone to suggest changes or fixes to existing course content.

Hi @matthew-brett! As far as I know, this is not possible at the moment. I perfectly understand how useful such a format would be, but it’s technically quite challenging. You have to keep in mind that course units are actually xblocks that can take very different shapes. For instance, how would you represent a molecule editor unit in markdown?

Note that this does not prevent people from actually exporting courses and versioning their contents in GithHub. This is the case for instance of the edX demo course. Of course, this format is not so easy to parse for a human…

Hi @matthew-brett! As far as I know, this is not possible at the moment. I perfectly understand how useful such a format would be, but it’s technically quite challenging. You have to keep in mind that course units are actually xblocks that can take very different shapes. For instance, how would you represent a molecule editor unit in markdown?

I guess the work here would be to define idempotent Markdown for
common components, so it would be possible for developers to
collaborate on putting up and editing a simple course, or at least,
the simple parts of a course - such as text, quizzes, videos with
subtitles, and so on. The not-simple components would continue to be
stored in their current format - but perhaps with an eye to designing
a route to more general Markdown / text serialization.

Note that this does not prevent people from actually exporting courses and versioning their contents in GithHub. This is the case for instance of the edX demo course. Of course, this format is not so easy to parse for a human…

Right - as you can imagine, the problem I am trying to solve is not
sharing exactly - but collaborative text-based editing - because that
has proved such a huge benefit for productivity in other tasks - such
as writing documents, grants, textbooks, and so on.