UNPKG

prismjs-loader

Version:
28 lines (19 loc) 639 B
'use strict'; const Prism = require('prismjs'); const loaderUtils = require('loader-utils'); module.exports = function loader(content) { const query = loaderUtils.parseQuery(this.query); if (!query.lang) { throw new Error('You need to provide `lang` query parameter'); } if (!Prism.languages[query.lang]) { /* eslint-disable */ require(`prismjs/components/prism-${query.lang}.js`); /* eslint-enable */ } const lang = Prism.languages[query.lang]; const value = Prism.highlight(content, lang); const str = JSON.stringify(value); return `module.exports = ${str}`; }; module.exports.seperable = true;