Демо https://markdown-buffer.netlify.com/
TL; DR
Замечание в веб-рабочем с Comlink ( https://github.com/googlechromelabs/comlink )
yarn add remark remark-html comlinkjs
(Я использую посылку для строительства)
Рабочая сторона
SRC/Worker.js.
import remark from "remark";
import html from "remark-html";
import * as Comlink from 'comlinkjs'
const processor = remark().use(html)
class MarkdownCompiler {
compile(raw) {
return processor.processSync(raw).toString();
}
}
Comlink.expose(MarkdownCompiler, self);
Основной нить
src/index.js
import * as Comlink from 'comlinkjs'
const MarkdownCompiler = Comlink.proxy(new Worker("./worker.js"));
const main = async () => {
const compiler = await new MarkdownCompiler();
const result = await compiler.compile('**your markdown here**');
console.log(result)
}
main();
Comlink скрывает посмуссаж, чтобы сделать работника легко
Оригинал: “https://dev.to/mizchi/off-thread-markdown-rendering-with-comlink-2hfo”