{"version":3,"file":"index.mjs","sources":["../../src/lexer.js","../../src/grammar.js","../../src/parser.js","../../src/util/clean-newlines.js","../../src/util/pipeline.js","../../src/plugins/hoist-variables.js","../../src/plugins/flatten-children.js","../../src/plugins/make-full-width.js","../../src/plugins/wrap-text.js","../../src/plugins/clean-results.js","../../src/plugins/smart-quotes.js","../../src/plugins/auto-linkify.js","../../src/index.js"],"sourcesContent":["var Lexer = require('lex');\n\nconst formatToken = text => {\n  text = text || '';\n  const results = [];\n  results.push('TOKEN_VALUE_START');\n  results.push(\n    '\"' +\n      text\n        .replace(/\\\"/g, '&quot;')\n        .replace(/\\\\\\[/, '[')\n        .replace(/\\\\\\]/, ']') +\n      '\"'\n  );\n  results.push('TOKEN_VALUE_END');\n  return results;\n};\n\nconst shouldBreak = text => {\n  if (text.trim() === '' && (text.match(/\\n/g) || []).length > 1) {\n    return true;\n  }\n  return false;\n};\n\nlet currentInput = null;\n\nconst lex = function(options, alias = {}) {\n  let { row, column, outer, skipLists, inComponent, gotName } = Object.assign(\n    {},\n    {\n      row: 1,\n      column: 1,\n      outer: true,\n      skipLists: false,\n      inComponent: false,\n      gotName: false\n    },\n    options || {}\n  );\n  var lexer = new Lexer(function(chr) {\n    let errorString = `\n      Error lexing input, unexpected token: ${chr}\n\n      Found near index ${this.index - 1}:\n\n      ${currentInput.substring(\n        Math.max(0, this.index - 10),\n        Math.min(this.index + 10, currentInput.length - 1)\n      )}\n    `;\n    throw new Error(errorString);\n  });\n\n  const recurse = (str, opts) => {\n    return lex(Object.assign({ row, column, outer: false }, opts || {}), alias)(\n      str\n    ).tokens;\n  };\n  const findAliases = name => {\n    const aliasNames = Object.keys(alias);\n    return [\n      name,\n      ...aliasNames.filter(\n        aliasName => alias[aliasName].toLowerCase() === name.toLowerCase()\n      )\n    ].join('|');\n  };\n  var updatePosition = function(lexeme) {\n    var lines = lexeme.split('\\n');\n    row += lines.length - 1;\n    if (lines.length > 1) {\n      column = 0;\n    }\n    column += lines[lines.length - 1].length;\n  };\n\n  // Rules at the front are pre-processed,\n  // e.g. equations, and code snippets\n  // that shouldn't be formatted.\n  const equationAliases = findAliases('equation');\n  lexer.addRule(\n    new RegExp(\n      String.raw`\\[\\s*(${equationAliases})\\s*([^\\/\\]]*)\\s*\\][\\n\\s\\t]*(((?!(\\[\\s*\\/(${equationAliases})\\s*\\])).\\n?)*)[\\n\\s\\t]*\\[\\s*\\/\\s*(${equationAliases})\\s*\\]`,\n      'i'\n    ),\n    function(lexeme, tagName, props, innerText) {\n      inComponent = false;\n      if (this.reject) return;\n      updatePosition(lexeme);\n      return [\n        ['OPEN_BRACKET', 'COMPONENT_NAME']\n          .concat(formatToken('equation'))\n          .concat(recurse(props, { inComponent: true, gotName: true }))\n          .concat(['CLOSE_BRACKET'])\n          .concat(['WORDS'])\n          .concat(formatToken(innerText.trim()))\n          .concat(['OPEN_BRACKET', 'FORWARD_SLASH', 'COMPONENT_NAME'])\n          .concat(formatToken('equation'))\n          .concat(['CLOSE_BRACKET'])\n      ];\n    }\n  );\n  const codeAlias = findAliases('code');\n  lexer.addRule(\n    new RegExp(\n      String.raw`\\[\\s*(${codeAlias})\\s*([^\\/\\]]*)\\s*\\][\\n\\s\\t]*(((?!(\\[\\s*\\/(${codeAlias})\\s*\\])).\\n?)*)[\\n\\s\\t]*\\[\\s*\\/\\s*(${codeAlias})\\s*\\]`,\n      'i'\n    ),\n    function(lexeme, tagName, props, innerText) {\n      inComponent = false;\n      if (this.reject) return;\n      updatePosition(lexeme);\n      return [\n        ['OPEN_BRACKET', 'COMPONENT_NAME']\n          .concat(formatToken('code'))\n          .concat(recurse(props, { inComponent: true, gotName: true }))\n          .concat(['CLOSE_BRACKET'])\n          .concat(['WORDS'])\n          .concat(formatToken(innerText.trim()))\n          .concat(['OPEN_BRACKET', 'FORWARD_SLASH', 'COMPONENT_NAME'])\n          .concat(formatToken('code'))\n          .concat(['CLOSE_BRACKET'])\n      ];\n    }\n  );\n  lexer.addRule(/`{4}(\\S*)\\n(((?!````)[\\s\\S])*[^\\n])\\n?\\s*`{4}/g, function(\n    lexeme,\n    language,\n    text\n  ) {\n    this.reject = inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [\n      ['MULTILINE_CODE'].concat(formatToken(language)).concat(formatToken(text))\n    ];\n  });\n  lexer.addRule(/`{3}(\\S*)\\n(((?!```)[\\s\\S])*[^\\n])\\n?\\s*`{3}/g, function(\n    lexeme,\n    language,\n    text\n  ) {\n    this.reject = inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [\n      ['MULTILINE_CODE'].concat(formatToken(language)).concat(formatToken(text))\n    ];\n  });\n  lexer.addRule(/```(((?!```)[^\\n])+)```/, function(lexeme, text) {\n    this.reject = inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['INLINE_CODE'].concat(formatToken(text.trim()))];\n  });\n  lexer.addRule(/``(((?!``)[^\\n])+)``/, function(lexeme, text) {\n    this.reject = inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['INLINE_CODE'].concat(formatToken(text.trim()))];\n  });\n  lexer.addRule(/`([^\\n\\`]+)`/, function(lexeme, text) {\n    this.reject = inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['INLINE_CODE'].concat(formatToken(text.trim()))];\n  });\n\n  lexer.addRule(/[\\s\\n]*(#{1,6})\\s*([^\\n\\[]+)[\\n\\s]*/gm, function(\n    lexeme,\n    hashes,\n    text\n  ) {\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [\n      ['BREAK', 'HEADER_' + hashes.length]\n        .concat(recurse(text, { skipLists: true }))\n        .concat(['HEADER_END'])\n    ];\n  });\n\n  lexer.addRule(/[\\s\\n]*>\\s*([^\\n\\[]+)[\\n\\s]*/gm, function(lexeme, text) {\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [\n      ['BREAK', 'QUOTE_START']\n        .concat(recurse(text, { skipLists: true }))\n        .concat(['QUOTE_END'])\n    ];\n  });\n\n  lexer.addRule(/\\*\\*([^\\s\\n][^\\*]*[^\\s\\n])\\*\\*(\\s*)/g, function(\n    lexeme,\n    text,\n    trailingSpace\n  ) {\n    this.reject = inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    var ret = ['STRONG']\n      .concat(recurse(text, { skipLists: true }))\n      .concat(['STRONG_END']);\n    if (trailingSpace) {\n      if (shouldBreak(trailingSpace)) {\n        ret = ret.concat(['BREAK']);\n      } else {\n        ret = ret.concat(['WORDS']).concat(formatToken(trailingSpace));\n      }\n    }\n    return [ret];\n  });\n  lexer.addRule(/__([^\\s\\n][^_]*[^\\s\\n])__(\\s*)/g, function(\n    lexeme,\n    text,\n    trailingSpace\n  ) {\n    this.reject = inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    var ret = ['STRONG']\n      .concat(recurse(text, { skipLists: true }))\n      .concat(['STRONG_END']);\n    if (trailingSpace) {\n      if (shouldBreak(trailingSpace)) {\n        ret = ret.concat(['BREAK']);\n      } else {\n        ret = ret.concat(['WORDS']).concat(formatToken(trailingSpace));\n      }\n    }\n    return [ret];\n  });\n  lexer.addRule(/\\*([^\\s\\n\\*][^\\*]*[^\\s\\n\\*])\\*(\\s*)/g, function(\n    lexeme,\n    text,\n    trailingSpace\n  ) {\n    this.reject = inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    var ret = ['EM']\n      .concat(recurse(text, { skipLists: true }))\n      .concat(['EM_END']);\n    if (trailingSpace) {\n      if (shouldBreak(trailingSpace)) {\n        ret = ret.concat(['BREAK']);\n      } else {\n        ret = ret.concat(['WORDS']).concat(formatToken(trailingSpace));\n      }\n    }\n    return [ret];\n  });\n  lexer.addRule(/_([^\\s\\n_][^_]*[^\\s\\n_])_(\\s*)/g, function(\n    lexeme,\n    text,\n    trailingSpace\n  ) {\n    this.reject = inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    var ret = ['EM']\n      .concat(recurse(text, { skipLists: true }))\n      .concat(['EM_END']);\n    if (trailingSpace) {\n      if (shouldBreak(trailingSpace)) {\n        ret = ret.concat(['BREAK']);\n      } else {\n        ret = ret.concat(['WORDS']).concat(formatToken(trailingSpace));\n      }\n    }\n    return [ret];\n  });\n\n  lexer.addRule(/^\\s*([\\-\\*]\\s+([^\\n]*)\\n)*([\\-\\*]\\s+([^\\n]*)\\n?)/gm, function(\n    lexeme\n  ) {\n    this.reject = inComponent || skipLists;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    const items = lexeme.trim().split('\\n');\n    const matches = items.map(item => /[\\-\\*]\\s*([^\\n]*)/.exec(item)[1]);\n    let output = ['BREAK', 'UNORDERED_LIST'];\n    matches.forEach(item => {\n      output = output.concat(['LIST_ITEM']).concat(recurse(item.trim() || ' '));\n    });\n    return [output.concat(['LIST_END'])];\n  });\n\n  lexer.addRule(/^\\s*(\\d+\\.\\s+([^\\n]*)\\n)*(\\d+\\.\\s+([^\\n]*)\\n?)/gm, function(\n    lexeme\n  ) {\n    this.reject = inComponent || skipLists;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    const items = lexeme.trim().split('\\n');\n    const matches = items.map(item => /\\d+\\.\\s*([^\\n]*)/.exec(item)[1]);\n    let output = ['BREAK', 'ORDERED_LIST'];\n    matches.forEach(item => {\n      output = output.concat(['LIST_ITEM']).concat(recurse(item));\n    });\n    return [output.concat(['LIST_END'])];\n  });\n\n  lexer.addRule(\n    /\\s*~((\\s*\\w*\\s*(:?=)\\s*[^\\n,]*)[^\\n,](,[^\\n]\\s*\\w*\\s*(:?=)\\s*[^\\n,]*)*)/g,\n    function(lexeme, variableDeclarations) {\n      if (this.reject) return;\n      updatePosition(lexeme);\n      let output = [];\n      variableDeclarations.split(',').forEach(declaration => {\n        if (declaration[declaration.indexOf('=') - 1] === ':') {\n          output = output\n            .concat(['OPEN_BRACKET', 'COMPONENT_NAME'])\n            .concat(formatToken('derived'))\n            .concat(['COMPONENT_WORD'])\n            .concat(formatToken('name'))\n            .concat('PARAM_SEPARATOR', 'COMPONENT_WORD')\n            .concat(formatToken(declaration.split(':=')[0].trim()))\n            .concat(['COMPONENT_WORD'])\n            .concat(formatToken('value'))\n            .concat(['PARAM_SEPARATOR'])\n            .concat(['EXPRESSION'])\n            .concat(formatToken('`' + declaration.split(':=')[1].trim() + '`'))\n            .concat(['FORWARD_SLASH', 'CLOSE_BRACKET']);\n        } else {\n          output = output\n            .concat(['OPEN_BRACKET', 'COMPONENT_NAME'])\n            .concat(formatToken('var'))\n            .concat(['COMPONENT_WORD'])\n            .concat(formatToken('name'))\n            .concat('PARAM_SEPARATOR', 'COMPONENT_WORD')\n            .concat(formatToken(declaration.split('=')[0].trim()))\n            .concat(['COMPONENT_WORD'])\n            .concat(formatToken('value'))\n            .concat('PARAM_SEPARATOR')\n            .concat(\n              recurse(declaration.split('=')[1].trim(), { inComponent: true })\n            )\n            .concat(['FORWARD_SLASH', 'CLOSE_BRACKET']);\n        }\n      });\n      return [output];\n    }\n  );\n  lexer.addRule(/!\\[([^\\]]*)\\]\\(([^\\)]*)\\)/, function(lexeme, text, link) {\n    this.reject = inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['IMAGE'].concat(formatToken(text)).concat(formatToken(link))];\n  });\n\n  lexer.addRule(/\\[([^\\]]*)\\]\\(([^\\)]*)\\)/, function(lexeme, text, link) {\n    this.reject = inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['LINK'].concat(formatToken(text)).concat(formatToken(link))];\n  });\n\n  lexer.addRule(/(\\n\\s*\\/\\/[^\\n]*|\\/\\/\\s+[^\\n]*)/, function(lexeme) {\n    updatePosition(lexeme);\n    if (lexeme.startsWith('\\n')) {\n      return [['BREAK']];\n    }\n  });\n\n  lexer.addRule(/\\/(\\n?[^`\\*\\[\\/\\n\\]!\\\\\\d_])*/gm, function(lexeme) {\n    this.reject = inComponent || lexeme.trim() === '';\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['WORDS'].concat(formatToken(lexeme))];\n  });\n\n  lexer.addRule(/(\\n?[^`\\*\\[\\/\\n\\]!\\\\\\d_])+/, function(lexeme) {\n    this.reject = inComponent || lexeme.trim() === '';\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['WORDS'].concat(formatToken(lexeme))];\n  });\n  // Match on separately so we can greedily match the\n  // other tags.\n  lexer.addRule(/[!\\d\\*_`] */, function(lexeme) {\n    this.reject = inComponent || lexeme.trim() === '';\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['WORDS'].concat(formatToken(lexeme))];\n  });\n  lexer.addRule(/\\\\[\\[\\]]?/, function(lexeme) {\n    this.reject = inComponent || lexeme.trim() === '';\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['WORDS'].concat(formatToken(lexeme))];\n  });\n\n  lexer.addRule(/\\s*\\n{2,}\\s*/, function(lexeme) {\n    this.reject = inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['BREAK']];\n  });\n\n  lexer.addRule(/[ \\t\\n]+/, function(lexeme) {\n    updatePosition(lexeme);\n  });\n\n  lexer.addRule(/\\[/, function(lexeme) {\n    inComponent = true;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['OPEN_BRACKET']];\n  });\n\n  lexer.addRule(/\\]([ ]*)/, function(lexeme, trailingSpace) {\n    inComponent = false;\n    gotName = false;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    var ret = ['CLOSE_BRACKET'];\n    if (trailingSpace) {\n      ret = ret.concat(['WORDS']).concat(formatToken(trailingSpace));\n    }\n    return [ret];\n  });\n\n  lexer.addRule(/\\//, function(lexeme) {\n    this.reject = !inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['FORWARD_SLASH']];\n  });\n\n  lexer.addRule(/true|false/, function(lexeme) {\n    this.reject = !inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['BOOLEAN'].concat(formatToken(lexeme))];\n  });\n\n  lexer.addRule(\n    /[^+\\-0-9:\\s\\/\\]\"'`\\.]([^:\\s\\/\\]\"'`]*[^:\\s\\/\\]\"'`\\.])*/,\n    function(lexeme) {\n      this.reject = !inComponent || gotName;\n      if (this.reject) return;\n      gotName = true;\n      updatePosition(lexeme);\n      return [['COMPONENT_NAME'].concat(formatToken(lexeme))];\n    }\n  );\n  lexer.addRule(/[^+\\-0-9:\\s\\/\\]\"'`\\.][^:\\s\\/\\]\"'`\\.]*/, function(lexeme) {\n    this.reject = !inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['COMPONENT_WORD'].concat(formatToken(lexeme))];\n  });\n\n  lexer.addRule(/`[^`]*`/, function(lexeme) {\n    this.reject = !inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['EXPRESSION'].concat(formatToken(lexeme))];\n  });\n\n  lexer.addRule(/[+\\-]?\\.?[0-9]+\\.?[0-9]*/, function(lexeme) {\n    const multiplePeriods =\n      (lexeme.match(new RegExp(/\\./, 'g')) || []).length >= 2;\n    this.reject = !inComponent || multiplePeriods;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['NUMBER'].concat(formatToken(lexeme))];\n  });\n\n  lexer.addRule(/\"[^\"]*\"/, function(lexeme) {\n    this.reject = !inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['STRING'].concat(formatToken(lexeme))];\n  });\n  lexer.addRule(/'([^']*)'/, function(lexeme, str) {\n    this.reject = !inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['STRING'].concat(formatToken('\"' + str + '\"'))];\n  });\n\n  lexer.addRule(/:/, function(lexeme) {\n    this.reject = !inComponent;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['PARAM_SEPARATOR']];\n  });\n\n  lexer.addRule(/\\s*$/, function(lexeme) {\n    this.reject = !outer;\n    if (this.reject) return;\n    updatePosition(lexeme);\n    return [['EOF']];\n  });\n\n  return function(str) {\n    currentInput = str;\n    var vals = [];\n    var output = [];\n    var positions = [];\n\n    lexer.input = str.trim();\n    var token = lexer.lex();\n\n    while (token) {\n      output.push(token);\n      positions.push([row, column]);\n      token = lexer.lex();\n    }\n    return {\n      tokens: output,\n      positions: positions\n    };\n  };\n};\n\nexport default lex;\n","// Generated automatically by nearley, version 2.20.1\n// http://github.com/Hardmath123/nearley\n(function () {\nfunction id(x) { return x[0]; }\nvar grammar = {\n    Lexer: undefined,\n    ParserRules: [\n    {\"name\": \"_$ebnf$1\", \"symbols\": []},\n    {\"name\": \"_$ebnf$1\", \"symbols\": [\"_$ebnf$1\", \"wschar\"], \"postprocess\": function arrpush(d) {return d[0].concat([d[1]]);}},\n    {\"name\": \"_\", \"symbols\": [\"_$ebnf$1\"], \"postprocess\": function(d) {return null;}},\n    {\"name\": \"__$ebnf$1\", \"symbols\": [\"wschar\"]},\n    {\"name\": \"__$ebnf$1\", \"symbols\": [\"__$ebnf$1\", \"wschar\"], \"postprocess\": function arrpush(d) {return d[0].concat([d[1]]);}},\n    {\"name\": \"__\", \"symbols\": [\"__$ebnf$1\"], \"postprocess\": function(d) {return null;}},\n    {\"name\": \"wschar\", \"symbols\": [/[ \\t\\n\\v\\f]/], \"postprocess\": id},\n    {\"name\": \"Sourcefile$string$1\", \"symbols\": [{\"literal\":\"E\"}, {\"literal\":\"O\"}, {\"literal\":\"F\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"Sourcefile\", \"symbols\": [\"Blocks\", \"Sourcefile$string$1\"], \"postprocess\": \n        function(data, location, reject) {\n          return data[0];\n        }\n        },\n    {\"name\": \"Blocks$ebnf$1\", \"symbols\": []},\n    {\"name\": \"Blocks$ebnf$1$subexpression$1$string$1\", \"symbols\": [{\"literal\":\"B\"}, {\"literal\":\"R\"}, {\"literal\":\"E\"}, {\"literal\":\"A\"}, {\"literal\":\"K\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"Blocks$ebnf$1$subexpression$1\", \"symbols\": [\"Blocks$ebnf$1$subexpression$1$string$1\", \"__\"]},\n    {\"name\": \"Blocks$ebnf$1\", \"symbols\": [\"Blocks$ebnf$1\", \"Blocks$ebnf$1$subexpression$1\"], \"postprocess\": function arrpush(d) {return d[0].concat([d[1]]);}},\n    {\"name\": \"Blocks$ebnf$2\", \"symbols\": []},\n    {\"name\": \"Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1$subexpression$1$string$1\", \"symbols\": [{\"literal\":\"B\"}, {\"literal\":\"R\"}, {\"literal\":\"E\"}, {\"literal\":\"A\"}, {\"literal\":\"K\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1$subexpression$1\", \"symbols\": [\"Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1$subexpression$1$string$1\", \"__\"]},\n    {\"name\": \"Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1\", \"symbols\": [\"Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1$subexpression$1\"]},\n    {\"name\": \"Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1$subexpression$2$string$1\", \"symbols\": [{\"literal\":\"B\"}, {\"literal\":\"R\"}, {\"literal\":\"E\"}, {\"literal\":\"A\"}, {\"literal\":\"K\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1$subexpression$2\", \"symbols\": [\"Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1$subexpression$2$string$1\", \"__\"]},\n    {\"name\": \"Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1\", \"symbols\": [\"Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1\", \"Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1$subexpression$2\"], \"postprocess\": function arrpush(d) {return d[0].concat([d[1]]);}},\n    {\"name\": \"Blocks$ebnf$2$subexpression$1$subexpression$1\", \"symbols\": [\"BreakBlock\", \"__\", \"Blocks$ebnf$2$subexpression$1$subexpression$1$ebnf$1\"]},\n    {\"name\": \"Blocks$ebnf$2$subexpression$1\", \"symbols\": [\"Blocks$ebnf$2$subexpression$1$subexpression$1\"]},\n    {\"name\": \"Blocks$ebnf$2$subexpression$1$subexpression$2$ebnf$1\", \"symbols\": []},\n    {\"name\": \"Blocks$ebnf$2$subexpression$1$subexpression$2$ebnf$1$subexpression$1$string$1\", \"symbols\": [{\"literal\":\"B\"}, {\"literal\":\"R\"}, {\"literal\":\"E\"}, {\"literal\":\"A\"}, {\"literal\":\"K\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"Blocks$ebnf$2$subexpression$1$subexpression$2$ebnf$1$subexpression$1\", \"symbols\": [\"Blocks$ebnf$2$subexpression$1$subexpression$2$ebnf$1$subexpression$1$string$1\", \"__\"]},\n    {\"name\": \"Blocks$ebnf$2$subexpression$1$subexpression$2$ebnf$1\", \"symbols\": [\"Blocks$ebnf$2$subexpression$1$subexpression$2$ebnf$1\", \"Blocks$ebnf$2$subexpression$1$subexpression$2$ebnf$1$subexpression$1\"], \"postprocess\": function arrpush(d) {return d[0].concat([d[1]]);}},\n    {\"name\": \"Blocks$ebnf$2$subexpression$1$subexpression$2\", \"symbols\": [\"NoBreakBlock\", \"__\", \"Blocks$ebnf$2$subexpression$1$subexpression$2$ebnf$1\"]},\n    {\"name\": \"Blocks$ebnf$2$subexpression$1\", \"symbols\": [\"Blocks$ebnf$2$subexpression$1$subexpression$2\"]},\n    {\"name\": \"Blocks$ebnf$2\", \"symbols\": [\"Blocks$ebnf$2\", \"Blocks$ebnf$2$subexpression$1\"], \"postprocess\": function arrpush(d) {return d[0].concat([d[1]]);}},\n    {\"name\": \"Blocks$ebnf$3$subexpression$1\", \"symbols\": [\"BreakBlock\", \"__\"]},\n    {\"name\": \"Blocks$ebnf$3\", \"symbols\": [\"Blocks$ebnf$3$subexpression$1\"], \"postprocess\": id},\n    {\"name\": \"Blocks$ebnf$3\", \"symbols\": [], \"postprocess\": function(d) {return null;}},\n    {\"name\": \"Blocks\", \"symbols\": [\"Blocks$ebnf$1\", \"Blocks$ebnf$2\", \"Blocks$ebnf$3\"], \"postprocess\": \n        function(data, location, reject) {\n          var blocks = [];\n          data[1].forEach(function(d) {\n            blocks.push(d[0][0]);\n          })\n        \n          if (data[2]) {\n            blocks.push(data[2][0]);\n          }\n          return blocks;\n        }\n        },\n    {\"name\": \"Block$subexpression$1\", \"symbols\": [\"BreakBlock\"]},\n    {\"name\": \"Block$subexpression$1\", \"symbols\": [\"NoBreakBlock\"]},\n    {\"name\": \"Block\", \"symbols\": [\"Block$subexpression$1\"], \"postprocess\": \n        function(data, location, reject) {\n          return data[0][0];\n        }\n        },\n    {\"name\": \"NoBreakBlock$subexpression$1\", \"symbols\": [\"Header\"]},\n    {\"name\": \"NoBreakBlock$subexpression$1\", \"symbols\": [\"Quote\"]},\n    {\"name\": \"NoBreakBlock$subexpression$1\", \"symbols\": [\"MultilineCode\"]},\n    {\"name\": \"NoBreakBlock$subexpression$1\", \"symbols\": [\"UnorderedList\"]},\n    {\"name\": \"NoBreakBlock$subexpression$1\", \"symbols\": [\"OrderedList\"]},\n    {\"name\": \"NoBreakBlock\", \"symbols\": [\"NoBreakBlock$subexpression$1\"], \"postprocess\": \n        function(data, location, reject) {\n          return data[0][0];\n        }\n        },\n    {\"name\": \"BreakBlock$subexpression$1\", \"symbols\": [\"Paragraph\"]},\n    {\"name\": \"BreakBlock\", \"symbols\": [\"BreakBlock$subexpression$1\"], \"postprocess\": \n        function(data, location, reject) {\n          return data[0][0];\n        }\n        },\n    {\"name\": \"Header$string$1\", \"symbols\": [{\"literal\":\"H\"}, {\"literal\":\"E\"}, {\"literal\":\"A\"}, {\"literal\":\"D\"}, {\"literal\":\"E\"}, {\"literal\":\"R\"}, {\"literal\":\"_\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"Header$ebnf$1$subexpression$1\", \"symbols\": [\"__\", \"ParagraphItem\"]},\n    {\"name\": \"Header$ebnf$1\", \"symbols\": [\"Header$ebnf$1$subexpression$1\"]},\n    {\"name\": \"Header$ebnf$1$subexpression$2\", \"symbols\": [\"__\", \"ParagraphItem\"]},\n    {\"name\": \"Header$ebnf$1\", \"symbols\": [\"Header$ebnf$1\", \"Header$ebnf$1$subexpression$2\"], \"postprocess\": function arrpush(d) {return d[0].concat([d[1]]);}},\n    {\"name\": \"Header$string$2\", \"symbols\": [{\"literal\":\"H\"}, {\"literal\":\"E\"}, {\"literal\":\"A\"}, {\"literal\":\"D\"}, {\"literal\":\"E\"}, {\"literal\":\"R\"}, {\"literal\":\"_\"}, {\"literal\":\"E\"}, {\"literal\":\"N\"}, {\"literal\":\"D\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"Header\", \"symbols\": [\"Header$string$1\", /[1-6]/, \"Header$ebnf$1\", \"__\", \"Header$string$2\"], \"postprocess\": \n        function(data, location, reject) {\n          var children = [];\n          data[2].map(function (child) {\n            children.push(child[1]);\n          });\n        \n          return [\"h\" + data[1], [], children];\n        }\n        },\n    {\"name\": \"Quote$string$1\", \"symbols\": [{\"literal\":\"Q\"}, {\"literal\":\"U\"}, {\"literal\":\"O\"}, {\"literal\":\"T\"}, {\"literal\":\"E\"}, {\"literal\":\"_\"}, {\"literal\":\"S\"}, {\"literal\":\"T\"}, {\"literal\":\"A\"}, {\"literal\":\"R\"}, {\"literal\":\"T\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"Quote$ebnf$1$subexpression$1\", \"symbols\": [\"__\", \"ParagraphItem\"]},\n    {\"name\": \"Quote$ebnf$1\", \"symbols\": [\"Quote$ebnf$1$subexpression$1\"]},\n    {\"name\": \"Quote$ebnf$1$subexpression$2\", \"symbols\": [\"__\", \"ParagraphItem\"]},\n    {\"name\": \"Quote$ebnf$1\", \"symbols\": [\"Quote$ebnf$1\", \"Quote$ebnf$1$subexpression$2\"], \"postprocess\": function arrpush(d) {return d[0].concat([d[1]]);}},\n    {\"name\": \"Quote$string$2\", \"symbols\": [{\"literal\":\"Q\"}, {\"literal\":\"U\"}, {\"literal\":\"O\"}, {\"literal\":\"T\"}, {\"literal\":\"E\"}, {\"literal\":\"_\"}, {\"literal\":\"E\"}, {\"literal\":\"N\"}, {\"literal\":\"D\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"Quote\", \"symbols\": [\"Quote$string$1\", \"Quote$ebnf$1\", \"__\", \"Quote$string$2\"], \"postprocess\": \n        function(data, location, reject) {\n          var children = [];\n          data[1].map(function (child) {\n            children.push(child[1]);\n          });\n        \n          return [\"blockquote\", [], children];\n        }\n        },\n    {\"name\": \"UnorderedList$string$1\", \"symbols\": [{\"literal\":\"U\"}, {\"literal\":\"N\"}, {\"literal\":\"O\"}, {\"literal\":\"R\"}, {\"literal\":\"D\"}, {\"literal\":\"E\"}, {\"literal\":\"R\"}, {\"literal\":\"E\"}, {\"literal\":\"D\"}, {\"literal\":\"_\"}, {\"literal\":\"L\"}, {\"literal\":\"I\"}, {\"literal\":\"S\"}, {\"literal\":\"T\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"UnorderedList$ebnf$1$subexpression$1\", \"symbols\": [\"__\", \"ListItem\"]},\n    {\"name\": \"UnorderedList$ebnf$1\", \"symbols\": [\"UnorderedList$ebnf$1$subexpression$1\"]},\n    {\"name\": \"UnorderedList$ebnf$1$subexpression$2\", \"symbols\": [\"__\", \"ListItem\"]},\n    {\"name\": \"UnorderedList$ebnf$1\", \"symbols\": [\"UnorderedList$ebnf$1\", \"UnorderedList$ebnf$1$subexpression$2\"], \"postprocess\": function arrpush(d) {return d[0].concat([d[1]]);}},\n    {\"name\": \"UnorderedList$string$2\", \"symbols\": [{\"literal\":\"L\"}, {\"literal\":\"I\"}, {\"literal\":\"S\"}, {\"literal\":\"T\"}, {\"literal\":\"_\"}, {\"literal\":\"E\"}, {\"literal\":\"N\"}, {\"literal\":\"D\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"UnorderedList\", \"symbols\": [\"UnorderedList$string$1\", \"UnorderedList$ebnf$1\", \"__\", \"UnorderedList$string$2\"], \"postprocess\": \n        function(data, location, reject) {\n          var children = [];\n          data[1].map(function (child) {\n            children.push([\"li\", [], child[1]]);\n          });\n          return [\"ul\", [], children];\n        }\n        },\n    {\"name\": \"OrderedList$string$1\", \"symbols\": [{\"literal\":\"O\"}, {\"literal\":\"R\"}, {\"literal\":\"D\"}, {\"literal\":\"E\"}, {\"literal\":\"R\"}, {\"literal\":\"E\"}, {\"literal\":\"D\"}, {\"literal\":\"_\"}, {\"literal\":\"L\"}, {\"literal\":\"I\"}, {\"literal\":\"S\"}, {\"literal\":\"T\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"OrderedList$ebnf$1$subexpression$1\", \"symbols\": [\"__\", \"ListItem\"]},\n    {\"name\": \"OrderedList$ebnf$1\", \"symbols\": [\"OrderedList$ebnf$1$subexpression$1\"]},\n    {\"name\": \"OrderedList$ebnf$1$subexpression$2\", \"symbols\": [\"__\", \"ListItem\"]},\n    {\"name\": \"OrderedList$ebnf$1\", \"symbols\": [\"OrderedList$ebnf$1\", \"OrderedList$ebnf$1$subexpression$2\"], \"postprocess\": function arrpush(d) {return d[0].concat([d[1]]);}},\n    {\"name\": \"OrderedList$string$2\", \"symbols\": [{\"literal\":\"L\"}, {\"literal\":\"I\"}, {\"literal\":\"S\"}, {\"literal\":\"T\"}, {\"literal\":\"_\"}, {\"literal\":\"E\"}, {\"literal\":\"N\"}, {\"literal\":\"D\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"OrderedList\", \"symbols\": [\"OrderedList$string$1\", \"OrderedList$ebnf$1\", \"__\", \"OrderedList$string$2\"], \"postprocess\": \n        function(data, location, reject) {\n          var children = [];\n          data[1].map(function (child) {\n            children.push([\"li\", [], child[1]]);\n          });\n          return [\"ol\", [], children];\n        }\n        },\n    {\"name\": \"ListItem$string$1\", \"symbols\": [{\"literal\":\"L\"}, {\"literal\":\"I\"}, {\"literal\":\"S\"}, {\"literal\":\"T\"}, {\"literal\":\"_\"}, {\"literal\":\"I\"}, {\"literal\":\"T\"}, {\"literal\":\"E\"}, {\"literal\":\"M\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"ListItem$ebnf$1$subexpression$1\", \"symbols\": [\"__\", \"ParagraphItem\"]},\n    {\"name\": \"ListItem$ebnf$1\", \"symbols\": [\"ListItem$ebnf$1$subexpression$1\"]},\n    {\"name\": \"ListItem$ebnf$1$subexpression$2\", \"symbols\": [\"__\", \"ParagraphItem\"]},\n    {\"name\": \"ListItem$ebnf$1\", \"symbols\": [\"ListItem$ebnf$1\", \"ListItem$ebnf$1$subexpression$2\"], \"postprocess\": function arrpush(d) {return d[0].concat([d[1]]);}},\n    {\"name\": \"ListItem\", \"symbols\": [\"ListItem$string$1\", \"ListItem$ebnf$1\"], \"postprocess\": \n        function(data, location, reject) {\n          var children = [];\n          data[1].map(function (child) {\n            children.push(child[1]);\n          });\n          return children;\n        }\n        },\n    {\"name\": \"MultilineCode$string$1\", \"symbols\": [{\"literal\":\"M\"}, {\"literal\":\"U\"}, {\"literal\":\"L\"}, {\"literal\":\"T\"}, {\"literal\":\"I\"}, {\"literal\":\"L\"}, {\"literal\":\"I\"}, {\"literal\":\"N\"}, {\"literal\":\"E\"}, {\"literal\":\"_\"}, {\"literal\":\"C\"}, {\"literal\":\"O\"}, {\"literal\":\"D\"}, {\"literal\":\"E\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"MultilineCode$ebnf$1$subexpression$1\", \"symbols\": [\"__\", \"TokenValue\"]},\n    {\"name\": \"MultilineCode$ebnf$1\", \"symbols\": [\"MultilineCode$ebnf$1$subexpression$1\"]},\n    {\"name\": \"MultilineCode$ebnf$1$subexpression$2\", \"symbols\": [\"__\", \"TokenValue\"]},\n    {\"name\": \"MultilineCode$ebnf$1\", \"symbols\": [\"MultilineCode$ebnf$1\", \"MultilineCode$ebnf$1$subexpression$2\"], \"postprocess\": function arrpush(d) {return d[0].concat([d[1]]);}},\n    {\"name\": \"MultilineCode\", \"symbols\": [\"MultilineCode$string$1\", \"MultilineCode$ebnf$1\"], \"postprocess\": \n        function(data, location, reject) {\n          if (data[1].length > 1 && data[1][0][1].trim() !== '') {\n            return [\"CodeHighlight\", [['language', ['value', data[1][0][1]]]], [data[1][1][1]]];\n          } else {\n            return [\"pre\", [], [[\"code\", [], [data[1][data[1].length - 1][1]]]]];\n          }\n        }\n        },\n    {\"name\": \"Paragraph$ebnf$1\", \"symbols\": []},\n    {\"name\": \"Paragraph$ebnf$1$subexpression$1\", \"symbols\": [\"ParagraphItem\", \"__\"]},\n    {\"name\": \"Paragraph$ebnf$1\", \"symbols\": [\"Paragraph$ebnf$1\", \"Paragraph$ebnf$1$subexpression$1\"], \"postprocess\": function arrpush(d) {return d[0].concat([d[1]]);}},\n    {\"name\": \"Paragraph\", \"symbols\": [\"Paragraph$ebnf$1\", \"ParagraphItem\"], \"postprocess\": \n        function(data, location, reject) {\n          var children = [];\n          data[0].map(function (child) {\n            children.push(child[0]);\n          });\n          children.push(data[1]);\n          var lastWasString = false;\n        \n          // If there are multiple strings split across\n          // children merge them to avoid issues with\n          // Equation and other components that\n          // consume their children programatically.\n          children = children.reduce((acc, c) => {\n            if (typeof c === 'string' && lastWasString) {\n              acc[acc.length - 1] += c;\n              lastWasString = true;\n            } else if (typeof c === 'string') {\n              acc.push(c);\n              lastWasString = true;\n            } else {\n              acc.push(c);\n              lastWasString = false;\n            }\n            return acc;\n          }, [])\n          if (children.length === 1 && typeof children[0] !== 'string') {\n            return children[0];\n          } else if (children.filter(function (c) { return typeof c === 'string' }).length === 0) {\n            return [\"_idyllContainer\", [], children];\n          }\n        \n          return [\"p\", [], children];\n        }\n        },\n    {\"name\": \"ParagraphItem$subexpression$1\", \"symbols\": [\"Text\"]},\n    {\"name\": \"ParagraphItem$subexpression$1\", \"symbols\": [\"ClosedComponent\"]},\n    {\"name\": \"ParagraphItem$subexpression$1\", \"symbols\": [\"OpenComponent\"]},\n    {\"name\": \"ParagraphItem$subexpression$1\", \"symbols\": [\"TextInline\"]},\n    {\"name\": \"ParagraphItem\", \"symbols\": [\"ParagraphItem$subexpression$1\"], \"postprocess\": \n        function(data, location, reject) {\n          return data[0][0];\n        }\n        },\n    {\"name\": \"Text$string$1\", \"symbols\": [{\"literal\":\"W\"}, {\"literal\":\"O\"}, {\"literal\":\"R\"}, {\"literal\":\"D\"}, {\"literal\":\"S\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"Text\", \"symbols\": [\"Text$string$1\", \"__\", \"TokenValue\"], \"postprocess\": \n        function(data, location, reject) {\n          return data[2];\n        }\n        },\n    {\"name\": \"TextInline$subexpression$1\", \"symbols\": [\"CodeInline\"]},\n    {\"name\": \"TextInline$subexpression$1\", \"symbols\": [\"BoldInline\"]},\n    {\"name\": \"TextInline$subexpression$1\", \"symbols\": [\"EmInline\"]},\n    {\"name\": \"TextInline$subexpression$1\", \"symbols\": [\"LinkInline\"]},\n    {\"name\": \"TextInline$subexpression$1\", \"symbols\": [\"ImageInline\"]},\n    {\"name\": \"TextInline\", \"symbols\": [\"TextInline$subexpression$1\"], \"postprocess\": \n        function(data, location, reject) {\n          return data[0][0];\n        }\n        },\n    {\"name\": \"BoldInline$string$1\", \"symbols\": [{\"literal\":\"S\"}, {\"literal\":\"T\"}, {\"literal\":\"R\"}, {\"literal\":\"O\"}, {\"literal\":\"N\"}, {\"literal\":\"G\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"BoldInline$ebnf$1$subexpression$1\", \"symbols\": [\"__\", \"ParagraphItem\"]},\n    {\"name\": \"BoldInline$ebnf$1\", \"symbols\": [\"BoldInline$ebnf$1$subexpression$1\"]},\n    {\"name\": \"BoldInline$ebnf$1$subexpression$2\", \"symbols\": [\"__\", \"ParagraphItem\"]},\n    {\"name\": \"BoldInline$ebnf$1\", \"symbols\": [\"BoldInline$ebnf$1\", \"BoldInline$ebnf$1$subexpression$2\"], \"postprocess\": function arrpush(d) {return d[0].concat([d[1]]);}},\n    {\"name\": \"BoldInline$string$2\", \"symbols\": [{\"literal\":\"S\"}, {\"literal\":\"T\"}, {\"literal\":\"R\"}, {\"literal\":\"O\"}, {\"literal\":\"N\"}, {\"literal\":\"G\"}, {\"literal\":\"_\"}, {\"literal\":\"E\"}, {\"literal\":\"N\"}, {\"literal\":\"D\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"BoldInline\", \"symbols\": [\"BoldInline$string$1\", \"BoldInline$ebnf$1\", \"__\", \"BoldInline$string$2\"], \"postprocess\": \n        function(data, location, reject) {\n          var children = [];\n          data[1].map(function (child) {\n            children.push(child[1]);\n          });\n        \n          return [\"strong\", [], children];\n        }\n        },\n    {\"name\": \"EmInline$string$1\", \"symbols\": [{\"literal\":\"E\"}, {\"literal\":\"M\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"EmInline$ebnf$1$subexpression$1\", \"symbols\": [\"__\", \"ParagraphItem\"]},\n    {\"name\": \"EmInline$ebnf$1\", \"symbols\": [\"EmInline$ebnf$1$subexpression$1\"]},\n    {\"name\": \"EmInline$ebnf$1$subexpression$2\", \"symbols\": [\"__\", \"ParagraphItem\"]},\n    {\"name\": \"EmInline$ebnf$1\", \"symbols\": [\"EmInline$ebnf$1\", \"EmInline$ebnf$1$subexpression$2\"], \"postprocess\": function arrpush(d) {return d[0].concat([d[1]]);}},\n    {\"name\": \"EmInline$string$2\", \"symbols\": [{\"literal\":\"E\"}, {\"literal\":\"M\"}, {\"literal\":\"_\"}, {\"literal\":\"E\"}, {\"literal\":\"N\"}, {\"literal\":\"D\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"EmInline\", \"symbols\": [\"EmInline$string$1\", \"EmInline$ebnf$1\", \"__\", \"EmInline$string$2\"], \"postprocess\": \n        function(data, location, reject) {\n          var children = [];\n          data[1].map(function (child) {\n            children.push(child[1]);\n          });\n        \n          return [\"em\", [], children];\n        }\n        },\n    {\"name\": \"CodeInline$string$1\", \"symbols\": [{\"literal\":\"I\"}, {\"literal\":\"N\"}, {\"literal\":\"L\"}, {\"literal\":\"I\"}, {\"literal\":\"N\"}, {\"literal\":\"E\"}, {\"literal\":\"_\"}, {\"literal\":\"C\"}, {\"literal\":\"O\"}, {\"literal\":\"D\"}, {\"literal\":\"E\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"CodeInline\", \"symbols\": [\"CodeInline$string$1\", \"__\", \"TokenValue\"], \"postprocess\": \n        function(data, location, reject) {\n          return ['code', [], [data[2]]];\n        }\n        },\n    {\"name\": \"ImageInline$string$1\", \"symbols\": [{\"literal\":\"I\"}, {\"literal\":\"M\"}, {\"literal\":\"A\"}, {\"literal\":\"G\"}, {\"literal\":\"E\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"ImageInline\", \"symbols\": [\"ImageInline$string$1\", \"__\", \"TokenValue\", \"__\", \"TokenValue\"], \"postprocess\": \n        function(data, location, reject) {\n          return ['img', [[\"src\", [\"value\", data[4]]], [\"alt\", [\"value\", data[2]]]], []];\n        }\n        },\n    {\"name\": \"LinkInline$string$1\", \"symbols\": [{\"literal\":\"L\"}, {\"literal\":\"I\"}, {\"literal\":\"N\"}, {\"literal\":\"K\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"LinkInline\", \"symbols\": [\"LinkInline$string$1\", \"__\", \"TokenValue\", \"__\", \"TokenValue\"], \"postprocess\": \n        function(data, location, reject) {\n          return ['a', [[\"href\", [\"value\", data[4]]]], [data[2]]];\n        }\n        },\n    {\"name\": \"OpenComponent\", \"symbols\": [\"OpenComponentStart\", \"__\", \"Blocks\", \"OpenComponentEnd\"], \"postprocess\": \n        function(data, location, reject) {\n          return [data[0][0], data[0][1], data[2] || []];\n        }\n        },\n    {\"name\": \"OpenComponentStart$string$1\", \"symbols\": [{\"literal\":\"O\"}, {\"literal\":\"P\"}, {\"literal\":\"E\"}, {\"literal\":\"N\"}, {\"literal\":\"_\"}, {\"literal\":\"B\"}, {\"literal\":\"R\"}, {\"literal\":\"A\"}, {\"literal\":\"C\"}, {\"literal\":\"K\"}, {\"literal\":\"E\"}, {\"literal\":\"T\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"OpenComponentStart$string$2\", \"symbols\": [{\"literal\":\"C\"}, {\"literal\":\"L\"}, {\"literal\":\"O\"}, {\"literal\":\"S\"}, {\"literal\":\"E\"}, {\"literal\":\"_\"}, {\"literal\":\"B\"}, {\"literal\":\"R\"}, {\"literal\":\"A\"}, {\"literal\":\"C\"}, {\"literal\":\"K\"}, {\"literal\":\"E\"}, {\"literal\":\"T\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"OpenComponentStart\", \"symbols\": [\"OpenComponentStart$string$1\", \"__\", \"ComponentName\", \"__\", \"ComponentProperties\", \"OpenComponentStart$string$2\"], \"postprocess\": \n        function(data, location, reject) {\n          return [data[2], data[4]];\n        }\n        },\n    {\"name\": \"OpenComponentEnd$string$1\", \"symbols\": [{\"literal\":\"O\"}, {\"literal\":\"P\"}, {\"literal\":\"E\"}, {\"literal\":\"N\"}, {\"literal\":\"_\"}, {\"literal\":\"B\"}, {\"literal\":\"R\"}, {\"literal\":\"A\"}, {\"literal\":\"C\"}, {\"literal\":\"K\"}, {\"literal\":\"E\"}, {\"literal\":\"T\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"OpenComponentEnd$string$2\", \"symbols\": [{\"literal\":\"F\"}, {\"literal\":\"O\"}, {\"literal\":\"R\"}, {\"literal\":\"W\"}, {\"literal\":\"A\"}, {\"literal\":\"R\"}, {\"literal\":\"D\"}, {\"literal\":\"_\"}, {\"literal\":\"S\"}, {\"literal\":\"L\"}, {\"literal\":\"A\"}, {\"literal\":\"S\"}, {\"literal\":\"H\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"OpenComponentEnd$string$3\", \"symbols\": [{\"literal\":\"C\"}, {\"literal\":\"L\"}, {\"literal\":\"O\"}, {\"literal\":\"S\"}, {\"literal\":\"E\"}, {\"literal\":\"_\"}, {\"literal\":\"B\"}, {\"literal\":\"R\"}, {\"literal\":\"A\"}, {\"literal\":\"C\"}, {\"literal\":\"K\"}, {\"literal\":\"E\"}, {\"literal\":\"T\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"OpenComponentEnd\", \"symbols\": [\"OpenComponentEnd$string$1\", \"__\", \"OpenComponentEnd$string$2\", \"__\", \"ComponentName\", \"__\", \"OpenComponentEnd$string$3\"], \"postprocess\": \n        function(data, location, reject) {\n          return data;\n        }\n        },\n    {\"name\": \"ClosedComponent$string$1\", \"symbols\": [{\"literal\":\"O\"}, {\"literal\":\"P\"}, {\"literal\":\"E\"}, {\"literal\":\"N\"}, {\"literal\":\"_\"}, {\"literal\":\"B\"}, {\"literal\":\"R\"}, {\"literal\":\"A\"}, {\"literal\":\"C\"}, {\"literal\":\"K\"}, {\"literal\":\"E\"}, {\"literal\":\"T\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"ClosedComponent$string$2\", \"symbols\": [{\"literal\":\"F\"}, {\"literal\":\"O\"}, {\"literal\":\"R\"}, {\"literal\":\"W\"}, {\"literal\":\"A\"}, {\"literal\":\"R\"}, {\"literal\":\"D\"}, {\"literal\":\"_\"}, {\"literal\":\"S\"}, {\"literal\":\"L\"}, {\"literal\":\"A\"}, {\"literal\":\"S\"}, {\"literal\":\"H\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"ClosedComponent$string$3\", \"symbols\": [{\"literal\":\"C\"}, {\"literal\":\"L\"}, {\"literal\":\"O\"}, {\"literal\":\"S\"}, {\"literal\":\"E\"}, {\"literal\":\"_\"}, {\"literal\":\"B\"}, {\"literal\":\"R\"}, {\"literal\":\"A\"}, {\"literal\":\"C\"}, {\"literal\":\"K\"}, {\"literal\":\"E\"}, {\"literal\":\"T\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"ClosedComponent\", \"symbols\": [\"ClosedComponent$string$1\", \"__\", \"ComponentName\", \"__\", \"ComponentProperties\", \"ClosedComponent$string$2\", \"__\", \"ClosedComponent$string$3\"], \"postprocess\": \n        function(data, location, reject) {\n          return [data[2], data[4], []];\n        }\n        },\n    {\"name\": \"ComponentName$string$1\", \"symbols\": [{\"literal\":\"C\"}, {\"literal\":\"O\"}, {\"literal\":\"M\"}, {\"literal\":\"P\"}, {\"literal\":\"O\"}, {\"literal\":\"N\"}, {\"literal\":\"E\"}, {\"literal\":\"N\"}, {\"literal\":\"T\"}, {\"literal\":\"_\"}, {\"literal\":\"N\"}, {\"literal\":\"A\"}, {\"literal\":\"M\"}, {\"literal\":\"E\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"ComponentName\", \"symbols\": [\"ComponentName$string$1\", \"__\", \"TokenValue\"], \"postprocess\": \n        function(data, location, reject) {\n          return data[2];\n        }\n        },\n    {\"name\": \"ComponentProperties$ebnf$1\", \"symbols\": []},\n    {\"name\": \"ComponentProperties$ebnf$1$subexpression$1\", \"symbols\": [\"ComponentProperty\", \"__\"]},\n    {\"name\": \"ComponentProperties$ebnf$1\", \"symbols\": [\"ComponentProperties$ebnf$1\", \"ComponentProperties$ebnf$1$subexpression$1\"], \"postprocess\": function arrpush(d) {return d[0].concat([d[1]]);}},\n    {\"name\": \"ComponentProperties\", \"symbols\": [\"ComponentProperties$ebnf$1\"], \"postprocess\": \n        function(data, location, reject) {\n          return data[0].map(function(d) { return d[0]; });\n        }\n        },\n    {\"name\": \"ComponentProperty$string$1\", \"symbols\": [{\"literal\":\"C\"}, {\"literal\":\"O\"}, {\"literal\":\"M\"}, {\"literal\":\"P\"}, {\"literal\":\"O\"}, {\"literal\":\"N\"}, {\"literal\":\"E\"}, {\"literal\":\"N\"}, {\"literal\":\"T\"}, {\"literal\":\"_\"}, {\"literal\":\"W\"}, {\"literal\":\"O\"}, {\"literal\":\"R\"}, {\"literal\":\"D\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"ComponentProperty$string$2\", \"symbols\": [{\"literal\":\"P\"}, {\"literal\":\"A\"}, {\"literal\":\"R\"}, {\"literal\":\"A\"}, {\"literal\":\"M\"}, {\"literal\":\"_\"}, {\"literal\":\"S\"}, {\"literal\":\"E\"}, {\"literal\":\"P\"}, {\"literal\":\"A\"}, {\"literal\":\"R\"}, {\"literal\":\"A\"}, {\"literal\":\"T\"}, {\"literal\":\"O\"}, {\"literal\":\"R\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"ComponentProperty\", \"symbols\": [\"ComponentProperty$string$1\", \"__\", \"TokenValue\", \"__\", \"ComponentProperty$string$2\", \"__\", \"ComponentPropertyValue\"], \"postprocess\": \n        function(data, location, reject) {\n          var key = data[2];\n          var val = data[6];\n          return [key, val];\n        }\n        },\n    {\"name\": \"ComponentPropertyValue$subexpression$1$string$1\", \"symbols\": [{\"literal\":\"N\"}, {\"literal\":\"U\"}, {\"literal\":\"M\"}, {\"literal\":\"B\"}, {\"literal\":\"E\"}, {\"literal\":\"R\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"ComponentPropertyValue$subexpression$1\", \"symbols\": [\"ComponentPropertyValue$subexpression$1$string$1\"]},\n    {\"name\": \"ComponentPropertyValue$subexpression$1$string$2\", \"symbols\": [{\"literal\":\"E\"}, {\"literal\":\"X\"}, {\"literal\":\"P\"}, {\"literal\":\"R\"}, {\"literal\":\"E\"}, {\"literal\":\"S\"}, {\"literal\":\"S\"}, {\"literal\":\"I\"}, {\"literal\":\"O\"}, {\"literal\":\"N\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"ComponentPropertyValue$subexpression$1\", \"symbols\": [\"ComponentPropertyValue$subexpression$1$string$2\"]},\n    {\"name\": \"ComponentPropertyValue$subexpression$1$string$3\", \"symbols\": [{\"literal\":\"S\"}, {\"literal\":\"T\"}, {\"literal\":\"R\"}, {\"literal\":\"I\"}, {\"literal\":\"N\"}, {\"literal\":\"G\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"ComponentPropertyValue$subexpression$1\", \"symbols\": [\"ComponentPropertyValue$subexpression$1$string$3\"]},\n    {\"name\": \"ComponentPropertyValue$subexpression$1$string$4\", \"symbols\": [{\"literal\":\"C\"}, {\"literal\":\"O\"}, {\"literal\":\"M\"}, {\"literal\":\"P\"}, {\"literal\":\"O\"}, {\"literal\":\"N\"}, {\"literal\":\"E\"}, {\"literal\":\"N\"}, {\"literal\":\"T\"}, {\"literal\":\"_\"}, {\"literal\":\"W\"}, {\"literal\":\"O\"}, {\"literal\":\"R\"}, {\"literal\":\"D\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"ComponentPropertyValue$subexpression$1\", \"symbols\": [\"ComponentPropertyValue$subexpression$1$string$4\"]},\n    {\"name\": \"ComponentPropertyValue$subexpression$1$string$5\", \"symbols\": [{\"literal\":\"B\"}, {\"literal\":\"O\"}, {\"literal\":\"O\"}, {\"literal\":\"L\"}, {\"literal\":\"E\"}, {\"literal\":\"A\"}, {\"literal\":\"N\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"ComponentPropertyValue$subexpression$1\", \"symbols\": [\"ComponentPropertyValue$subexpression$1$string$5\"]},\n    {\"name\": \"ComponentPropertyValue\", \"symbols\": [\"ComponentPropertyValue$subexpression$1\", \"__\", \"TokenValue\"], \"postprocess\": \n        function(data, location, reject) {\n          var t = data[0][0];\n          var val = data[2];\n          if (t === 'NUMBER') {\n            val = +val;\n          } else if (t === 'EXPRESSION' || t === 'STRING') {\n            val = val.substring(1, val.length-1);\n          } else if (t === 'BOOLEAN') {\n            val = (val === 'true');\n          }\n        \n          var typeString = '';\n          if (t === 'EXPRESSION') {\n            typeString = 'expression';\n          } else if (t === 'NUMBER' || t === 'STRING' || t === 'BOOLEAN') {\n            typeString = 'value';\n          } else if (t === 'COMPONENT_WORD') {\n            typeString = 'variable';\n          }\n          return [typeString, val];\n        }\n        },\n    {\"name\": \"TokenValue$string$1\", \"symbols\": [{\"literal\":\"T\"}, {\"literal\":\"O\"}, {\"literal\":\"K\"}, {\"literal\":\"E\"}, {\"literal\":\"N\"}, {\"literal\":\"_\"}, {\"literal\":\"V\"}, {\"literal\":\"A\"}, {\"literal\":\"L\"}, {\"literal\":\"U\"}, {\"literal\":\"E\"}, {\"literal\":\"_\"}, {\"literal\":\"S\"}, {\"literal\":\"T\"}, {\"literal\":\"A\"}, {\"literal\":\"R\"}, {\"literal\":\"T\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"TokenValue$ebnf$1\", \"symbols\": []},\n    {\"name\": \"TokenValue$ebnf$1\", \"symbols\": [\"TokenValue$ebnf$1\", /[^\\\"]/], \"postprocess\": function arrpush(d) {return d[0].concat([d[1]]);}},\n    {\"name\": \"TokenValue$string$2\", \"symbols\": [{\"literal\":\"T\"}, {\"literal\":\"O\"}, {\"literal\":\"K\"}, {\"literal\":\"E\"}, {\"literal\":\"N\"}, {\"literal\":\"_\"}, {\"literal\":\"V\"}, {\"literal\":\"A\"}, {\"literal\":\"L\"}, {\"literal\":\"U\"}, {\"literal\":\"E\"}, {\"literal\":\"_\"}, {\"literal\":\"E\"}, {\"literal\":\"N\"}, {\"literal\":\"D\"}], \"postprocess\": function joiner(d) {return d.join('');}},\n    {\"name\": \"TokenValue\", \"symbols\": [\"TokenValue$string$1\", \"__\", {\"literal\":\"\\\"\"}, \"TokenValue$ebnf$1\", {\"literal\":\"\\\"\"}, \"__\", \"TokenValue$string$2\"], \"postprocess\": \n        function(data, location, reject) {\n          return data[3].join('').replace(/&quot;/g, '\"');\n        }\n        }\n]\n  , ParserStart: \"Sourcefile\"\n}\nif (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') {\n   module.exports = grammar;\n} else {\n   window.grammar = grammar;\n}\n})();\n","import grammar from './grammar';\nconst nearley = require('nearley');\n\nexport default function(input, tokenChunks, positions) {\n  const p = new nearley.Parser(grammar.ParserRules, grammar.ParserStart);\n\n  const processToken = token => {\n    p.feed(token);\n    if (token !== 'EOF') {\n      p.feed(' ');\n    }\n  };\n\n  const processTokenChunk = tokenChunk => {\n    tokenChunk.forEach(token => {\n      if (typeof token === 'string') {\n        processToken(token);\n      } else {\n        processTokenChunk(token);\n      }\n    });\n  };\n\n  tokenChunks.forEach((tokenChunk, index) => {\n    try {\n      processTokenChunk(tokenChunk);\n    } catch (err) {\n      const position = positions[index];\n      const message =\n        'Error parsing input at line ' +\n        position[0] +\n        ', column ' +\n        position[1] +\n        '\\n\\n' +\n        input.split('\\n')[position[0] - 1] +\n        '\\n' +\n        Array(Math.max(0, position[1] - 2)).join(' ') +\n        '^^^';\n\n      const e = new Error(message);\n      e.row = position[0];\n      e.column = position[1];\n      throw e;\n    }\n  });\n  var results = p.results;\n\n  if (results.length) {\n    if (results.length > 1) {\n      console.warn('Warning: this Idyll markup resulted in an ambiguous parse');\n    }\n\n    return results[0];\n  }\n\n  throw new Error('No parse results');\n}\n","export default function cleanNewlines(input) {\n  return input.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n}\n","export default function pipeline(...operations) {\n  operations = operations.flat();\n  return async function(input, ...args) {\n    let result = input;\n    for (const op of operations) {\n      result = await op(result, ...args);\n    }\n    return result;\n  };\n}\n","import {\n  VAR,\n  DERIVED,\n  DATA,\n  isVariableNode,\n  prependChildren,\n  queryNodes,\n  removeNodes\n} from 'idyll-ast';\n\nconst rank = {\n  [VAR]: 0,\n  [DERIVED]: 1,\n  [DATA]: 2\n};\n\nfunction hoistVariables(ast) {\n  const variableNodes = queryNodes(ast, isVariableNode);\n  variableNodes.sort((a, b) => rank[a.type] - rank[b.type]);\n\n  removeNodes(ast, isVariableNode);\n  prependChildren(ast, variableNodes);\n\n  return ast;\n}\n\nexport default hoistVariables;\n","import { getChildren, getNodeName, hasChildren } from 'idyll-ast';\n\nconst IDYLL_CONTAINER = '_idyllContainer';\n\nfunction flattenChildren(node) {\n  if (hasChildren(node)) {\n    const flat = [];\n    for (const child of getChildren(node)) {\n      if (getNodeName(child) === IDYLL_CONTAINER) {\n        flat.push.apply(flat, child.children);\n      } else {\n        flat.push(child);\n      }\n    }\n    node.children = flat;\n  }\n\n  return node;\n}\n\nexport default flattenChildren;\n","import {\n  DERIVED,\n  VAR,\n  DATA,\n  VALUE,\n  VARIABLE,\n  EXPRESSION,\n  createComponentNode,\n  getChildren,\n  getNodeName,\n  isTextNode,\n  getProperty,\n  hasProperty,\n  setValueProperty,\n  setExpressionProperty,\n  removeProperty\n} from 'idyll-ast';\n\nconst TEXT_CONTAINER = 'TextContainer';\nconst FULLWIDTH = 'fullwidth';\nconst SCROLLER = 'scroller';\nconst CLASS_NAME = 'className';\n\nfunction makeFullWidth(ast) {\n  let textNodes = [];\n  const reduced = [];\n\n  for (const child of getChildren(ast)) {\n    try {\n      const ist = isTextNode(child);\n    } catch (err) {\n      console.error(err);\n      console.error('AST', JSON.stringify(ast, 0, 2));\n    }\n    if (isTextNode(child)) {\n      textNodes.push(child);\n      continue;\n    }\n\n    const childName = getNodeName(child).toLowerCase();\n\n    if (\n      [DERIVED, VAR, DATA, FULLWIDTH, SCROLLER].includes(childName) ||\n      hasProperty(child, 'fullWidth')\n    ) {\n      if (childName === FULLWIDTH) {\n        child.name = 'div';\n        const className = getProperty(child, CLASS_NAME);\n        if (className) {\n          switch (className.type) {\n            case VALUE:\n              setValueProperty(\n                child,\n                CLASS_NAME,\n                'fullWidth ' + className.value\n              );\n              break;\n            case EXPRESSION:\n            case VARIABLE:\n              setExpressionProperty(\n                child,\n                CLASS_NAME,\n                `\"fullWidth \" + (${className.value})`\n              );\n              break;\n            default:\n              setValueProperty(child, CLASS_NAME, 'fullWidth');\n          }\n        } else {\n          setValueProperty(child, CLASS_NAME, 'fullWidth');\n        }\n      } else {\n        removeProperty(child, 'fullWidth');\n      }\n\n      if (textNodes.length) {\n        reduced.push(createComponentNode(TEXT_CONTAINER, null, textNodes));\n        textNodes = [];\n      }\n      reduced.push(child);\n    } else {\n      textNodes.push(child);\n    }\n  }\n\n  if (textNodes.length) {\n    reduced.push(createComponentNode(TEXT_CONTAINER, null, textNodes));\n  }\n\n  ast.children = reduced;\n  return ast;\n}\n\nexport default makeFullWidth;\n","import {\n  createComponentNode,\n  getNodeName,\n  isTextNode,\n  mapChildren,\n  queryNodes\n} from 'idyll-ast';\n\nconst TEXT_CONTAINER = 'TextContainer';\n\nfunction wrapText(ast) {\n  const query = node => getNodeName(node) === TEXT_CONTAINER;\n\n  for (const node of queryNodes(ast, query)) {\n    mapChildren(node, child =>\n      isTextNode(child) ? createComponentNode('p', null, child) : child\n    );\n  }\n\n  return ast;\n}\n\nexport default wrapText;\n","import { getChildren, getNodeName, isTextNode, mapChildren } from 'idyll-ast';\n\nimport flattenChildren from './flatten-children';\n\nconst RAW_NODES = ['pre', 'code', 'codehighlight', 'equation'];\n\nfunction cleanResults(ast) {\n  if (isTextNode(ast)) {\n    return ast;\n  }\n\n  return mapChildren(ast, node => {\n    if (isTextNode(node)) {\n      return node;\n    }\n\n    flattenChildren(node);\n    const name = getNodeName(node).toLowerCase();\n    const children = getChildren(node);\n\n    // if not a section, step, or textcontainer component &&\n    // node has one child &&\n    // node child is not a textnode &&\n    // node child is a p component &&\n    // node child has children, THEN\n    //  if node is a raw node, return the child nodes' children as node's value\n    //  else recursively clean using grandchild rather than child\n    // ELSE\n    //  if node is a raw node, return it as is\n    // ELSE recursively clean children\n    if (\n      !['section', 'step', 'textcontainer'].includes(name) &&\n      children.length === 1 &&\n      getNodeName(children[0]) === 'p' &&\n      getChildren(children[0]).length\n    ) {\n      if (!RAW_NODES.includes(name)) {\n        cleanResults(children[0]);\n      }\n      node.children = children[0].children;\n    } else {\n      // don't apply cleaning to codeblocks\n      if (!RAW_NODES.includes(name)) {\n        cleanResults(node);\n      }\n    }\n\n    return node;\n  });\n}\n\nexport default cleanResults;\n","import smartquotes from 'smartquotes';\nimport { getChildren, getNodeName, isTextNode } from 'idyll-ast';\n\nconst RAW_NODES = ['pre', 'code', 'codehighlight', 'equation'];\n\nfunction smartQuotes(ast, context) {\n  if (context.smartquotes) {\n    smartQuoteHelper(ast);\n  }\n  return ast;\n}\n\nfunction smartQuoteHelper(node) {\n  if (isTextNode(node)) {\n    node.value = smartquotes(node.value);\n  } else {\n    const name = getNodeName(node).toLowerCase();\n    if (RAW_NODES.includes(name)) {\n      return;\n    }\n    for (const child of getChildren(node)) {\n      smartQuoteHelper(child);\n    }\n  }\n}\n\nexport default smartQuotes;\n","import {\n  VALUE,\n  createComponentNode,\n  createTextNode,\n  isTextNode,\n  mapChildren\n} from 'idyll-ast';\n\nconst urlPattern = /(http|https|ftp|ftps)\\:\\/\\/([a-zA-Z0-9\\-\\.]+\\.)+[a-zA-Z]{2,3}(\\/\\S*)?/g;\n\n/**\n * Plugin to find find valid urls in text nodes and make them hyperlinks.\n * @param {*} ast AST passes from the parser representing the document.\n * @return A new modified AST with all hyperlinks linkified.\n */\nfunction autoLinkify(node) {\n  return isTextNode(node) ? linkifyNode(node) : mapChildren(node, autoLinkify);\n}\n\nfunction linkifyNode(node) {\n  let textIndex = 0;\n  const text = node.value;\n  const nodes = [];\n\n  for (const match of text.matchAll(urlPattern)) {\n    const [href] = match;\n    const { index } = match;\n\n    // extract prior text to new text node\n    if (index > textIndex) {\n      nodes.push(createTextNode(text.slice(textIndex, index)));\n    }\n\n    // generate hyperlink\n    nodes.push(\n      createComponentNode('a', { href: { type: VALUE, value: href } }, [\n        createTextNode(href)\n      ])\n    );\n\n    // update index into source text\n    textIndex = index + href.length;\n  }\n\n  if (!nodes.length) {\n    return node;\n  }\n\n  // extract any trailing text to new text node\n  if (textIndex < text.length) {\n    nodes.push(createTextNode(text.slice(textIndex)));\n  }\n\n  return createComponentNode('span', null, nodes);\n}\n\nexport default autoLinkify;\n","import lexer from './lexer';\nimport parse from './parser';\n\nimport { convertV1ToV2 } from 'idyll-ast';\n\nimport parseFrontMatter from 'gray-matter';\nimport cleanNewlines from './util/clean-newlines';\nimport pipeline from './util/pipeline';\n\n// AST transformer imports\nimport hoistVariables from './plugins/hoist-variables';\nimport flattenChildren from './plugins/flatten-children';\nimport makeFullWidth from './plugins/make-full-width';\nimport wrapText from './plugins/wrap-text';\nimport cleanResults from './plugins/clean-results';\nimport smartQuotes from './plugins/smart-quotes';\nimport autoLinkify from './plugins/auto-linkify';\n\nconst defaultPlugins = [\n  hoistVariables,\n  flattenChildren,\n  makeFullWidth,\n  wrapText,\n  cleanResults,\n  smartQuotes,\n  autoLinkify\n];\n\nexport default async function(input, context = {}) {\n  // prepare compiler options\n  context = Object.assign({ spellcheck: false, smartquotes: true }, context);\n\n  // pre-process input text\n  input = cleanNewlines(input).trim();\n\n  // parse YAML front matter\n  const { content, data } = parseFrontMatter(input);\n  context.metadata = data || {};\n\n  // perform lexing\n  const lex = lexer({}, context.alias);\n  let lexResults = '';\n  try {\n    lexResults = lex(content);\n  } catch (err) {\n    console.warn(`\\nError parsing Idyll markup:\\n${err.message}`);\n    throw err;\n  }\n\n  // perform parsing to construct an Idyll AST\n  let ast;\n  try {\n    ast = parse(content, lexResults.tokens, lexResults.positions);\n    ast = convertV1ToV2(ast);\n  } catch (err) {\n    console.warn(`\\nError parsing Idyll markup:\\n${err.message}`);\n    throw err;\n  }\n\n  // construct AST transformation pipeline\n  const transform = pipeline(defaultPlugins, context.plugins || []);\n\n  // apply AST transformations and return result\n  return transform(ast, context);\n}\n"],"names":["Lexer","require","formatToken","text","results","push","replace","shouldBreak","trim","match","length","currentInput","lex","options","alias","Object","assign","row","column","outer","skipLists","inComponent","gotName","lexer","chr","errorString","index","substring","Math","max","min","Error","recurse","str","opts","tokens","findAliases","name","aliasNames","keys","filter","aliasName","toLowerCase","join","updatePosition","lexeme","lines","split","equationAliases","addRule","RegExp","String","raw","tagName","props","innerText","reject","concat","codeAlias","language","hashes","trailingSpace","ret","items","matches","map","item","exec","output","forEach","variableDeclarations","declaration","indexOf","link","startsWith","multiplePeriods","positions","input","token","id","x","grammar","undefined","ParserRules","arrpush","d","joiner","data","location","blocks","children","child","lastWasString","reduce","acc","c","key","val","t","typeString","ParserStart","module","nearley","tokenChunks","p","Parser","processToken","feed","processTokenChunk","tokenChunk","err","position","message","Array","e","console","warn","cleanNewlines","pipeline","operations","flat","result","args","_createForOfIteratorHelper","op","rank","VAR","DERIVED","DATA","hoistVariables","ast","variableNodes","queryNodes","isVariableNode","sort","a","b","type","removeNodes","prependChildren","IDYLL_CONTAINER","flattenChildren","node","hasChildren","getChildren","getNodeName","apply","TEXT_CONTAINER","FULLWIDTH","SCROLLER","CLASS_NAME","makeFullWidth","textNodes","reduced","ist","isTextNode","error","JSON","stringify","childName","includes","hasProperty","className","getProperty","VALUE","setValueProperty","value","EXPRESSION","VARIABLE","setExpressionProperty","removeProperty","createComponentNode","wrapText","query","mapChildren","RAW_NODES","cleanResults","smartQuotes","context","smartquotes","smartQuoteHelper","urlPattern","autoLinkify","linkifyNode","textIndex","nodes","matchAll","href","createTextNode","slice","defaultPlugins","spellcheck","parseFrontMatter","content","metadata","lexResults","parse","convertV1ToV2","transform","plugins"],"mappings":"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"}