From d0dcdcd33754a822a744c336444e8ccbbf452227 Mon Sep 17 00:00:00 2001 From: Abdullah Atta Date: Tue, 12 Nov 2024 13:23:31 +0500 Subject: [PATCH] web: replace marked with snarkdown --- apps/web/package.json | 2 +- apps/web/src/utils/md.ts | 34 ++-------------------------------- 2 files changed, 3 insertions(+), 33 deletions(-) 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); }