1{"version":3,"sources":["../../node_modules/codemirror/mode/gfm/gfm.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","urlRE","defineMode","config","modeConfig","codeDepth","blankLine","state","code","gfmOverlay","startState","codeBlock","ateSpace","copyState","s","token","stream","combineTokens","match","skipToEnd","sol","peek","next","before","pos","eatWhile","difference","eatSpace","gitHubSpice","string","slice","start","test","charAt","markdownConfig","taskLists","strikethrough","emoji","attr","name","overlayMode","getMode","defineMIME"],"mappings":"CAGA,SAAUA,GACR,SAAWC,UAAW,gBAAmBC,SAAU,SACjDF,EAAIG,QAAQ,wBAAyBA,QAAQ,wBAAyBA,QAAQ,iCAC3E,UAAWC,SAAU,YAAcA,OAAOC,IAC7CD,QAAQ,uBAAwB,uBAAwB,4BAA6BJ,OAErFA,GAAIM,cACL,SAASA,GACZ,YAEA,IAAIC,GAAQ,+mCAEZD,GAAWE,WAAW,MAAO,SAASC,EAAQC,GAC5C,GAAIC,GAAY,CAChB,SAASC,GAAUC,GACjBA,EAAMC,KAAO,KACb,OAAO,MAET,GAAIC,IACFC,WAAY,WACV,OACEF,KAAM,MACNG,UAAW,MACXC,SAAU,QAGdC,UAAW,SAASC,GAClB,OACEN,KAAMM,EAAEN,KACRG,UAAWG,EAAEH,UACbC,SAAUE,EAAEF,WAGhBG,MAAO,SAASC,EAAQT,GACtBA,EAAMU,cAAgB,IAGtB,IAAIV,EAAMI,UAAW,CACnB,GAAIK,EAAOE,MAAM,SAAU,CACzBX,EAAMI,UAAY,KAClB,OAAO,MAETK,EAAOG,WACP,OAAO,MAET,GAAIH,EAAOI,MAAO,CAChBb,EAAMC,KAAO,MAEf,GAAIQ,EAAOI,OAASJ,EAAOE,MAAM,SAAU,CACzCF,EAAOG,WACPZ,GAAMI,UAAY,IAClB,OAAO,MAGT,GAAIK,EAAOK,SAAW,IAAK,CACzBL,EAAOM,MACP,IAAIC,GAASP,EAAOQ,GACpBR,GAAOS,SAAS,IAChB,IAAIC,GAAa,EAAIV,EAAOQ,IAAMD,CAClC,KAAKhB,EAAMC,KAAM,CACfH,EAAYqB,CACZnB,GAAMC,KAAO,SACR,CACL,GAAIkB,IAAerB,EAAW,CAC5BE,EAAMC,KAAO,OAGjB,MAAO,UACF,IAAID,EAAMC,KAAM,CACrBQ,EAAOM,MACP,OAAO,MAGT,GAAIN,EAAOW,WAAY,CACrBpB,EAAMK,SAAW,IACjB,OAAO,MAET,GAAII,EAAOI,OAASb,EAAMK,SAAU,CAClCL,EAAMK,SAAW,KACjB,IAAIR,EAAWwB,cAAgB,MAAO,CACpC,GAAGZ,EAAOE,MAAM,gFAAiF,CAI/FX,EAAMU,cAAgB,IACtB,OAAO,WACF,IAAID,EAAOE,MAAM,wDAAyD,CAI/EX,EAAMU,cAAgB,IACtB,OAAO,SAIb,GAAID,EAAOE,MAAMjB,IACbe,EAAOa,OAAOC,MAAMd,EAAOe,MAAQ,EAAGf,EAAOe,QAAU,OACtDf,EAAOe,OAAS,GAAK,KAAKC,KAAKhB,EAAOa,OAAOI,OAAOjB,EAAOe,MAAQ,KAAM,CAK5ExB,EAAMU,cAAgB,IACtB,OAAO,OAETD,EAAOM,MACP,OAAO,OAEThB,UAAWA,EAGb,IAAI4B,IACFC,UAAW,KACXC,cAAe,KACfC,MAAO,KAET,KAAK,GAAIC,KAAQlC,GAAY,CAC3B8B,EAAeI,GAAQlC,EAAWkC,GAEpCJ,EAAeK,KAAO,UACtB,OAAOvC,GAAWwC,YAAYxC,EAAWyC,QAAQtC,EAAQ+B,GAAiBzB,IAEzE,WAEDT,GAAW0C,WAAW,aAAc","file":"gfm.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../markdown/markdown\"), require(\"../../addon/mode/overlay\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../markdown/markdown\", \"../../addon/mode/overlay\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nvar urlRE = /^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\\.beep|\\.lwz|\\.xpc|\\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\\.beeps?|xmpp|xri|ymsgr|z39\\.50[rs]?):(?:\\/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]|\\([^\\s()<>]*\\))+(?:\\([^\\s()<>]*\\)|[^\\s`*!()\\[\\]{};:'\".,<>?«»“”‘’]))/i\n\nCodeMirror.defineMode(\"gfm\", function(config, modeConfig) {\n  var codeDepth = 0;\n  function blankLine(state) {\n    state.code = false;\n    return null;\n  }\n  var gfmOverlay = {\n    startState: function() {\n      return {\n        code: false,\n        codeBlock: false,\n        ateSpace: false\n      };\n    },\n    copyState: function(s) {\n      return {\n        code: s.code,\n        codeBlock: s.codeBlock,\n        ateSpace: s.ateSpace\n      };\n    },\n    token: function(stream, state) {\n      state.combineTokens = null;\n\n      // Hack to prevent formatting override inside code blocks (block and inline)\n      if (state.codeBlock) {\n        if (stream.match(/^```+/)) {\n          state.codeBlock = false;\n          return null;\n        }\n        stream.skipToEnd();\n        return null;\n      }\n      if (stream.sol()) {\n        state.code = false;\n      }\n      if (stream.sol() && stream.match(/^```+/)) {\n        stream.skipToEnd();\n        state.codeBlock = true;\n        return null;\n      }\n      // If this block is changed, it may need to be updated in Markdown mode\n      if (stream.peek() === '`') {\n        stream.next();\n        var before = stream.pos;\n        stream.eatWhile('`');\n        var difference = 1 + stream.pos - before;\n        if (!state.code) {\n          codeDepth = difference;\n          state.code = true;\n        } else {\n          if (difference === codeDepth) { // Must be exact\n            state.code = false;\n          }\n        }\n        return null;\n      } else if (state.code) {\n        stream.next();\n        return null;\n      }\n      // Check if space. If so, links can be formatted later on\n      if (stream.eatSpace()) {\n        state.ateSpace = true;\n        return null;\n      }\n      if (stream.sol() || state.ateSpace) {\n        state.ateSpace = false;\n        if (modeConfig.gitHubSpice !== false) {\n          if(stream.match(/^(?:[a-zA-Z0-9\\-_]+\\/)?(?:[a-zA-Z0-9\\-_]+@)?(?=.{0,6}\\d)(?:[a-f0-9]{7,40}\\b)/)) {\n            // User/Project@SHA\n            // User@SHA\n            // SHA\n            state.combineTokens = true;\n            return \"link\";\n          } else if (stream.match(/^(?:[a-zA-Z0-9\\-_]+\\/)?(?:[a-zA-Z0-9\\-_]+)?#[0-9]+\\b/)) {\n            // User/Project#Num\n            // User#Num\n            // #Num\n            state.combineTokens = true;\n            return \"link\";\n          }\n        }\n      }\n      if (stream.match(urlRE) &&\n          stream.string.slice(stream.start - 2, stream.start) != \"](\" &&\n          (stream.start == 0 || /\\W/.test(stream.string.charAt(stream.start - 1)))) {\n        // URLs\n        // Taken from http://daringfireball.net/2010/07/improved_regex_for_matching_urls\n        // And then (issue #1160) simplified to make it not crash the Chrome Regexp engine\n        // And then limited url schemes to the CommonMark list, so foo:bar isn't matched as a URL\n        state.combineTokens = true;\n        return \"link\";\n      }\n      stream.next();\n      return null;\n    },\n    blankLine: blankLine\n  };\n\n  var markdownConfig = {\n    taskLists: true,\n    strikethrough: true,\n    emoji: true\n  };\n  for (var attr in modeConfig) {\n    markdownConfig[attr] = modeConfig[attr];\n  }\n  markdownConfig.name = \"markdown\";\n  return CodeMirror.overlayMode(CodeMirror.getMode(config, markdownConfig), gfmOverlay);\n\n}, \"markdown\");\n\n  CodeMirror.defineMIME(\"text/x-gfm\", \"gfm\");\n});\n"]}