Preserve markdown using the Rust based backend parser
We now use a Rust based serializer that can help us preserve markdown more efficiently and reliably. We need to add support for supporting preserving markdown for the following elements. <table> <tr> <th>Markdown Nodes</th> <th>Implemented</th> <th>Issue/MR/Description</th> </tr> <tr> <td>Audio/Video/Image</td> <td> :white_check_mark: </td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/455382+ </td> </tr> <tr> <td>Blockquote</td> <td> :white_check_mark: </td> <td> * https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68877+ * https://gitlab.com/gitlab-org/gitlab/-/issues/455383+ </td> </tr> <tr> <td>Bold/Italic/Code (inline)/Strike</td> <td> :white_check_mark: </td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/455375+ </td> </tr> <tr> <td>Bullet List/Ordered List/List item</td> <td> :question: </td> <td> * https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68877+ * https://gitlab.com/gitlab-org/gitlab/-/issues/455452+ </td> </tr> <tr> <td>Code Block/Code Suggestion/Diagram</td> <td> :white_check_mark: </td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/455386+ </td> </tr> <tr> <td>Color Chip/Emoji/References</td> <td> :question: </td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/379407+ </td> </tr> <tr> <td>Footnotes</td> <td> :white_check_mark: </td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/455389+ </td> </tr> <tr> <td>Hard break/Horizontal rule</td> <td> :question: </td> <td> * https://gitlab.com/gitlab-org/gitlab/-/issues/455390+ * </td> </tr> <tr> <td>Inline diff</td> <td> :white_check_mark: </td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/455394+ </td> </tr> <tr> <td>Link</td> <td> :white_check_mark: </td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/455392+ </td> </tr> <tr> <td>Link (reference)</td> <td> :question: (Partial) </td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/455393+ </td> </tr> <tr> <td>Math (inline)</td> <td> :white_check_mark: </td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/455395+ </td> </tr> <tr> <td>Paragraph</td> <td> :white_check_mark: </td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/455388+ </td> </tr> <tr> <td>Headings (6 levels)</td> <td> :white_check_mark: </td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/455387+ </td> </tr> <tr> <td>Table of Contents</td> <td> :question: </td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/455397+ </td> </tr> <tr> <td>Tables: cell, header, row, column</td> <td> :white_check_mark: </td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/455396+ (works for the most part) </td> </tr> <tr> <td>Task list (bullet/numeric)</td> <td> :white_check_mark: </td> <td> * https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136627+ * https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68877+ </td> </tr> </table> HTML Nodes <table> <tr> <th>HTML Nodes</th> <th>Implemented</th> <th>MR</th> </tr> <tr> <td>Description List</td> <td>N/A</td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/455398+ </td> </tr> <tr> <td>Details/summary</td> <td>N/A</td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/455399+ </td> </tr> <tr> <td>Figure/Figure caption</td> <td>N/A</td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/455400+ </td> </tr> <tr> <td> HTML Marks ```javascript 'ins', 'abbr', 'bdo', 'cite', 'dfn', 'small', 'span', 'time', 'kbd', 'q', 'samp', 'var', 'ruby', 'rp', 'rt', 'mark', 'sub', 'super', 'wbr' ``` </td> <td>N/A</td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/455403+ </td> </tr> <tr> <td> HTML Nodes ```javascript 'div', 'pre' ``` </td> <td> :question: </td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/455402+ </td> </tr> <tr> <td>HTML Comments</td> <td> :white_check_mark: </td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/471394+ </td> </tr> </table>
epic