const loaderUtils = require('loader-utils'); const MarkdownIt = require('markdown-it'); const markdownItAnchor = require('markdown-it-anchor'); const frontMatter = require('front-matter'); const highlight = require('./highlight'); const cardWrapper = require('./card-wrapper'); const { slugify } = require('transliteration'); function wrapper(content) { content = cardWrapper(content); content = escape(content); return ` `; } const parser = new MarkdownIt({ html: true, highlight }).use(markdownItAnchor, { level: 2, slugify }); module.exports = function(source) { let options = loaderUtils.getOptions(this) || {}; this.cacheable && this.cacheable(); options = { wrapper, ...options }; let fm; if (options.enableMetaData) { fm = frontMatter(source); source = fm.body; } return options.wrapper(parser.render(source), fm); };