{"version":3,"sources":["jsdelivr-header.js","/npm/gulp-nunjucks-md@2.3.2/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,MAAM,GAAK,QAAQ,MACb,KAAO,QAAQ,QACf,SAAW,QAAQ,mBACnB,YAAc,QAAQ,gBACtB,QAAU,QAAQ,YAClB,SAAW,QAAQ,YACnB,YAAc,QAAQ,gBACtB,OAAS,QAAQ,UACjB,YAAc,QAAQ,gBAE5B,IAAI,SAAW,CACb,KAAM,IACN,IAAK,QACL,UAAW,OACX,KAAM,CAAC,EACP,UAAU,EACV,MAAO,UACP,OAAQ,KACR,QAAQ,EACR,kBAAkB,EAClB,WAAY,CACV,OAAO,GAET,UAAW,MAyEb,SAAS,GAAI,EAAM,EAAS,GAC1B,MAAM,EAAS,IAAI,OAAO,SAG1B,OAFA,OAAO,WAAW,EAAQ,QAC1B,EAAO,KAAO,GAAQ,SAAS,GACxB,EAAgB,OAAO,GAAQ,OAAO,EAAM,CAAE,SAAU,GACjE,CA3EA,OAAO,QAAU,IACf,EAAU,OAAO,OAAO,CAAC,EAAG,SAAU,GACtC,SAAS,UAAU,EAAQ,YAE3B,MAAM,EAAU,IAAI,SAAS,YAAY,IAAI,SAAS,iBAAiB,EAAQ,MAAO,EAAQ,YAU9F,MARmC,mBAAvB,EAAiB,WAC3B,EAAQ,UAAU,KAAK,KAAM,GAOxB,QAAQ,KAAI,SAAU,EAAM,EAAK,GACtC,IAAI,EAAO,CAAC,EAOZ,GALE,EAD0B,iBAAjB,EAAQ,KACV,OAAO,OAAO,CAAC,EAAG,EAAQ,MAE1B,KAAK,MAAM,GAAG,aAAa,KAAK,QAAQ,EAAQ,MAAO,SAG5D,EAAK,SAEP,OADA,KAAK,KAAK,GACH,IAOT,GAJI,EAAK,OACP,EAAO,OAAO,OAAO,CAAC,EAAG,EAAK,KAAM,IAGlC,EAAK,WAEP,OADA,KAAK,KAAK,QAAS,IAAI,YAAY,mBAAoB,4BAChD,IAGT,MAAM,EAAa,kBAAkB,KAAK,KAAK,QAAQ,EAAK,OACtD,EAAc,YAAY,EAAK,SAAS,YACxC,EAAiB,OAAO,KAAK,EAAY,YAAY,OAC3D,IAAI,EAAe,EAAY,KAE3B,IAAgB,EAAO,OAAO,OAAO,CAAC,EAAG,EAAM,CAAE,KAAM,EAAY,cAEvE,MAAM,EAAgB,YAAY,EAAM,cAAe,EAAQ,QAG/D,GAFI,IAAY,EAAe,GAAG,EAAc,EAAS,IAErD,YAAY,EAAM,eAAgB,CACpC,MAAM,EAAe,YAAY,EAAM,gBAAiB,EAAQ,UAC1D,EAAgB,eAAe,EAAK,KAAK,SAAS,EAAQ,gBAC1D,EAAe,YAAY,EAAQ,WAAW,kBACpD,EAAe,GAAG,KAAiB,EAAe,EAAe,GACnE,MAAW,GACT,KAAK,KAAK,QAAS,IAAI,YAAY,mBAAoB,gDAGzD,IACE,EAAK,SAAW,OAAO,KAAK,EAAQ,aAAa,EAAc,IAG1D,EAAQ,mBACX,EAAK,QAAU,EAAQ,KAEzB,KAAK,KAAK,EACZ,CAAE,MAAO,GACP,KAAK,KAAK,QAAS,IAAI,YAAY,mBAAoB,EAAK,CAAE,SAAU,EAAK,OAC/E,CACA,GACF,GAAC,EAUH,OAAO,QAAQ,YAAc,SAAU,GACrC,SAAW,OAAO,OAAO,CAAC,EAAG,SAAU,EACzC,EAEA,OAAO,QAAQ,SAAW","file":"/npm/gulp-nunjucks-md@2.3.2/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/gulp-nunjucks-md@2.3.2/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","const fs = require('fs')\nconst path = require('path')\nconst unescape = require('lodash.unescape')\nconst PluginError = require('plugin-error')\nconst through = require('through2')\nconst nunjucks = require('nunjucks')\nconst frontMatter = require('front-matter')\nconst marked = require('marked')\nconst preferLocal = require('prefer-local')\n\nlet defaults = {\n  path: '.',\n  ext: '.html',\n  extLayout: '.njk',\n  data: {},\n  useBlock: true,\n  block: 'content',\n  marked: null,\n  escape: true,\n  inheritExtension: false,\n  envOptions: {\n    watch: false\n  },\n  manageEnv: null\n}\n\nmodule.exports = options => {\n  options = Object.assign({}, defaults, options)\n  nunjucks.configure(options.envOptions)\n\n  const compile = new nunjucks.Environment(new nunjucks.FileSystemLoader(options.path), options.envOptions)\n\n  if (typeof (options.manageEnv) === 'function') {\n    options.manageEnv.call(null, compile)\n  }\n\n  /*\n   * file = file\n   * cb   = callback function\n   */\n  return through.obj(function (file, enc, cb) {\n    let data = {}\n    if (typeof options.data === 'object') {\n      data = Object.assign({}, options.data)\n    } else {\n      data = JSON.parse(fs.readFileSync(path.resolve(options.data), 'utf8'))\n    }\n\n    if (file.isNull()) {\n      this.push(file)\n      return cb()\n    }\n\n    if (file.data) {\n      data = Object.assign({}, file.data, data)\n    }\n\n    if (file.isStream()) {\n      this.emit('error', new PluginError('gulp-nunjucks-md', 'Streaming not supported'))\n      return cb()\n    }\n\n    const isMarkdown = /\\.md|\\.markdown/.test(path.extname(file.path))\n    const frontmatter = frontMatter(file.contents.toString())\n    const haveAttributes = Object.keys(frontmatter.attributes).length\n    let _fileContent = frontmatter.body\n    // merge front-matter data\n    if (haveAttributes) data = Object.assign({}, data, { page: frontmatter.attributes })\n    // process markdown\n    const _shouldEscape = preferLocal(data, 'page.escape', options.escape)\n    if (isMarkdown) _fileContent = md(_fileContent, options, _shouldEscape)\n\n    if (preferLocal(data, 'page.layout')) {\n      const _canUseBlock = preferLocal(data, 'page.useBlock', options.useBlock)\n      const _extendLayout = `{% extends \"${data.page.layout}${options.extLayout}\" %}`\n      const _extendBlock = `{% block ${options.block} %}${_fileContent}{% endblock %}`\n      _fileContent = `${_extendLayout} ${_canUseBlock ? _extendBlock : _fileContent}`\n    } else if (haveAttributes) {\n      this.emit('error', new PluginError('gulp-nunjucks-md', 'Layout not declared in front-matter or data'))\n    }\n\n    try {\n      file.contents = Buffer.from(compile.renderString(_fileContent, data))\n      // Replace extension with mentioned/default extension\n      // only if inherit extension flag is not provided(truthy)\n      if (!options.inheritExtension) {\n        file.extname = options.ext\n      }\n      this.push(file)\n    } catch (err) {\n      this.emit('error', new PluginError('gulp-nunjucks-md', err, { fileName: file.path }))\n    }\n    cb()\n  })\n}\n\nfunction md (text, options, _shouldEscape) {\n  const render = new marked.Renderer()\n  marked.setOptions(options.marked)\n  render.text = text => unescape(text)\n  return _shouldEscape ? marked(text) : marked(text, { renderer: render })\n}\n\nmodule.exports.setDefaults = function (options) {\n  defaults = Object.assign({}, defaults, options)\n}\n\nmodule.exports.nunjucks = nunjucks\n"]}