prismjs-loader
Version:
prismjs webpack loader
28 lines (19 loc) • 639 B
JavaScript
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;
;