config.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /* eslint-disable @typescript-eslint/no-var-requires */
  2. const Config = require('markdown-it-chain');
  3. const anchorPlugin = require('markdown-it-anchor');
  4. const slugify = require('transliteration').slugify;
  5. const hljs = require('highlight.js');
  6. const containers = require('./containers');
  7. const overWriteFenceRule = require('./fence');
  8. const config = new Config();
  9. const highlight = (str, lang) => {
  10. if (!lang || !hljs.getLanguage(lang)) {
  11. return '<pre><code class="hljs">' + str + '</code></pre>';
  12. }
  13. const html = hljs.highlight(lang, str, true, undefined).value;
  14. return `<pre><code class="hljs language-${lang}">${html}</code></pre>`;
  15. };
  16. config.options
  17. .html(true)
  18. .highlight(highlight)
  19. .end()
  20. // .plugin('anchor').use(anchorPlugin, [
  21. // {
  22. // level: 2,
  23. // slugify: slugify,
  24. // permalink: false,
  25. // permalinkBefore: false,
  26. // },
  27. // ]).end()
  28. .plugin('containers')
  29. .use(containers)
  30. .end();
  31. const md = config.toMd();
  32. overWriteFenceRule(md);
  33. module.exports = md;