diff --git a/apps/web/package.json b/apps/web/package.json
index 370b62aaa..9374a3ccf 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -61,7 +61,6 @@
"hotkeys-js": "^3.8.3",
"katex": "0.16.2",
"mac-scrollbar": "^0.13.5",
- "marked": "^4.1.0",
"mutative": "^1.0.6",
"pdfjs-dist": "3.6.172",
"phone": "^3.1.14",
@@ -82,6 +81,7 @@
"react-resizable-panels": "^2.0.17",
"react-scroll-sync": "^0.11.2",
"react-virtuoso": "^4.6.2",
+ "snarkdown": "^2.0.0",
"timeago.js": "4.0.2",
"tinycolor2": "^1.6.0",
"w3c-keyname": "^2.2.6",
diff --git a/apps/web/src/utils/md.ts b/apps/web/src/utils/md.ts
index b5894ba1a..bddabdb9a 100644
--- a/apps/web/src/utils/md.ts
+++ b/apps/web/src/utils/md.ts
@@ -17,38 +17,8 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
-import { marked } from "marked";
-
-const emoji: marked.TokenizerExtension & marked.RendererExtension = {
- name: "emoji",
- level: "inline",
- start(src) {
- return src.indexOf(":");
- },
- tokenizer(src, _tokens) {
- const rule = /^:(\w+):/;
- const match = rule.exec(src);
- if (match) {
- return {
- type: "emoji",
- raw: match[0],
- emoji: match[1]
- };
- }
- },
- renderer(token) {
- return ``;
- }
-};
-
-const renderer = new marked.Renderer();
-renderer.link = function (href, title, text) {
- return `${text}`;
-};
-marked.use({ extensions: [emoji] });
+import snarkdown from "snarkdown";
export function mdToHtml(markdown: string) {
- return marked.parse(markdown, { async: false, renderer, gfm: true });
+ return snarkdown(markdown);
}