import { Box } from '@rocket.chat/fuselage'; import React, { useMemo } from 'react'; import marked from 'marked'; import dompurify from 'dompurify'; const renderer = new marked.Renderer(); marked.InlineLexer.rules.gfm.strong = /^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/; marked.InlineLexer.rules.gfm.em = /^__(?=\S)([\s\S]*?\S)__(?!_)|^_(?=\S)([\s\S]*?\S)_(?!_)/; const linkRenderer = renderer.link; renderer.link = function(href, title, text) { const html = linkRenderer.call(renderer, href, title, text); return html.replace(/^ { const html = content && typeof content === 'string' && marked(content, options); return preserveHtml ? html : html && sanitizer(html, { ADD_ATTR: ['target'] }); }, [content, preserveHtml, sanitizer]); return __html ? : null; } export default MarkdownText;