4964: Use CommonMark, or at least allow adding Python-Markdown plugins

rbsurfer

What version are you running?

4.0.4

What's the URL of the page this enhancement relates to, if any?

All Markdown text input fields

Describe the enhancement and the motivation for it.

Review Board currently uses Python-Markdown, which (religiously) implements the original Markdown spec from 2004, which has a number of issues.

Our users often run into such issues where Python-Markdown doesn't render things as expected. For example, indenting a sub-list to the level of the original list's contents renders it as part of the original list, rather than a sub-list as expected.

CommonMark is a newer standard that irons out a lot of these issues. It's used by GitHub, GitLab, Stack Overflow, Reddit etc.

This is a request for Review Board to switch to a CommonMark renderer.

Failing that, we'd at least like to be able to configure the Python-Markdown plugins that Review Board uses. This would let us avoid a lot of these issues by adding plugins such as "Truly Sane Lists" and "Breakless Lists".