何も考えずにhighlightjsをフルコンボでmarkdown-itの解析に入れてしまったら1000kbもあるjsが生成されてしまった件

メジャーな言語の解析しか要らないので以下のように絞りました。
それでほとんどのケースでは問題ないはず。

import MarkdownIt from 'markdown-it'
import hljs from 'highlight.js/lib/core';

import 'highlight.js/styles/github-dark-dimmed.css';
import javascript from 'highlight.js/lib/languages/javascript';
import python from 'highlight.js/lib/languages/python';

hljs.registerLanguage('javascript', javascript);
hljs.registerLanguage('python', python);

export const md: any = new MarkdownIt({
  highlight: function (str, lang) { // Syntax highlighting configuration
    if (lang && hljs.getLanguage(lang)) {
      try {
        return '<pre class="hljs"><code>' +
          hljs.highlight(str, { language: lang, ignoreIllegals: true }).value +
          '</code></pre>';
      } catch (__) { }
    }
    return '<pre class="hljs"><code>' + md.utils.escapeHtml(str) + '</code></pre>';
  },
})
1
0
0 件のコメント

ページの最後