diff --git a/src/tools/markdown-viewer/markdown-viewer.service.ts b/src/tools/markdown-viewer/markdown-viewer.service.ts index e69de29b..d8c517da 100644 --- a/src/tools/markdown-viewer/markdown-viewer.service.ts +++ b/src/tools/markdown-viewer/markdown-viewer.service.ts @@ -0,0 +1,20 @@ +import { marked } from "marked"; +import highlight from "highlight.js"; +import 'highlight.js/styles/atom-one-dark.css'; + +export const renderMarkdown = (md: string) => { + highlight.configure({ + + }) + const renderer = new marked.Renderer(); + + // Override the code rendering function to use highlight.js for syntax highlighting + renderer.code = (code: string, language: string) => { + const validLanguage = highlight.getLanguage(language) ? language : 'plaintext'; + return `
${highlight.highlight(validLanguage, code).value}
`;
+ };
+
+ marked.use({ renderer });
+
+ return marked.parse(md)
+}
diff --git a/src/tools/markdown-viewer/markdown-viewer.vue b/src/tools/markdown-viewer/markdown-viewer.vue
index fd1d2447..7ee6a908 100644
--- a/src/tools/markdown-viewer/markdown-viewer.vue
+++ b/src/tools/markdown-viewer/markdown-viewer.vue
@@ -1,24 +1,8 @@