macoshita

Prism.js syntax highlighting on markdown-it

markdown-it has the highlight option.
Apply syntax highlighting to fenced code blocks.

In README.md, use highlight.js as highlighting engine, but can also use Prism.

const MarkdownIt = require('markdown-it')
const Prism = require('prismjs')
require('prismjs/components/prism-javascript')

const md = new MarkdownIt({
  highlight (str, lang) {
    let hl

    try {
      hl = Prism.highlight(str, Prism.languages[lang])
    } catch (error) {
      console.error(error)
      hl = md.utils.escapeHtml(str)
    }

    return `<pre class="language-${lang}"><code class="language-${lang}">${hl}</code></pre>`
  }
})

This code works on nodejs.