text: /**
   * React Static Boilerplate
   * https://github.com/kriasoft/react-static-boilerplate
   *
   * 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)};`;
  };
  