Replace Parsedown Extra (Markdown Extra) with CommonMark
Couscous supports Markdown Extra. To achieve that, the parser used is Parsedown Extra.
However we might want to switch to using the League/CommonMark parser because:
- CommonMark is a new and improved standard for Markdown
- League/CommonMark parses Markdown into an AST that can be extended and manipulated before being rendered to HTML
That would make it easier to add features such as #39, #65, #69, #155, etc.
Problem: in order to preserve BC we need Markdown Extra's features to be supported by Couscous:
- [x] Inline HTML: compatible with CommonMark
- [x] Markdown Inside HTML Blocks: works in CommonMark but not 100% compatible
- [ ] Special Attributes: webuni/commonmark-attributes-extension is not 100% compatible but might be a good starting base for implementing it?
- [x] Fenced Code Blocks: supported by CommonMark
- [x] Tables: webuni/commonmark-table-extension
- [ ] Definition Lists
- [ ] Footnotes
- [ ] Abbreviations
- [x] Ordered Lists: compatible with CommonMark
- [x] Emphasis in words: compatible with CommonMark
IMO we could get rid of definition lists, footnotes and abbreviations. I am not against adding support later if someone writes an extension for that, but I don't think they are crucial features.
That could be considered a BC break though given all the small differences. I'm not against releasing it as Couscous 2.0, thoughts? We could ship it with many features implemented thanks to that.
I have added tests for the features described above in #157.
Sounds great to release this as version 2.0 for me, Definition Lists, Footnotes and Abbreviations could definitely be implemented later as you said...