diff --git a/src/tools/markdown-viewer/markdown-viewer.service.ts b/src/tools/markdown-viewer/markdown-viewer.service.ts index 0023c1e5..e06e8509 100644 --- a/src/tools/markdown-viewer/markdown-viewer.service.ts +++ b/src/tools/markdown-viewer/markdown-viewer.service.ts @@ -2,18 +2,24 @@ import { marked } from 'marked'; import highlight from 'highlight.js'; import 'highlight.js/styles/atom-one-dark.css'; -export { renderMarkdown }; +export { renderMarkdown } -function renderMarkdown(md: string) { +const renderMarkdown = (md: string): string => { 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}
`;
+ const highlightedCode = highlight.highlight(validLanguage, code).value;
+ return `${highlightedCode}
`;
};
- marked.use({ renderer });
+ marked.setOptions({ renderer });
- return marked.parse(md);
+ try {
+ return marked(md);
+ } catch (error) {
+ console.error('Markdown parsing error:', error);
+ return `Error rendering Markdown
`; + } } diff --git a/src/tools/markdown-viewer/markdown-viewer.vue b/src/tools/markdown-viewer/markdown-viewer.vue index 6df7dadc..76e8c924 100644 --- a/src/tools/markdown-viewer/markdown-viewer.vue +++ b/src/tools/markdown-viewer/markdown-viewer.vue @@ -1,12 +1,16 @@ @@ -27,6 +31,6 @@ const { height } = useElementSize(inputElement); />