/
githubmirror
/
trpc
Обзор
Документация
Войти
/
githubmirror
/
trpc
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
www/mdxToJsx.js
37 строк
1 KB
Alex / KATT
chore(www): bump docusaurus (#6051)
27 сен 2024, 17:12
Не верифицирован
27 сен 2024, 17:12
f8e8d17
Код
Авторство
О чём код?
// @ts-check function remarkHtmlToJsx() { // @ts-ignore async function transform(...args) { const { visit, SKIP } = await import('unist-util-visit'); const { mdxFromMarkdown } = await import('mdast-util-mdx'); const { fromMarkdown } = await import('mdast-util-from-markdown'); const { mdxjs } = await import('micromark-extension-mdxjs'); const [ast] = args; visit(ast, 'html', (node) => { const codeBlockMarkup = node.value.length ? node.value.replace( /<\/code><\/div><\/pre>/g, '</code></div><button type="button" aria-label="Copy code to clipboard" ' + 'class="copy-button" onclick="navigator.clipboard.writeText(this.previousSibling.innerText);' + "this.classList.add('copied');this.textContent = 'Copied';" + "setTimeout(() => {this.classList.remove('copied');this.textContent = 'Copy'}, 2000)\">Copy</button></pre>", ) : node.value; const escapedHtml = JSON.stringify(codeBlockMarkup); const element = `<div dangerouslySetInnerHTML={{__html: ${escapedHtml} }}/>`; const rawHtmlNode = fromMarkdown(element, { extensions: [mdxjs()], mdastExtensions: [mdxFromMarkdown()], }).children[0]; Object.assign(node, rawHtmlNode); return SKIP; }); } return transform; } module.exports = remarkHtmlToJsx;