I have commenced our migration to markdown-it , all rejoice
markdown-it is a compliant CommonMark JavaScript library that is super fast, well maintained and straight forward to extend.
I already have it working on a branch, but so many of our extensions are broken that I do not want to subject everyone on meta to it quite yet.
The plan
Phase 1 - get this running on meta (underway)
The first phase of the migration to the new engine is getting us ready to turn markdown-it
on at meta.
To make this feasible and minimize branching I designed it so we can merge in my changes early. Turning on markdown-it
requires a hidden site setting and the actual work I am doing is totally segregated from current support.
This means I should be able to merge in my changes next week into the latest branch.
I plan to enable markdown-it
at meta once I ported all our extensions and plugins running at meta to the new engine. This is a slow process as a lot of code needs to be re-written to support the new engine.
Expected time frame: 4-8 weeks
Phase 2 (stabalization)
The second phase of the project will be me submitting pull requests to various plugins and stabalizing the new engine. I anticipate running on meta for at least 2-4 weeks before “flicking the switch” and making the new engine default on.
During this phase I will make sure to close all the markdown-it-review bugs. Not touching these bugs till this is live on meta.
Expected time frame: 2-4 weeks
Phase 3 (gutting out old engine)
The third phase of this process will be removing the old engine from core and adding “deprecation” so plugins that we did not catch can be notified of the change.
Expected time frame: 1-2 weeks
Phase 4 (removing deprecations)
Finally, in the release after next we will remove all the deprecation so we don’t have to carry around dead code.