{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/markdown.js"],"names":["module","exports","hljs","INLINE_HTML","begin","end","subLanguage","relevance","LINK","returnBegin","contains","className","excludeBegin","returnEnd","excludeEnd","BOLD","variants","ITALIC","push","CONTAINABLE","concat","name","aliases"],"mappings":"8EAuJAA,EAAOC,QAhJP,SAAkBC,GAChB,IAAIC,EAAc,CAChBC,MAAO,IACPC,IAAK,IACLC,YAAa,MACbC,UAAW,GAuDTC,EAAO,CACTJ,MAAO,+BACPK,aAAa,EACbC,SAAU,CAAC,CACTC,UAAW,SACXP,MAAO,MACPC,IAAK,MACLO,cAAc,EACdC,WAAW,EACXN,UAAW,GACV,CACDI,UAAW,OACXP,MAAO,SACPC,IAAK,MACLO,cAAc,EACdE,YAAY,GACX,CACDH,UAAW,SACXP,MAAO,SACPC,IAAK,MACLO,cAAc,EACdE,YAAY,IAEdP,UAAW,IAETQ,EAAO,CACTJ,UAAW,SACXD,SAAU,GACVM,SAAU,CAAC,CACTZ,MAAO,OACPC,IAAK,QACJ,CACDD,MAAO,QACPC,IAAK,WAGLY,EAAS,CACXN,UAAW,WACXD,SAAU,GACVM,SAAU,CAAC,CACTZ,MAAO,WACPC,IAAK,MACJ,CACDD,MAAO,SACPC,IAAK,IACLE,UAAW,KAGfQ,EAAKL,SAASQ,KAAKD,GACnBA,EAAOP,SAASQ,KAAKH,GACrB,IAAII,EAAc,CAAChB,EAAaK,GA2BhC,OA1BAO,EAAKL,SAAWK,EAAKL,SAASU,OAAOD,GACrCF,EAAOP,SAAWO,EAAOP,SAASU,OAAOD,GAyBlC,CACLE,KAAM,WACNC,QAAS,CAAC,KAAM,SAAU,OAC1BZ,SAAU,CA1BC,CACXC,UAAW,UACXK,SAAU,CAAC,CACTZ,MAAO,UACPC,IAAK,IACLK,SANJS,EAAcA,EAAYC,OAAOL,EAAME,IAOlC,CACDb,MAAO,uBACPM,SAAU,CAAC,CACTN,MAAO,WACN,CACDA,MAAO,IACPC,IAAK,MACLK,SAAUS,OAaKhB,EAtGV,CACTQ,UAAW,SACXP,MAAO,mCACPC,IAAK,OACLS,YAAY,GAkG0BC,EAAME,EAT7B,CACfN,UAAW,QACXP,MAAO,SACPM,SAAUS,EACVd,IAAK,KA5HI,CACTM,UAAW,OACXK,SAAU,CACV,CACEZ,MAAO,6BACN,CACDA,MAAO,6BAET,CACEA,MAAO,MACPC,IAAK,aACJ,CACDD,MAAO,MACPC,IAAK,aACJ,CACDD,MAAO,SACN,CACDA,MAAO,kBAGPM,SAAU,CAAC,CACTN,MAAO,cACPC,IAAK,WAEPE,UAAW,KA5BO,CACpBH,MAAO,cACPC,IAAK,KAmIkFG,EAhGpE,CACnBJ,MAAO,eACPK,aAAa,EACbC,SAAU,CAAC,CACTC,UAAW,SACXP,MAAO,KACPC,IAAK,KACLO,cAAc,EACdE,YAAY,GACX,CACDH,UAAW,OACXP,MAAO,OACPC,IAAK,IACLO,cAAc","file":"react-syntax-highlighter_languages_highlight_markdown-3d92e391a5d670efee97.js","sourcesContent":["/*\nLanguage: Markdown\nRequires: xml.js\nAuthor: John Crepezzi <john.crepezzi@gmail.com>\nWebsite: https://daringfireball.net/projects/markdown/\nCategory: common, markup\n*/\nfunction markdown(hljs) {\n  var INLINE_HTML = {\n    begin: '<',\n    end: '>',\n    subLanguage: 'xml',\n    relevance: 0\n  };\n  var HORIZONTAL_RULE = {\n    begin: '^[-\\\\*]{3,}',\n    end: '$'\n  };\n  var CODE = {\n    className: 'code',\n    variants: [// TODO: fix to allow these to work with sublanguage also\n    {\n      begin: '(`{3,})(.|\\\\n)*?\\\\1`*[ ]*'\n    }, {\n      begin: '(~{3,})(.|\\\\n)*?\\\\1~*[ ]*'\n    }, // needed to allow markdown as a sublanguage to work\n    {\n      begin: '```',\n      end: '```+[ ]*$'\n    }, {\n      begin: '~~~',\n      end: '~~~+[ ]*$'\n    }, {\n      begin: '`.+?`'\n    }, {\n      begin: '(?=^( {4}|\\\\t))',\n      // use contains to gobble up multiple lines to allow the block to be whatever size\n      // but only have a single open/close tag vs one per line\n      contains: [{\n        begin: '^( {4}|\\\\t)',\n        end: '(\\\\n)$'\n      }],\n      relevance: 0\n    }]\n  };\n  var LIST = {\n    className: 'bullet',\n    begin: '^[ \\t]*([*+-]|(\\\\d+\\\\.))(?=\\\\s+)',\n    end: '\\\\s+',\n    excludeEnd: true\n  };\n  var LINK_REFERENCE = {\n    begin: /^\\[[^\\n]+\\]:/,\n    returnBegin: true,\n    contains: [{\n      className: 'symbol',\n      begin: /\\[/,\n      end: /\\]/,\n      excludeBegin: true,\n      excludeEnd: true\n    }, {\n      className: 'link',\n      begin: /:\\s*/,\n      end: /$/,\n      excludeBegin: true\n    }]\n  };\n  var LINK = {\n    begin: '\\\\[.+?\\\\][\\\\(\\\\[].*?[\\\\)\\\\]]',\n    returnBegin: true,\n    contains: [{\n      className: 'string',\n      begin: '\\\\[',\n      end: '\\\\]',\n      excludeBegin: true,\n      returnEnd: true,\n      relevance: 0\n    }, {\n      className: 'link',\n      begin: '\\\\]\\\\(',\n      end: '\\\\)',\n      excludeBegin: true,\n      excludeEnd: true\n    }, {\n      className: 'symbol',\n      begin: '\\\\]\\\\[',\n      end: '\\\\]',\n      excludeBegin: true,\n      excludeEnd: true\n    }],\n    relevance: 10\n  };\n  var BOLD = {\n    className: 'strong',\n    contains: [],\n    variants: [{\n      begin: /_{2}/,\n      end: /_{2}/\n    }, {\n      begin: /\\*{2}/,\n      end: /\\*{2}/\n    }]\n  };\n  var ITALIC = {\n    className: 'emphasis',\n    contains: [],\n    variants: [{\n      begin: /\\*(?!\\*)/,\n      end: /\\*/\n    }, {\n      begin: /_(?!_)/,\n      end: /_/,\n      relevance: 0\n    }]\n  };\n  BOLD.contains.push(ITALIC);\n  ITALIC.contains.push(BOLD);\n  var CONTAINABLE = [INLINE_HTML, LINK];\n  BOLD.contains = BOLD.contains.concat(CONTAINABLE);\n  ITALIC.contains = ITALIC.contains.concat(CONTAINABLE);\n  CONTAINABLE = CONTAINABLE.concat(BOLD, ITALIC);\n  var HEADER = {\n    className: 'section',\n    variants: [{\n      begin: '^#{1,6}',\n      end: '$',\n      contains: CONTAINABLE\n    }, {\n      begin: '(?=^.+?\\\\n[=-]{2,}$)',\n      contains: [{\n        begin: '^[=-]*$'\n      }, {\n        begin: '^',\n        end: \"\\\\n\",\n        contains: CONTAINABLE\n      }]\n    }]\n  };\n  var BLOCKQUOTE = {\n    className: 'quote',\n    begin: '^>\\\\s+',\n    contains: CONTAINABLE,\n    end: '$'\n  };\n  return {\n    name: 'Markdown',\n    aliases: ['md', 'mkdown', 'mkd'],\n    contains: [HEADER, INLINE_HTML, LIST, BOLD, ITALIC, BLOCKQUOTE, CODE, HORIZONTAL_RULE, LINK, LINK_REFERENCE]\n  };\n}\n\nmodule.exports = markdown;"],"sourceRoot":""}