Writing a MarkDown to HTML converter with XSLT

The business purpose is to be able to write OXiane exercices books with only pure text. We do not want anymore any office tool, as they use binary file formats. These binary file formats are not fully supported by version control tools, such as Git. Ans all course writers at OXiane are developers that use Git every day.

So we need a pure text file format, easy to write and to structurate, and we need tools to transform this text-based file format to various outputs : LibreOffice for backward compatibility, Microsoft Office because some of our clients expect this file format, PDF for printers, and HTML for students - that's much comfortable for them to use than PDF.

The semantics requirements are very limited : paragraphs, three levels of titles, two levels of list-items, pictures, code blocks, bold text, inline code, links and anchors, and bold text in code blocks.

As MarkDown is commonly used in tools such as GitLab, we decided to use a limited subset of MarkDown, with special extensions to have bold text in code blocks. But it is really a limited subset, and we do not want to allow any writer to use some editorial features not allowed in our editorial rules. So, using an existing MarkDown converter was not a solution. We decided so to write our own MarkDown converter.