UNPKG

react-ark-tools

Version:

Boilerplate and tooling for JavaScript application development with React

40 lines (32 loc) 1.1 kB
/** * React App SDK (https://github.com/kriasoft/react-app) * * Copyright © 2015-present Kriasoft, LLC. All rights reserved. * * This source code is licensed under the MIT license found in the * LICENSE.txt file in the root directory of this source tree. */ const MarkdownIt = require('markdown-it'); const hljs = require('highlight.js'); const fm = require('front-matter'); module.exports = function markdownLoader(source) { this.cacheable(); const md = new MarkdownIt({ html: true, linkify: true, highlight: (str, lang) => { if (lang && hljs.getLanguage(lang)) { try { return hljs.highlight(lang, str).value; } catch (err) { console.error(err.stack); } // eslint-disable-line no-console } try { return hljs.highlightAuto(str).value; } catch (err) { console.error(err.stack); } // eslint-disable-line no-console return ''; }, }); const frontmatter = fm(source); frontmatter.attributes.html = md.render(frontmatter.body); return `module.exports = ${JSON.stringify(frontmatter.attributes)};`; };