{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/CodemirrorEditor/rightClickMenu.vue?1d94","webpack:///./src/components/Loading.vue","webpack:///./src/components/CodemirrorEditor/header.vue?b04f","webpack:///./src/App.vue?9990","webpack:///./src/view/CodemirrorEditor.vue?b422","webpack:///./src/components/CodemirrorEditor/header.vue?278e","webpack:///./src/assets/scripts/themes/default-theme.js","webpack:///./src/assets/scripts/util.js","webpack:///./src/assets/scripts/converter.js","webpack:///./src/assets/scripts/config.js","webpack:///./src/assets/scripts/themes/default-theme-css.js","webpack:///./src/components/CodemirrorEditor/resetDialog.vue?a90b","webpack:///src/components/CodemirrorEditor/resetDialog.vue","webpack:///./src/components/CodemirrorEditor/resetDialog.vue?9ca8","webpack:///./src/components/CodemirrorEditor/resetDialog.vue","webpack:///src/components/CodemirrorEditor/header.vue","webpack:///./src/components/CodemirrorEditor/header.vue?ada2","webpack:///./src/components/CodemirrorEditor/header.vue","webpack:///./src/components/CodemirrorEditor/aboutDialog.vue?f792","webpack:///src/components/CodemirrorEditor/aboutDialog.vue","webpack:///./src/components/CodemirrorEditor/aboutDialog.vue?d507","webpack:///./src/components/CodemirrorEditor/aboutDialog.vue","webpack:///./src/components/CodemirrorEditor/insertForm.vue?26f6","webpack:///src/components/CodemirrorEditor/insertForm.vue","webpack:///./src/components/CodemirrorEditor/insertForm.vue?240a","webpack:///./src/components/CodemirrorEditor/insertForm.vue","webpack:///./src/components/CodemirrorEditor/rightClickMenu.vue?9dee","webpack:///./src/api/fetch.js","webpack:///./src/api/file.js","webpack:///./src/assets/scripts/uploadImageFile.js","webpack:///src/components/CodemirrorEditor/rightClickMenu.vue","webpack:///./src/components/CodemirrorEditor/rightClickMenu.vue?d3c9","webpack:///./src/components/CodemirrorEditor/rightClickMenu.vue","webpack:///./src/components/CodemirrorEditor/uploadImgDialog.vue?1175","webpack:///src/components/CodemirrorEditor/uploadImgDialog.vue","webpack:///./src/components/CodemirrorEditor/uploadImgDialog.vue?b979","webpack:///./src/components/CodemirrorEditor/uploadImgDialog.vue","webpack:///src/view/CodemirrorEditor.vue","webpack:///./src/view/CodemirrorEditor.vue?e829","webpack:///./src/view/CodemirrorEditor.vue","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/assets/scripts/renderers/wx-renderer.js","webpack:///./src/assets/scripts/default-content.js","webpack:///./src/store/index.js","webpack:///./src/plugins/element/index.js","webpack:///./src/assets/scripts/format.js","webpack:///./src/assets/scripts/closebrackets.js","webpack:///./src/main.js","webpack:///./src/components/CodemirrorEditor/resetDialog.vue?12b7","webpack:///./src/components/CodemirrorEditor/insertForm.vue?d1cc","webpack:///./src/components/Loading.vue?1eda","webpack:///./src/view/CodemirrorEditor.vue?8abc","webpack:///./src/components/CodemirrorEditor/uploadImgDialog.vue?fa7d","webpack:///./src/App.vue?608c","webpack:///./src/components/Loading.vue?f931","webpack:///./src/view/CodemirrorEditor.vue?67bb","webpack:///./src/components/Loading.vue?4de3"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","component","_vm","this","_h","$createElement","_c","_self","attrs","staticRenderFns","staticClass","class","nightMode","ref","on","onEditorRefresh","cssChanged","downloadEditorContent","$event","showCssEditor","aboutDialogVisible","dialogFormVisible","dialogUploadImgVisible","isCoping","backLight","endCopy","nativeOn","preventDefault","openMenu","directives","rawName","expression","domProps","target","composing","source","_s","output","_v","_e","uploaded","model","callback","$$v","mouseLeft","mouseTop","onMenuEvent","closeRightClickMenu","rightClickMenuVisible","effect","$emit","showResetConfirm","fontChanged","selectFont","_l","config","font","style","fontFamily","label","sizeChanged","selectSize","size","desc","colorChanged","selectColor","color","statusChanged","citeStatus","btnType","customStyle","copy","themeChanged","confirmReset","cancelReset","BASE","BASE_BLOCK","block","h1","h2","h3","h4","blockquote","blockquote_p","code","image","image_org","ol","ul","footnotes","figure","inline","listitem","codespan","link","wx_link","strong","table","thead","td","footnote","figcaption","setColorWithTemplate","template","custom_theme","JSON","parse","stringify","setColorWithCustomTemplate","setFontSizeWithTemplate","fontSize","setColor","default_theme","setFontSize","customCssWithTemplate","jsonString","theme","assign","css2json","css","open","close","indexOf","substring","json","lbracket","rbracket","toObject","array","ret","forEach","e","index","trim","declarations","split","map","filter","selectors","selector","keys","saveEditorContent","editor","content","getValue","localStorage","setItem","removeItem","formatDoc","doc","prettier","format","parser","plugins","prettierMarkdown","fixCodeWhiteSpace","preDomList","document","getElementsByClassName","pre","whiteSpace","downLoadMD","downLink","createElement","download","display","blob","Blob","href","URL","createObjectURL","body","appendChild","click","removeChild","solveWeChatImage","clipboardDiv","getElementById","images","getElementsByTagName","width","getAttribute","height","removeAttribute","solveHtml","element","html","innerHTML","res","juice","inlineContent","inlinePseudoElements","preserveImportant","builtinFonts","sizeOption","colorOption","codeThemeOption","form","rows","cols","DEFAULT_CSS_CONTENT","slot","staticStyle","onRedirect","handleChange","rowNum","colNum","row","col","tableData","$set","insertTable","left","top","item","onMouseDown","text","service","axios","baseURL","timeout","interceptors","request","use","test","method","upload","headers","error","Promise","reject","response","fileUploadConfig","username","repo","accessToken","getConfiguration","imgHost","getItem","token","Math","floor","random","replace","githubConfg","repoUrl","fileUpload","filename","date","Date","dir","getFullYear","getMonth","toString","padStart","getDate","uuid","uuidv4","dateFilename","getTime","url","fetch","message","githubResourceUrl","cdnResourceUrl","uploadImgFile","file","resolve","checkImageResult","isImageIllegal","imgFile","FileReader","readAsDataURL","onload","base64Content","pop","fileApi","then","imageUrl","download_url","catch","err","console","log","changeImgHost","beforeUpload","formGitHub","onSubmit","props","type","Boolean","default","options","uploadingImg","created","methods","$message","showClose","validateConfig","WxRenderer","opts","ENV_STRETCH_IMAGE","footnoteIndex","styleMapping","CODE_FONT_FAMILY","merge","base","extend","buildTheme","themeTpl","mapping","fonts","base_block","ele","getStyles","tokenName","addition","arr","dict","join","addFootnote","title","buildFootnotes","footnoteArray","x","buildAddition","setOptions","newOpts","hasFootnotes","getRenderer","status","renderer","marked","Renderer","heading","level","paragraph","lang","codeLines","line","codeTheme","list","ordered","start","segments","subText","figureStyles","imgStyles","em","header","tablecell","flags","hr","DEFAULT_CONTENT","Vue","Vuex","state","wxRenderer","cssEditor","currentFont","currentSize","currentColor","mutations","setEditorValue","setValue","setCssEditorValue","setWxRendererOptions","setCiteStatus","setCurrentFont","setCurrentSize","setCurrentColor","setCurrentCodeTheme","setRightClickMenuVisible","initEditorState","initEditorEntity","CodeMirror","fromTextArea","lineNumbers","lineWrapping","styleActiveLine","autoCloseBrackets","extraKeys","initCssEditorEntity","matchBrackets","autofocus","totalLines","lineCount","autoFormatRange","ch","editorRefresh","clearEditorToDefault","Store","actions","Container","Header","Upload","Tooltip","Form","FormItem","Select","Option","ColorPicker","Switch","Button","Main","Col","Row","Dialog","Loading","Message","$loading","extendMode","commentStart","commentEnd","newlineAfterToken","defineExtension","isComment","from","to","cm","curMode","innerMode","getMode","getTokenAt","operation","replaceRange","setCursor","selText","getRange","startIndex","endIndex","lastIndexOf","substr","cmInstance","indentLine","outer","copyState","tabSize","getOption","out","lines","atSol","newline","stream","StringStream","eol","inner","cur","current","pos","string","blankLine","end","setSelection","getCursor","defaults","pairs","closeBefore","triples","explode","Pos","conf","defineOption","val","old","Init","removeKeyMap","keyMap","closeBrackets","ensureBound","addKeyMap","Backspace","handleBackspace","Enter","handleEnter","chars","charAt","handler","handleChar","getConfig","deflt","override","getModeAt","Pass","ranges","listSelections","empty","around","charsAround","head","linesep","lineSeparator","replaceSelection","execCommand","contractSelection","sel","inverted","cmpPos","anchor","identical","opening","curType","range","next","getTokenTypeAt","prev","isWordChar","stringStartsAfter","right","sels","getSelections","replaceSelections","setSelections","triggerElectric","str","ElementUI","productionTip","store","render","h","App","$mount","_m"],"mappings":"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","file":"js/app.37c1e342.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/md/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rightClickMenu.vue?vue&type=style&index=0&id=3d7c3994&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rightClickMenu.vue?vue&type=style&index=0&id=3d7c3994&lang=less&scoped=true&\"","import { render, staticRenderFns } from \"./Loading.vue?vue&type=template&id=31c61828&scoped=true&\"\nimport script from \"./Loading.vue?vue&type=script&lang=js&\"\nexport * from \"./Loading.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Loading.vue?vue&type=style&index=0&id=31c61828&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"31c61828\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header.vue?vue&type=style&index=0&id=69f619fe&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header.vue?vue&type=style&index=0&id=69f619fe&lang=less&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loading)?_c('transition',{attrs:{\"name\":\"fade\"}},[_c('loading')],1):_c('codemirror-editor')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\",class:{'container_night': _vm.nightMode}},[_c('el-container',[_c('el-header',{staticClass:\"editor__header\"},[_c('editor-header',{ref:\"header\",on:{\"refresh\":_vm.onEditorRefresh,\"cssChanged\":_vm.cssChanged,\"downLoad\":_vm.downloadEditorContent,\"showCssEditor\":function($event){_vm.showCssEditor = !_vm.showCssEditor},\"showAboutDialog\":function($event){_vm.aboutDialogVisible = true},\"showDialogForm\":function($event){_vm.dialogFormVisible = true},\"showDialogUploadImg\":function($event){_vm.dialogUploadImgVisible = true},\"startCopy\":function($event){_vm.isCoping = true, _vm.backLight = true},\"endCopy\":_vm.endCopy}})],1),_c('el-main',{staticClass:\"main-body\"},[_c('el-row',{staticClass:\"main-section\"},[_c('el-col',{attrs:{\"span\":12},nativeOn:{\"contextmenu\":function($event){$event.preventDefault();return _vm.openMenu($event)}}},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.source),expression:\"source\"}],attrs:{\"id\":\"editor\",\"type\":\"textarea\",\"placeholder\":\"Your markdown text here.\"},domProps:{\"value\":(_vm.source)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.source=$event.target.value}}})]),_c('el-col',{ref:\"preview\",staticClass:\"preview-wrapper\",class:{'preview-wrapper_night': _vm.nightMode && _vm.isCoping},attrs:{\"span\":12,\"id\":\"preview\"}},[_c('section',{class:{'output_night': _vm.nightMode && !_vm.backLight},attrs:{\"id\":\"output-wrapper\"}},[_c('div',{staticClass:\"preview\"},[_c('section',{attrs:{\"id\":\"output\"},domProps:{\"innerHTML\":_vm._s(_vm.output)}}),(_vm.nightMode && _vm.isCoping)?_c('div',{staticClass:\"loading-mask\"},[_c('div',{staticClass:\"loading__img\"}),_c('span',[_vm._v(\"正在生成\")])]):_vm._e()])])]),_c('transition',{attrs:{\"name\":\"custom-classes-transition\",\"enter-active-class\":\"bounceInRight\"}},[_c('el-col',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showCssEditor),expression:\"showCssEditor\"}],attrs:{\"id\":\"cssBox\",\"span\":12}},[_c('textarea',{attrs:{\"id\":\"cssEditor\",\"type\":\"textarea\",\"placeholder\":\"Your custom css here.\"}})])],1)],1)],1)],1),_c('upload-img-dialog',{on:{\"close\":function($event){_vm.dialogUploadImgVisible = false},\"uploaded\":_vm.uploaded},model:{value:(_vm.dialogUploadImgVisible),callback:function ($$v) {_vm.dialogUploadImgVisible=$$v},expression:\"dialogUploadImgVisible\"}}),_c('about-dialog',{model:{value:(_vm.aboutDialogVisible),callback:function ($$v) {_vm.aboutDialogVisible=$$v},expression:\"aboutDialogVisible\"}}),_c('insert-form-dialog',{model:{value:(_vm.dialogFormVisible),callback:function ($$v) {_vm.dialogFormVisible=$$v},expression:\"dialogFormVisible\"}}),_c('right-click-menu',{attrs:{\"left\":_vm.mouseLeft,\"top\":_vm.mouseTop},on:{\"menuTick\":_vm.onMenuEvent,\"closeMenu\":_vm.closeRightClickMenu},model:{value:(_vm.rightClickMenuVisible),callback:function ($$v) {_vm.rightClickMenuVisible=$$v},expression:\"rightClickMenuVisible\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-container',{staticClass:\"top is-dark\"},[_c('el-tooltip',{attrs:{\"effect\":_vm.effect,\"content\":\"上传图片\",\"placement\":\"bottom-start\"}},[_c('i',{staticClass:\"el-icon-upload\",attrs:{\"size\":\"medium\"},on:{\"click\":function($event){return _vm.$emit('showDialogUploadImg')}}})]),_c('el-tooltip',{staticClass:\"header__item\",attrs:{\"effect\":_vm.effect,\"content\":\"下载编辑框Markdown文档\",\"placement\":\"bottom-start\"}},[_c('i',{staticClass:\"el-icon-download\",attrs:{\"size\":\"medium\"},on:{\"click\":function($event){return _vm.$emit('downLoad')}}})]),_c('el-tooltip',{staticClass:\"header__item\",attrs:{\"effect\":_vm.effect,\"content\":\"重置页面\",\"placement\":\"bottom-start\"}},[_c('i',{staticClass:\"el-icon-refresh\",attrs:{\"size\":\"medium\"},on:{\"click\":function($event){_vm.showResetConfirm = true}}})]),_c('el-tooltip',{staticClass:\"header__item header__item_last\",attrs:{\"effect\":_vm.effect,\"content\":\"插入表格\",\"placement\":\"bottom-start\"}},[_c('i',{staticClass:\"el-icon-s-grid\",attrs:{\"size\":\"medium\"},on:{\"click\":function($event){return _vm.$emit('showDialogForm')}}})]),_c('el-form',{staticClass:\"ctrl\",attrs:{\"size\":\"mini\",\"inline\":true}},[_c('el-form-item',[_c('el-select',{attrs:{\"size\":\"mini\",\"placeholder\":\"选择字体\",\"clearable\":\"\"},on:{\"change\":_vm.fontChanged},model:{value:(_vm.selectFont),callback:function ($$v) {_vm.selectFont=$$v},expression:\"selectFont\"}},_vm._l((_vm.config.builtinFonts),function(font){return _c('el-option',{key:font.value,style:({fontFamily: font.value}),attrs:{\"label\":font.label,\"value\":font.value}},[_c('span',{staticClass:\"select-item-left\"},[_vm._v(_vm._s(font.label))]),_c('span',{staticClass:\"select-item-right\"},[_vm._v(\"Abc\")])])}),1)],1),_c('el-form-item',[_c('el-select',{attrs:{\"size\":\"mini\",\"placeholder\":\"选择段落字号\",\"clearable\":\"\"},on:{\"change\":_vm.sizeChanged},model:{value:(_vm.selectSize),callback:function ($$v) {_vm.selectSize=$$v},expression:\"selectSize\"}},_vm._l((_vm.config.sizeOption),function(size){return _c('el-option',{key:size.value,attrs:{\"label\":size.label,\"value\":size.value}},[_c('span',{staticClass:\"select-item-left\"},[_vm._v(_vm._s(size.label))]),_c('span',{staticClass:\"select-item-right\"},[_vm._v(_vm._s(size.desc))])])}),1)],1),_c('el-form-item',[_c('el-select',{attrs:{\"size\":\"mini\",\"placeholder\":\"选择颜色\",\"clearable\":\"\"},on:{\"change\":_vm.colorChanged},model:{value:(_vm.selectColor),callback:function ($$v) {_vm.selectColor=$$v},expression:\"selectColor\"}},_vm._l((_vm.config.colorOption),function(color){return _c('el-option',{key:color.value,attrs:{\"label\":color.label,\"value\":color.value}},[_c('span',{staticClass:\"select-item-left\"},[_vm._v(_vm._s(color.label))]),_c('span',{staticClass:\"select-item-right\"},[_vm._v(_vm._s(color.desc))])])}),1)],1),_c('el-tooltip',{attrs:{\"content\":\"自定义颜色\",\"effect\":_vm.effect,\"placement\":\"top\"}},[_c('el-color-picker',{attrs:{\"size\":\"mini\",\"show-alpha\":\"\"},on:{\"change\":_vm.colorChanged},model:{value:(_vm.selectColor),callback:function ($$v) {_vm.selectColor=$$v},expression:\"selectColor\"}})],1),_c('el-tooltip',{attrs:{\"content\":\"微信外链自动转为文末引用\",\"effect\":_vm.effect,\"placement\":\"top\"}},[_c('el-switch',{staticClass:\"header__switch\",attrs:{\"active-color\":\"#67c23a\",\"inactive-color\":\"#dcdfe6\"},on:{\"change\":_vm.statusChanged},model:{value:(_vm.citeStatus),callback:function ($$v) {_vm.citeStatus=$$v},expression:\"citeStatus\"}})],1)],1),_c('el-tooltip',{staticClass:\"item\",attrs:{\"effect\":_vm.effect,\"content\":\"自定义CSS样式\",\"placement\":\"left\"}},[_c('el-button',{attrs:{\"type\":_vm.btnType,\"plain\":\"\",\"size\":\"medium\",\"icon\":\"el-icon-setting\"},on:{\"click\":_vm.customStyle}})],1),_c('el-button',{attrs:{\"type\":_vm.btnType,\"plain\":\"\",\"size\":\"medium\",\"placement\":\"bottom-start\"},on:{\"click\":_vm.copy}},[_vm._v(\"复制\")]),_c('el-button',{staticClass:\"about\",attrs:{\"type\":_vm.btnType,\"plain\":\"\",\"size\":\"medium\"},on:{\"click\":function($event){return _vm.$emit('showAboutDialog')}}},[_vm._v(\"关于\")]),_c('el-tooltip',{attrs:{\"content\":\"夜间模式\",\"placement\":\"bottom-start\"}},[(!_vm.nightMode)?_c('div',{staticClass:\"mode__switch\",on:{\"click\":_vm.themeChanged}}):_c('div',{staticClass:\"mode__switch mode__switch_black\",on:{\"click\":_vm.themeChanged}})]),_c('resetDialog',{attrs:{\"showResetConfirm\":_vm.showResetConfirm},on:{\"confirm\":_vm.confirmReset,\"close\":_vm.cancelReset}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n BASE: {\n 'text-align': 'left',\n 'color': '#3f3f3f',\n 'line-height': '1.75',\n },\n BASE_BLOCK: {\n 'margin': '1em 8px'\n },\n block: {\n // 一级标题样式\n h1: {\n 'font-size': '1.2em',\n 'text-align': 'center',\n 'font-weight': 'bold',\n 'display': 'table',\n 'margin': '2em auto 1em',\n 'padding': '0 1em',\n 'border-bottom': '2px solid rgba(0, 152, 116, 0.9)'\n },\n\n // 二级标题样式\n h2: {\n 'font-size': '1.2em',\n 'text-align': 'center',\n 'font-weight': 'bold',\n 'display': 'table',\n 'margin': '4em auto 2em',\n 'padding': '0 0.2em',\n 'background': 'rgba(0, 152, 116, 0.9)',\n 'color': '#fff'\n },\n\n // 三级标题样式\n h3: {\n 'font-weight': 'bold',\n 'font-size': '1.1em',\n 'margin': '2em 8px 0.75em 0',\n 'line-height': '1.2',\n 'padding-left': '8px',\n 'border-left': '3px solid rgba(0, 152, 116, 0.9)'\n },\n\n // 四级标题样式\n h4: {\n 'font-weight': 'bold',\n 'font-size': '1em',\n 'margin': '2em 8px 0.5em',\n 'color': 'rgba(66, 185, 131, 0.9)'\n },\n\n // 段落样式\n p: {\n 'margin': '1.5em 8px',\n 'letter-spacing': '0.1em'\n },\n\n // 引用样式\n blockquote: {\n 'font-style': 'normal',\n 'border-left': 'none',\n 'padding': '1em',\n 'border-radius': '4px',\n 'color': '#FEEEED',\n 'background': 'rgba(27,31,35,.05)',\n 'margin': '2em 8px'\n },\n\n blockquote_p: {\n 'letter-spacing': '0.1em',\n 'color': 'rgb(80, 80, 80)',\n 'font-family': 'PingFangSC-light, PingFangTC-light, Open Sans, Helvetica Neue, sans-serif',\n 'font-size': '1em',\n 'display': 'block',\n },\n\n code: {\n 'font-size': '80%',\n 'overflow': 'auto',\n 'color': '#333',\n 'white-space': 'pre',\n 'background': 'rgb(247, 247, 247)',\n 'border-radius': '2px',\n 'padding': '10px',\n 'line-height': '1.5',\n 'border': '1px solid rgb(236,236,236)',\n 'margin': '20px 0',\n },\n\n image: {\n 'border-radius': '4px',\n 'display': 'block',\n 'margin': '0.1em auto 0.5em',\n 'width': '100% !important',\n },\n\n image_org: {\n 'border-radius': '4px',\n 'display': 'block'\n },\n\n ol: {\n 'margin-left': '0',\n 'padding-left': '1em'\n },\n\n ul: {\n 'margin-left': '0',\n 'padding-left': '1em',\n 'list-style': 'circle'\n },\n\n footnotes: {\n 'margin': '0.5em 8px',\n 'font-size': '80%'\n },\n\n figure: {\n 'margin': '1.5em 8px',\n }\n },\n inline: {\n listitem: {\n 'text-indent': '-1em',\n 'display': 'block',\n 'margin': '0.2em 8px'\n },\n\n codespan: {\n 'font-size': '90%',\n 'white-space': 'pre',\n 'color': '#d14',\n 'background': 'rgba(27,31,35,.05)',\n 'padding': '3px 5px',\n 'border-radius': '4px',\n },\n\n link: {\n 'color': '#576b95'\n },\n\n wx_link: {\n 'color': '#576b95',\n 'text-decoration': 'none',\n },\n\n // 字体加粗样式\n strong: {\n 'color': 'rgba(15, 76, 129, 0.9)',\n 'font-weight': 'bold',\n },\n\n table: {\n 'border-collapse': 'collapse',\n 'text-align': 'center',\n 'margin': '1em 8px'\n },\n\n thead: {\n 'background': 'rgba(0, 0, 0, 0.05)',\n 'font-weight': 'bold'\n },\n\n td: {\n 'border': '1px solid #dfdfdf',\n 'padding': '0.25em 0.5em'\n },\n\n footnote: {\n 'font-size': '12px'\n },\n\n figcaption: {\n 'text-align': 'center',\n 'color': '#888',\n 'font-size': '0.8em'\n }\n }\n};\n","import default_theme from './themes/default-theme'\nimport prettier from 'prettier/standalone'\nimport prettierMarkdown from 'prettier/parser-markdown'\n\n\n// 设置自定义颜色\nexport function setColorWithTemplate(template) {\n return function (color) {\n let custom_theme = JSON.parse(JSON.stringify(template))\n custom_theme.block.h1['border-bottom'] = `2px solid ${color}`\n custom_theme.block.h2['background'] = color\n custom_theme.block.h3['border-left'] = `3px solid ${color}`\n custom_theme.block.h4['color'] = color\n custom_theme.inline.strong['color'] = color\n return custom_theme\n }\n}\n\nexport const setColorWithCustomTemplate = function setColorWithCustomTemplate(\n template,\n color\n) {\n let custom_theme = JSON.parse(JSON.stringify(template))\n custom_theme.block.h1['border-bottom'] = `2px solid ${color}`\n custom_theme.block.h2['background'] = color\n custom_theme.block.h3['border-left'] = `3px solid ${color}`\n custom_theme.block.h4['color'] = color\n custom_theme.inline.strong['color'] = color\n return custom_theme\n}\n\n// 设置自定义字体大小\nexport function setFontSizeWithTemplate(template) {\n return function (fontSize) {\n let custom_theme = JSON.parse(JSON.stringify(template))\n custom_theme.block.h1['font-size'] = `${fontSize * 1.14}px`\n custom_theme.block.h2['font-size'] = `${fontSize * 1.1}px`\n custom_theme.block.h3['font-size'] = `${fontSize}px`\n custom_theme.block.h4['font-size'] = `${fontSize}px`\n return custom_theme\n }\n}\n\nexport const setColor = setColorWithTemplate(default_theme)\nexport const setFontSize = setFontSizeWithTemplate(default_theme)\n\nexport function customCssWithTemplate(jsonString, color, theme) {\n let custom_theme = JSON.parse(JSON.stringify(theme))\n // block\n custom_theme.block.h1['border-bottom'] = `2px solid ${color}`\n custom_theme.block.h2['background'] = color\n custom_theme.block.h3['border-left'] = `3px solid ${color}`\n custom_theme.block.h4['color'] = color\n custom_theme.inline.strong['color'] = color\n\n custom_theme.block.h1 = Object.assign(custom_theme.block.h1, jsonString.h1)\n custom_theme.block.h2 = Object.assign(custom_theme.block.h2, jsonString.h2)\n custom_theme.block.h3 = Object.assign(custom_theme.block.h3, jsonString.h3)\n custom_theme.block.h4 = Object.assign(custom_theme.block.h4, jsonString.h4)\n custom_theme.block.p = Object.assign(custom_theme.block.p, jsonString.p)\n custom_theme.block.blockquote = Object.assign(\n custom_theme.block.blockquote,\n jsonString.blockquote\n )\n custom_theme.block.blockquote_p = Object.assign(\n custom_theme.block.blockquote_p,\n jsonString.blockquote_p\n )\n custom_theme.block.image = Object.assign(\n custom_theme.block.image,\n jsonString.image\n )\n\n // inline\n custom_theme.inline.strong = Object.assign(\n custom_theme.inline.strong,\n jsonString.strong\n )\n custom_theme.inline.codespan = Object.assign(\n custom_theme.inline.codespan,\n jsonString.codespan\n )\n custom_theme.inline.link = Object.assign(\n custom_theme.inline.link,\n jsonString.link\n )\n custom_theme.inline.wx_link = Object.assign(\n custom_theme.inline.wx_link,\n jsonString.wx_link\n )\n\n return custom_theme\n}\n\n/**\n * 将CSS形式的字符串转换为JSON\n *\n * @param {css字符串} css\n */\nexport function css2json(css) {\n // 移除CSS所有注释\n let open, close;\n while (\n (open = css.indexOf('/*')) !== -1 &&\n (close = css.indexOf('*/')) !== -1\n ) {\n css = css.substring(0, open) + css.substring(close + 2)\n }\n\n // 初始化返回值\n let json = {}\n\n while (css.length > 0 && css.indexOf('{') !== -1 && css.indexOf('}') !== -1) {\n // 存储第一个左/右花括号的下标\n const lbracket = css.indexOf('{')\n const rbracket = css.indexOf('}')\n\n // 第一步:将声明转换为Object,如:\n // `font: 'Times New Roman' 1em; color: #ff0000; margin-top: 1em;`\n // ==>\n // `{\"font\": \"'Times New Roman' 1em\", \"color\": \"#ff0000\", \"margin-top\": \"1em\"}`\n\n // 辅助方法:将array转为object\n function toObject(array) {\n let ret = {}\n array.forEach(e => {\n const index = e.indexOf(':')\n const property = e.substring(0, index).trim()\n const value = e.substring(index + 1).trim()\n ret[property] = value\n })\n return ret\n }\n\n // 切割声明块并移除空白符,然后放入数组中\n let declarations = css\n .substring(lbracket + 1, rbracket)\n .split(';')\n .map(e => e.trim())\n .filter(e => e.length > 0) // 移除所有\"\"空值\n\n // 转为Object对象\n declarations = toObject(declarations)\n\n // 第二步:选择器处理,每个选择器会与它对应的声明相关联,如:\n // `h1, p#bar {color: red}`\n // ==>\n // {\"h1\": {color: red}, \"p#bar\": {color: red}}\n\n let selectors = css\n .substring(0, lbracket)\n // 以,切割,并移除空格:`\"h1, p#bar, span.foo\"` => [\"h1\", \"p#bar\", \"span.foo\"]\n .split(',')\n .map(selector => selector.trim())\n\n // 迭代赋值\n selectors.forEach(selector => {\n // 若不存在,则先初始化\n if (!json[selector]) json[selector] = {}\n // 赋值到JSON\n Object.keys(declarations).forEach(key => {\n json[selector][key] = declarations[key]\n })\n })\n\n // 继续下个声明块\n css = css.slice(rbracket + 1).trim()\n }\n\n // 返回JSON形式的结果串\n return json\n}\n\n\n/**\n * 将编辑器内容保存到 LocalStorage\n * @param {*} editor \n * @param {*} name \n */\nexport function saveEditorContent(editor, name) {\n const content = editor.getValue(0)\n if (content) {\n localStorage.setItem(name, content)\n } else {\n localStorage.removeItem(name)\n }\n}\n\n\nexport function formatDoc(content) {\n const doc = prettier.format(content, {\n parser: 'markdown',\n plugins: [prettierMarkdown]\n })\n return doc\n}\n\nexport function fixCodeWhiteSpace(value = 'pre') {\n const preDomList = document.getElementsByClassName('code__pre');\n if (preDomList.length > 0) {\n preDomList.forEach(pre => {\n pre.style.whiteSpace = value;\n })\n }\n}\n\nexport function downLoadMD(doc) {\n let downLink = document.createElement('a');\n\n downLink.download = 'content.md';\n downLink.style.display = 'none';\n let blob = new Blob([doc]);\n\n downLink.href = URL.createObjectURL(blob);\n document.body.appendChild(downLink);\n downLink.click();\n document.body.removeChild(downLink);\n}\n","import juice from 'juice'\n\nexport function solveWeChatImage() {\n const clipboardDiv = document.getElementById('output');\n const images = clipboardDiv.getElementsByTagName(\"img\");\n for (let i = 0; i < images.length; i++) {\n const image = images[i];\n const width = image.getAttribute(\"width\");\n const height = image.getAttribute(\"height\");\n image.removeAttribute(\"width\");\n image.removeAttribute(\"height\");\n image.style.width = width;\n image.style.height = height;\n }\n}\nexport function solveHtml() {\n const element = document.getElementById(\"output-wrapper\");\n let html = element.innerHTML\n let res = \"\";\n res = juice.inlineContent(\n html, {\n inlinePseudoElements: true,\n preserveImportant: true\n }\n );\n return res;\n}\n","export default {\n builtinFonts: [{\n label: '无衬线',\n value: '-apple-system-font,BlinkMacSystemFont, Helvetica Neue, PingFang SC, Hiragino Sans GB , Microsoft YaHei UI , Microsoft YaHei ,Arial,sans-serif'\n },\n {\n label: '衬线',\n value: \"Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif\"\n }\n ],\n sizeOption: [{\n label: '12px',\n value: '12px',\n desc: '更小'\n },\n {\n label: '13px',\n value: '13px',\n desc: '稍小'\n },\n {\n label: '14px',\n value: '14px',\n desc: '推荐'\n },\n {\n label: '15px',\n value: '15px',\n desc: '稍大'\n },\n {\n label: '16px',\n value: '16px',\n desc: '更大'\n }\n ],\n colorOption: [{\n label: '经典蓝',\n value: 'rgba(15, 76, 129, 1)',\n desc: '最新流行'\n },\n {\n label: '翡翠绿',\n value: 'rgba(0, 152, 116, 1)',\n desc: '优雅清新'\n },\n {\n label: '活力橘',\n value: 'rgba(250, 81, 81, 1)',\n desc: '热情活泼'\n }\n ],\n codeThemeOption: [\n {\n label: '微信',\n value: 'wechat',\n desc: '默认样式'\n },\n {\n label: 'GitHub',\n value: 'github',\n desc: '精简风格'\n }\n ],\n form: {\n rows: 1,\n cols: 1\n }\n};\n","const DEFAULT_CSS_CONTENT =\n`/*\n 按Ctrl+F可格式化\n*/\n/* 一级标题样式 */\nh1 {\n}\n/* 二级标题样式 */\nh2 {\n}\n/* 三级标题样式 */\nh3 {\n}\n/* 四级标题样式 */\nh4 {\n}\n/* 图片样式 */\nimage {\n}\n/* 引用样式 */\nblockquote {\n}\n/* 引用段落样式 */\nblockquote_p {\n}\n/* 段落样式 */\np {\n}\n/* 行内代码样式 */\ncodespan {\n}\n/* 粗体样式 */\nstrong {\n}\n/* 链接样式 */\nlink {\n}\n/* 微信链接样式 */\nwx_link {\n}\n`\nexport default DEFAULT_CSS_CONTENT\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{staticClass:\"reset__dialog\",attrs:{\"title\":\"提示\",\"visible\":_vm.showResetConfirm},on:{\"close\":function($event){return _vm.$emit('close')}}},[_c('div',{staticClass:\"text\"},[_vm._v(\" 此操作将丢失本地缓存的文本和自定义样式,是否继续? \")]),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{attrs:{\"type\":_vm.btnType,\"plain\":\"\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_vm._v(\"取 消\")]),_c('el-button',{attrs:{\"type\":_vm.btnType,\"plain\":\"\"},on:{\"click\":function($event){return _vm.$emit('confirm')}}},[_vm._v(\"确 定\")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./resetDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./resetDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./resetDialog.vue?vue&type=template&id=0facc8d4&scoped=true&\"\nimport script from \"./resetDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./resetDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./resetDialog.vue?vue&type=style&index=0&id=0facc8d4&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0facc8d4\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./header.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./header.vue?vue&type=template&id=69f619fe&scoped=true&\"\nimport script from \"./header.vue?vue&type=script&lang=js&\"\nexport * from \"./header.vue?vue&type=script&lang=js&\"\nimport style0 from \"./header.vue?vue&type=style&index=0&id=69f619fe&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"69f619fe\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{staticClass:\"about__dialog\",attrs:{\"title\":\"关于\",\"visible\":_vm.value,\"width\":\"30%\",\"center\":\"\"},on:{\"close\":function($event){return _vm.$emit('input', false)}}},[_c('div',{staticStyle:{\"text-align\":\"center\"}},[_c('h3',[_vm._v(\"一款高度简洁的微信 Markdown 编辑器\")])]),_c('div',{staticStyle:{\"text-align\":\"center\",\"margin-top\":\"10px\"}},[_c('p',[_vm._v(\"扫码关注我的公众号,原创技术文章第一时间推送!\")]),_c('img',{staticStyle:{\"width\":\"40%\",\"display\":\"block\",\"margin\":\"20px auto 10px\"},attrs:{\"src\":\"https://gitee.com/yanglbme/resource/raw/master/doocs-md/qrcode.png\"}})]),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{attrs:{\"type\":\"primary\",\"plain\":\"\"},on:{\"click\":function($event){return _vm.onRedirect('https://github.com/doocs/md')}}},[_vm._v(\"GitHub 仓库\")]),_c('el-button',{attrs:{\"type\":\"primary\",\"plain\":\"\"},on:{\"click\":function($event){return _vm.onRedirect('https://gitee.com/doocs/md')}}},[_vm._v(\"Gitee 仓库\")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./aboutDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./aboutDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./aboutDialog.vue?vue&type=template&id=7f87549e&scoped=true&\"\nimport script from \"./aboutDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./aboutDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7f87549e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{staticClass:\"insert__dialog\",attrs:{\"title\":\"插入表格\",\"visible\":_vm.value,\"border\":\"\"},on:{\"close\":function($event){return _vm.$emit('input', false)}}},[_c('el-row',{staticClass:\"tb-options\",attrs:{\"type\":\"flex\",\"align\":\"middle\",\"gutter\":10}},[_c('el-col',{attrs:{\"span\":6}},[_vm._v(\" 行: \"),_c('el-input-number',{attrs:{\"controls-position\":\"right\",\"min\":1,\"max\":100,\"size\":\"small\"},on:{\"change\":function($event){return _vm.handleChange($event,'row')}},model:{value:(_vm.rowNum),callback:function ($$v) {_vm.rowNum=$$v},expression:\"rowNum\"}})],1),_c('el-col',{attrs:{\"span\":6}},[_vm._v(\" 列: \"),_c('el-input-number',{attrs:{\"controls-position\":\"right\",\"min\":1,\"max\":100,\"size\":\"small\"},on:{\"change\":function($event){return _vm.handleChange($event,'col')}},model:{value:(_vm.colNum),callback:function ($$v) {_vm.colNum=$$v},expression:\"colNum\"}})],1)],1),_c('table',{staticClass:\"input-table\",staticStyle:{\"border-collapse\":\"collapse\"}},_vm._l((_vm.rowNum+1),function(row){return _c('tr',{key:row,class:{ 'head-style': row===1 }},_vm._l((_vm.colNum),function(col){return _c('td',{key:col},[_c('el-input',{attrs:{\"align\":\"center\",\"placeholder\":row===1?'表头':''},model:{value:(_vm.tableData[(\"k_\" + (row-1) + \"_\" + (col-1))]),callback:function ($$v) {_vm.$set(_vm.tableData, (\"k_\" + (row-1) + \"_\" + (col-1)), $$v)},expression:\"tableData[`k_${row-1}_${col-1}`]\"}})],1)}),0)}),0),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{attrs:{\"type\":_vm.btnType,\"plain\":\"\"},on:{\"click\":function($event){return _vm.$emit('input', false)}}},[_vm._v(\"取 消\")]),_c('el-button',{attrs:{\"type\":_vm.btnType,\"plain\":\"\"},on:{\"click\":_vm.insertTable}},[_vm._v(\"确 定\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./insertForm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./insertForm.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./insertForm.vue?vue&type=template&id=0bc38bf5&\"\nimport script from \"./insertForm.vue?vue&type=script&lang=js&\"\nexport * from \"./insertForm.vue?vue&type=script&lang=js&\"\nimport style0 from \"./insertForm.vue?vue&type=style&index=0&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.value),expression:\"value\"}],staticClass:\"menu\",style:((\"left: \" + _vm.left + \"px;top: \" + _vm.top + \"px;\")),attrs:{\"id\":\"menu\"}},_vm._l((_vm.list),function(item){return _c('li',{key:item.key,staticClass:\"menu_item\",on:{\"mousedown\":function($event){return _vm.onMouseDown(item.key)}}},[_c('span',[_vm._v(_vm._s(item.text))])])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from 'axios';\n\n// 创建axios实例\nconst service = axios.create({\n baseURL: '',\n timeout: 10 * 1000 // 请求超时时间\n});\n\nservice.interceptors.request.use(\n config => {\n if (/^(post)|(put)|(delete)$/i.test(config.method)) {\n if (config.data && config.data.upload) {\n config.headers['Content-Type'] = 'multipart/form-data';\n }\n }\n return config;\n }, error => {\n Promise.reject(error);\n }\n);\n\nservice.interceptors.response.use(res => {\n return res.data ? res.data : Promise.reject(res);\n}, error => Promise.reject(error));\n\nexport default service;","import fetch from './fetch';\nimport {\n v4 as uuidv4\n} from 'uuid';\nconst fileUploadConfig = {\n username: 'filess',\n repo: 'images',\n accessToken: [\n '7715d7ca67b5d3837cfdoocsmde8c38421815aa423510af',\n 'c411415bf95dbe39625doocsmd5047ba9b7a2a6c9642abe',\n '2821cd8819fa345c053doocsmdca86ac653f8bc20db1f1b',\n '445f0dae46ef1f2a4d6doocsmdc797301e94797b4750a4c',\n 'cc1d0c1426d0fd0902bdoocsmdd2d7184b14da61b86ec46',\n 'b67e9d15cb6f910492fdoocsmdac6b44d379c953bb19eff',\n '618c4dc2244ccbbc088doocsmd125d17fd31b7d06a50cf3',\n 'a4b581732e1c1507458doocsmdc5b223b27dae5e2e16a55'\n ]\n}\n\nfunction getConfiguration() {\n const imgHost = localStorage.getItem(\"ImgHost\") || 'default'\n\n // default\n let token = fileUploadConfig.accessToken[Math.floor(Math.random() * fileUploadConfig.accessToken.length)].replace('doocsmd', '')\n let username = fileUploadConfig.username\n let repo = fileUploadConfig.repo\n\n // GitHub\n if (imgHost === 'github' && localStorage.getItem(\"GitHubConfig\")) {\n const githubConfg = JSON.parse(localStorage.getItem(\"GitHubConfig\"))\n const repoUrl = githubConfg.repo.replace(\"https://github.com/\", \"\").replace(\"http://github.com/\", \"\").replace(\"github.com/\", \"\").split(\"/\")\n token = githubConfg.accessToken\n username = repoUrl[0]\n repo = repoUrl[1]\n }\n return {\n username,\n repo,\n token\n }\n}\n\n\nfunction fileUpload(content, filename) {\n const date = new Date();\n const dir = date.getFullYear() + '/' + (date.getMonth() + 1).toString().padStart(2, '0') + '/' + date.getDate().toString().padStart(2, '0');\n const uuid = uuidv4();\n const dateFilename = new Date().getTime() + '-' + uuid + '.' + filename.split('.')[1];\n const {\n username,\n repo,\n token\n } = getConfiguration()\n const url = `https://api.github.com/repos/${username}/${repo}/contents/${dir}/${dateFilename}`\n\n return fetch({\n url,\n method: 'put',\n headers: {\n 'Authorization': 'token ' + token\n },\n data: {\n message: 'Upload image by https://doocs.github.io/md',\n content: content\n }\n })\n}\n\n\nexport default {\n fileUpload\n};\n","import fileApi from '../../api/file';\nconst githubResourceUrl = 'raw.githubusercontent.com/filess/images/master/';\nconst cdnResourceUrl = 'cdn.jsdelivr.net/gh/filess/images/';\n\nexport function uploadImgFile(file) {\n\n return new Promise((resolve, reject) => {\n const checkImageResult = isImageIllegal(file);\n if (checkImageResult) {\n reject(checkImageResult);\n return;\n }\n const imgFile = new FileReader();\n imgFile.readAsDataURL(file);\n\n imgFile.onload = function () {\n const base64Content = this.result.split(',').pop();\n fileApi.fileUpload(base64Content, file.name).then(res => {\n const imageUrl = res.content.download_url.replace(githubResourceUrl, cdnResourceUrl);\n resolve(imageUrl);\n }).catch(err => {\n console.log(err.message)\n })\n }\n });\n}\n\nexport function isImageIllegal(file) {\n if (!/\\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(file.name)) {\n return '请上传 JPG/PNG/GIF 格式的图片';\n }\n if (file.size > 5 * 1024 * 1024) {\n return '由于公众号限制,图片大小不能超过 5.0M';\n }\n return false;\n}\n","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rightClickMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./rightClickMenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./rightClickMenu.vue?vue&type=template&id=3d7c3994&scoped=true&\"\nimport script from \"./rightClickMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./rightClickMenu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./rightClickMenu.vue?vue&type=style&index=0&id=3d7c3994&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d7c3994\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{staticClass:\"dialog\",attrs:{\"title\":\"插入图片\",\"visible\":_vm.value},on:{\"close\":function($event){return _vm.$emit('close')}}},[_c('el-tabs',{attrs:{\"type\":\"card\",\"value\":'upload'}},[_c('el-tab-pane',{staticClass:\"upload-panel\",attrs:{\"label\":\"选择上传\",\"name\":\"upload\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"size\":\"small\"},on:{\"change\":_vm.changeImgHost},model:{value:(_vm.imgHost),callback:function ($$v) {_vm.imgHost=$$v},expression:\"imgHost\"}},_vm._l((_vm.options),function(item){return _c('el-option',{key:item.value,attrs:{\"label\":item.label,\"value\":item.value}})}),1),_c('el-upload',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.uploadingImg),expression:\"uploadingImg\"}],attrs:{\"drag\":\"\",\"action\":\"\",\"headers\":{'Content-Type': 'multipart/form-data'},\"show-file-list\":false,\"multiple\":true,\"accept\":\".jpg, .jpeg, .png, .gif\",\"name\":\"file\",\"before-upload\":_vm.beforeUpload}},[_c('i',{staticClass:\"el-icon-upload\"}),_c('div',{staticClass:\"el-upload__text\"},[_vm._v(\" 将文件拖到此处,或 \"),_c('em',[_vm._v(\"点击上传\")])])])],1),_c('el-tab-pane',{staticClass:\"github-panel\",attrs:{\"label\":\"GitHub 图床\",\"name\":\"github\"}},[_c('el-form',{ref:\"form\",staticClass:\"setting-form\",attrs:{\"model\":_vm.formGitHub,\"label-position\":\"right\",\"label-width\":\"100px\"}},[_c('el-form-item',{attrs:{\"label\":\"GitHub 仓库\"}},[_c('el-input',{attrs:{\"placeholder\":\"如:github.com/yanglbme/resource\"},model:{value:(_vm.formGitHub.repo),callback:function ($$v) {_vm.$set(_vm.formGitHub, \"repo\", $$v)},expression:\"formGitHub.repo\"}})],1),_c('el-form-item',{attrs:{\"label\":\"token\"}},[_c('el-input',{attrs:{\"placeholder\":\"如:cc1d0c1426d0fd0902bd2d7184b14da61b8abc46\"},model:{value:(_vm.formGitHub.accessToken),callback:function ($$v) {_vm.$set(_vm.formGitHub, \"accessToken\", $$v)},expression:\"formGitHub.accessToken\"}}),_c('el-link',{attrs:{\"type\":\"primary\",\"href\":\"https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token\",\"target\":\"_blank\"}},[_vm._v(\"如何获取 GitHub token?\")])],1),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(\"保存配置\")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./uploadImgDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./uploadImgDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./uploadImgDialog.vue?vue&type=template&id=4bde134e&scoped=true&\"\nimport script from \"./uploadImgDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./uploadImgDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./uploadImgDialog.vue?vue&type=style&index=0&id=4bde134e&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4bde134e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodemirrorEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodemirrorEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CodemirrorEditor.vue?vue&type=template&id=26d55444&scoped=true&\"\nimport script from \"./CodemirrorEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./CodemirrorEditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CodemirrorEditor.vue?vue&type=style&index=0&id=26d55444&lang=less&scoped=true&\"\nimport style1 from \"./CodemirrorEditor.vue?vue&type=style&index=1&lang=less&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"26d55444\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=6f36a3b6&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=6f36a3b6&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6f36a3b6\",\n null\n \n)\n\nexport default component.exports","import marked from 'marked';\nimport store from '../../../store/index';\nconst WxRenderer = function (opts) {\n this.opts = opts\n let ENV_STRETCH_IMAGE = true\n\n let footnotes = []\n let footnoteIndex = 0\n let styleMapping = null\n\n const CODE_FONT_FAMILY = 'Menlo, Operator Mono, Consolas, Monaco, monospace'\n\n let merge = (base, extend) => Object.assign({}, base, extend)\n\n this.buildTheme = themeTpl => {\n let mapping = {}\n let base = merge(themeTpl.BASE, {\n 'font-family': this.opts.fonts,\n 'font-size': this.opts.size\n })\n let base_block = merge(base, {})\n for (let ele in themeTpl.inline) {\n if (themeTpl.inline.hasOwnProperty(ele)) {\n let style = themeTpl.inline[ele]\n if (ele === 'codespan') {\n style['font-family'] = CODE_FONT_FAMILY\n style['white-space'] = 'normal'\n }\n mapping[ele] = merge(base, style)\n }\n }\n\n for (let ele in themeTpl.block) {\n if (themeTpl.block.hasOwnProperty(ele)) {\n let style = themeTpl.block[ele]\n if (ele === 'code') {\n style['font-family'] = CODE_FONT_FAMILY\n }\n mapping[ele] = merge(base_block, style)\n }\n }\n return mapping\n }\n\n let getStyles = (tokenName, addition) => {\n let arr = []\n let dict = styleMapping[tokenName]\n if (!dict) return ''\n for (const key in dict) {\n arr.push(key + ':' + dict[key])\n }\n return `style=\"${arr.join(';') + (addition || '')}\"`\n }\n\n let addFootnote = (title, link) => {\n footnotes.push([++footnoteIndex, title, link])\n return footnoteIndex\n }\n\n this.buildFootnotes = () => {\n let footnoteArray = footnotes.map(x => {\n if (x[1] === x[2]) {\n return `[${x[0]}]: ${x[1]}
`\n }\n return `[${x[0]}] ${x[1]}: ${x[2]}
`\n })\n return `

引用链接

${footnoteArray.join('\\n')}

`\n }\n\n this.buildAddition = () => {\n return `\n \n `\n }\n\n this.setOptions = newOpts => {\n this.opts = merge(this.opts, newOpts)\n }\n\n this.hasFootnotes = () => footnotes.length !== 0\n\n this.getRenderer = (status) => {\n footnotes = []\n footnoteIndex = 0\n\n styleMapping = this.buildTheme(this.opts.theme)\n let renderer = new marked.Renderer()\n\n renderer.heading = (text, level) => {\n switch (level) {\n case 1:\n return `

${text}

`\n case 2:\n return `

${text}

`\n case 3:\n return `

${text}

`\n default:\n return `

${text}

`\n }\n }\n renderer.paragraph = text => {\n if (text.indexOf('${text}

`\n }\n\n renderer.blockquote = text => {\n text = text.replace(//g, `

`)\n return `

${text}
`\n }\n renderer.code = (text, lang) => {\n text = text.replace(//g, '>')\n const codeLines = text.split('\\n').map(line => `${(line || '
')}
`)\n const codeTheme = 'github'\n return `\n
\n
\n                        ${codeLines.join('')}\n                    
\n
\n `\n }\n renderer.codespan = (text, lang) => `${text}`\n renderer.listitem = text => `<%s/>${text}`\n\n renderer.list = (text, ordered, start) => {\n text = text.replace(/<\\/*p.*?>/g, '')\n let segments = text.split(`<%s/>`)\n if (!ordered) {\n text = segments.join('•')\n return `

${text}

`\n }\n text = segments[0]\n for (let i = 1; i < segments.length; i++) {\n text = text + i + '.' + segments[i]\n }\n return `

${text}

`\n }\n renderer.image = (href, title, text) => {\n let subText = ''\n if (text) {\n subText = `
${text}
`\n }\n let figureStyles = getStyles('figure')\n let imgStyles = getStyles(ENV_STRETCH_IMAGE ? 'image' : 'image_org')\n return `
\"${text}\"/${subText}
`\n }\n renderer.link = (href, title, text) => {\n if (href.indexOf('https://mp.weixin.qq.com') === 0) {\n return `${text}`\n }\n if (href === text || !status) {\n return text\n }\n let ref = addFootnote(title || text, href)\n return `${text}[${ref}]`\n }\n renderer.strong = text => `${text}`\n renderer.em = text => `${text}`\n renderer.table = (header, body) => `
${header}${body}
`\n // renderer.tablerow = (text) => `${text}`;\n renderer.tablecell = (text, flags) => `${text}`\n renderer.hr = () => `
`\n return renderer\n }\n}\nexport default WxRenderer\n","const DEFAULT_CONTENT =\n`# 示例文章:Google 搜索的即时自动补全功能究竟是如何“工作”的?\n> Google 搜索**自动补全功能**的强大,相信不少朋友都能感受到,它帮助我们更快地“补全”我们所要输入的搜索关键字。那么,它怎么知道我们要输入什么内容?它又是如何工作的?在这篇文章里,我们一起来看看。\n\n## 使用自动补全\nGoogle 搜索的自动补全功能可以在 Google 搜索应用的大多数位置使用,包括 [Google](https://www.google.com/) 主页、适用于 IOS 和 Android 的 Google 应用,我们只需要在 Google 搜索框上开始键入关键字,就可以看到联想词了。\n\n![](https://gitee.com/yanglbme/resource/raw/master/doocs-md/juejin.gif)\n\n在上图示例中,我们可以看到,输入关键字 \\`juej\\`,Google 搜索会联想到“掘金”、“掘金小册”、“绝句”等等,好处就是,我们无须输入完整的关键字即可轻松完成针对这些 topics 的搜索。\n\n谷歌搜索的自动补全功能对于使用移动设备的用户来说特别有用,用户可以轻松在难以键入的小屏幕上完成搜索。当然,对于移动设备用户和台式机用户而言,这都节省了大量的时间。根据 Google 官方报告,自动补全功能可以减少大约 25% 的打字,累积起来,预计每天可以节省 200 多年的打字时间。是的,每天!\n\n> 注意,本文所提到的“**联想词**”与“**预测**”,是同一个意思。\n\n## 基于“预测”而非“建议”\nGoogle 官方将自动补全功能称之为“预测”,而不是“建议”,为什么呢?其实是有充分理由的。自动补全功能是为了**帮助用户完成他们打算进行的搜索**,而不是建议用户要执行什么搜索。\n\n那么,Google 是如何确定这些“预测”的?其实,Google 会根据趋势搜索 [trends](https://trends.google.com/trends/?geo=US) 给到我们这些“预测”。简单来说,哪个热门、哪个搜索频率高,就更可能推给我们。当然,这也与我们当前所处的位置以及我们的搜索历史相关。\n\n另外,这些“预测”也会随着我们键入的关键字的变更而更改。例如,当我们把键入的关键字从 \\`juej\\` 更改为 \\`juex\\` 时,与“掘金”相关的预测会“消失”,同时,与“觉醒”、“决心”相关联的词会出现。\n\n![](https://gitee.com/yanglbme/resource/raw/master/doocs-md/juex.gif)\n\n## 为什么看不到某些联想词?\n如果我们在输入某个关键字时看不到联想词,那么表明 Google 的算法可能检测到:\n\n- 这个关键字不是热门字词;\n- 搜索的字词太新了,我们可能需要等待几天或几周才能看到联想词;\n- 这是一个侮辱性或敏感字词,这个搜索字词违反了 Google 的相关政策。更加详细的情况,可以了解 [Google 搜索自动补全政策](https://support.google.com/websearch/answer/7368877)。\n\n## 为什么会看到某些不当的联想词?\nGoogle 拥有专门设计的系统,可以自动捕获不适当的预测结果而不显示出来。然而,Google 每天需要处理数十亿次搜索,这意味着 Google 每天会显示数十亿甚至上百亿条预测。再好的系统,也可能存在缺陷,不正确的预测也可能随时会出现。\n\n我们作为 Google 搜索的用户,如果认定某条预测违反了相关的搜索自动补全政策,可以进行举报反馈,点击右下角“**举报不当的联想查询**”并勾选相关选项即可。\n\n![](https://gitee.com/yanglbme/resource/raw/master/doocs-md/report.gif)\n\n## 如何实现自动补全算法?\n目前,Google 官方似乎并没有公开搜索自动补全的算法实现,但是业界在这方面已经有了不少研究。\n\n一个好的自动补全器必须是快速的,并且在用户键入下一个字符后立即更新联想词列表。**自动补全器的核心是一个函数,它接受输入的前缀,并搜索以给定前缀开头的词汇或语句列表**。通常来说,只需要返回少量的数目即可。\n\n接下来,我们先从一个简单且低效的实现开始,并在此基础上逐步构建更高效的方法。\n\n### 词汇表实现\n一个**简单粗暴的实现方式**是:顺序查找词汇表,依次检查每个词汇,看它是否以给定的前缀开头。\n\n但是,此方法需要将前缀与每个词汇进行匹配检查,若词汇量较少,这种方式可能勉强行得通。但是,如果词汇量规模较大,效率就太低了。\n\n一个**更好的实现方式是**:让词汇按字典顺序排序。借助二分搜索算法,可以快速搜索有序词汇表中的前缀。由于二分搜索的每一步都会将搜索的范围减半,因此,总的搜索时间与词汇表中单词数量的对数成正比,即时间复杂度是 \\`O(log N)\\`。二分搜索的性能很好,但有没有更好的实现呢?当然有,往下看。\n\n### 前缀树实现\n通常来说,许多词汇都以相同的前缀开头,比如 \\`need\\`、\\`nested\\` 都以 \\`ne\\` 开头,\\`seed\\`、\\`speed\\` 都以 \\`s\\` 开头。要是为每个单词分别存储公共前缀似乎很浪费。\n\n![](https://gitee.com/yanglbme/resource/raw/master/doocs-md/pretree.png)\n\n前缀树是一种利用公共前缀来加速补全速度的数据结构。前缀树在节点树中排列一组单词,单词沿着从根节点到叶子节点的路径存储,树的层次对应于前缀的字母位置。\n\n前缀的补全是顺着前缀定义的路径来查找的。例如,在上图的前缀树中,前缀 \\`ne\\` 对应于从子节点取左边缘 \\`N\\` 和唯一边缘 \\`E\\` 的路径。然后可以通过继续遍历从 \\`E\\` 节点可以达到的所有叶节点来生成补全列表。在图中,\\`ne\\` 的补全可以是两个分支:\\`-ed\\` 和 \\`-sted\\`。如果在数中找不到由前缀定义的路径,则说明词汇表中不包含以该前缀开头的单词。\n\n### 有限状态自动机(DFA)实现\n前缀树可以有效处理公共前缀,但是,对于其他共享词部分,仍会分别存储在每个分支中。比如,后缀 \\`ed\\`、\\`ing\\`、\\`tion\\` 在英文单词中特别常见。在上一个例子中,\\`e\\`、\\`d\\` 分别存放在了每一个分支上。\n\n有没有一种方法可以更加节省存储空间呢?有的,那就是 DFA。\n\n
\n
\n\n在上面的例子中,单词 \\`need\\`、\\`nested\\`、\\`seed\\` 和 \\`speed\\` 仅由 9 个节点组成,而上一张图中的前缀树包含了 17 个节点。\n\n可以看出,最小化前缀树 DFA 可以在很大程度上减少数据结构的大小。即使词汇量很大,最小化 DFA 通常也适合在内存中存储,避免昂贵的磁盘访问是实现快速自动补全的关键。\n\n### 一些扩展\n上面介绍了如何利用合理的数据结构实现基本的自动补全功能。这些数据结构可以通过多种方式进行扩展,从而改善用户体验。\n\n通常,满足特定前缀的词汇可能很多,而用户界面上能够显示的却不多,我们更希望能显示最常搜索或者最有价值的词汇。这通常可以通过为词汇表中的每个单词增加一个代表单词值的**权重** \\`weight\\`,并且按照权重高低来排序自动补全列表。\n\n- 对于排序后的词汇表来说,在词汇表每个元素上增加 \\`weight\\` 属性并不难;\n- 对于前缀树来说,将 \\`weight\\` 存储在叶子节点中,也是很简单的一个实现;\n- 对于 \\`DFA\\` 来说,则较为复杂。因为一个叶子节点可以通过多条路径到达。一种解决方案是将权重关联到路径而不是叶子节点。\n\n目前有不少开源库都提供了这个功能,比如主流的搜索引擎框架 [Elasticsearch](https://www.elastic.co/products/elasticsearch)、[Solr](https://lucene.apache.org/solr/) 等,基于此,我们可以实现高效而强大的自动补全功能。\n\n#### 推荐阅读\n- [阿里又一个 20k+ stars 开源项目诞生,恭喜 fastjson!](https://mp.weixin.qq.com/s/RNKDCK2KoyeuMeEs6GUrow)\n- [刷掉 90% 候选人的互联网大厂海量数据面试题(附题解 + 方法总结)](https://mp.weixin.qq.com/s/rjGqxUvrEqJNlo09GrT1Dw)\n- [好用!期待已久的文本块功能究竟如何在 Java 13 中发挥作用?](https://mp.weixin.qq.com/s/kalGv5T8AZGxTnLHr2wDsA)\n- [2019 GitHub 开源贡献排行榜新鲜出炉!微软谷歌领头,阿里跻身前 12!](https://mp.weixin.qq.com/s/_q812aGD1b9QvZ2WFI0Qgw)\n\n---\n\n欢迎关注我的公众号“**Doocs开源社区**”,原创技术文章第一时间推送。\n\n
\n \n
\n\n`\nexport default DEFAULT_CONTENT\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport config from '../assets/scripts/config';\nimport WxRenderer from '../assets/scripts/renderers/wx-renderer'\nimport marked from 'marked'\nimport CodeMirror from 'codemirror/lib/codemirror'\nimport DEFAULT_CONTENT from '../assets/scripts/default-content'\nimport DEFAULT_CSS_CONTENT from '../assets/scripts/themes/default-theme-css'\nimport {\n setColor,\n formatDoc\n} from '../assets/scripts/util'\n\nVue.use(Vuex)\n\nconst state = {\n wxRenderer: null,\n output: '',\n html: '',\n editor: null,\n cssEditor: null,\n currentFont: '',\n currentSize: '',\n currentColor: '',\n citeStatus: 0,\n nightMode: false,\n codeTheme: 'github',\n rightClickMenuVisible: false\n};\nconst mutations = {\n setEditorValue(state, data) {\n state.editor.setValue(data)\n },\n setCssEditorValue(state, data) {\n state.cssEditor.setValue(data)\n },\n setWxRendererOptions(state, data) {\n state.wxRenderer.setOptions(data);\n },\n setCiteStatus(state, data) {\n state.citeStatus = data;\n localStorage.setItem('citeStatus', data)\n },\n setCurrentFont(state, data) {\n state.currentFont = data;\n localStorage.setItem('fonts', data)\n },\n setCurrentSize(state, data) {\n state.currentSize = data;\n localStorage.setItem('size', data)\n },\n setCurrentColor(state, data) {\n state.currentColor = data;\n localStorage.setItem('color', data)\n },\n setCurrentCodeTheme(state, data) {\n state.codeTheme = data;\n localStorage.setItem('codeTheme', data)\n },\n setRightClickMenuVisible(state, data) {\n state.rightClickMenuVisible = data;\n },\n themeChanged(state) {\n state.nightMode = !state.nightMode;\n },\n initEditorState(state) {\n state.currentFont = localStorage.getItem('fonts') || config.builtinFonts[0].value\n state.currentColor = localStorage.getItem('color') || config.colorOption[1].value\n state.currentSize = localStorage.getItem('size') || config.sizeOption[2].value\n state.codeTheme = localStorage.getItem('codeTheme') || config.codeThemeOption[0].value\n state.citeStatus = localStorage.getItem('citeStatus') === 'true'\n state.wxRenderer = new WxRenderer({\n theme: setColor(state.currentColor),\n fonts: state.currentFont,\n size: state.currentSize,\n status: state.citeStatus\n })\n },\n initEditorEntity(state) {\n state.editor = CodeMirror.fromTextArea(\n document.getElementById('editor'), {\n value: '',\n mode: 'text/x-markdown',\n theme: 'xq-light',\n lineNumbers: false,\n lineWrapping: true,\n styleActiveLine: true,\n autoCloseBrackets: true,\n extraKeys: {\n 'Ctrl-F': function autoFormat(editor) {\n const doc = formatDoc(editor.getValue(0))\n localStorage.setItem('__editor_content', doc)\n editor.setValue(doc)\n }\n }\n }\n )\n \n // 如果有编辑器内容被保存则读取,否则加载默认内容\n state.editor.setValue(localStorage.getItem('__editor_content') || formatDoc(DEFAULT_CONTENT))\n },\n initCssEditorEntity(state) {\n state.cssEditor = CodeMirror.fromTextArea(\n document.getElementById('cssEditor'), {\n value: '',\n mode: 'css',\n theme: 'style-mirror',\n lineNumbers: false,\n lineWrapping: true,\n matchBrackets: true,\n autofocus: true,\n extraKeys: {\n 'Ctrl-F': function autoFormat(editor) {\n const totalLines = editor.lineCount()\n editor.autoFormatRange({\n line: 0,\n ch: 0\n }, {\n line: totalLines\n })\n }\n }\n }\n )\n\n // 如果有编辑器内容被保存则读取,否则加载默认内容\n state.cssEditor.setValue(localStorage.getItem('__css_content') || DEFAULT_CSS_CONTENT)\n },\n editorRefresh(state) {\n let output = marked(state.editor.getValue(0), {\n renderer: state.wxRenderer.getRenderer(state.citeStatus)\n })\n // 去除第一行的 margin-top\n output = output.replace(/(style=\".*?)\"/, '$1;margin-top: 0\"')\n if (state.citeStatus) {\n // 引用脚注\n output += state.wxRenderer.buildFootnotes()\n // 附加的一些 style\n output += state.wxRenderer.buildAddition()\n }\n state.output = output\n },\n clearEditorToDefault(state) {\n const doc = formatDoc(DEFAULT_CONTENT)\n state.editor.setValue(doc)\n state.cssEditor.setValue(DEFAULT_CSS_CONTENT)\n }\n}\n\nexport default new Vuex.Store({\n state,\n mutations,\n actions: {},\n modules: {}\n})\n","import Vue from 'vue'\nimport {\n Container,\n Header,\n Upload,\n Tooltip,\n Form,\n FormItem,\n Select,\n Option,\n ColorPicker,\n Switch,\n Button,\n Main,\n Col,\n Row,\n Dialog,\n Loading,\n Message\n} from 'element-ui'\n\nVue.use(Container)\nVue.use(Header)\nVue.use(Upload)\nVue.use(Tooltip)\nVue.use(Form)\nVue.use(FormItem)\nVue.use(Select)\nVue.use(Option)\nVue.use(ColorPicker)\nVue.use(Switch)\nVue.use(Button)\nVue.use(Main)\nVue.use(Col)\nVue.use(Row)\nVue.use(Dialog)\nVue.use(Loading)\nVue.component(Message.name, Message)\n\nVue.prototype.$loading = Loading.service\nVue.prototype.$message = Message\n","import CodeMirror from \"codemirror/lib/codemirror\";\n(function () {\n CodeMirror.extendMode('css', {\n commentStart: '/*',\n commentEnd: '*/',\n newlineAfterToken: function (type, content) {\n return /^[;{}]$/.test(content)\n }\n })\n\n // Comment/uncomment the specified range\n CodeMirror.defineExtension('commentRange', function (isComment, from, to) {\n var cm = this;\n var curMode = CodeMirror.innerMode(cm.getMode(), cm.getTokenAt(from).state).mode\n cm.operation(function () {\n if (isComment) { // Comment range\n cm.replaceRange(curMode.commentEnd, to)\n cm.replaceRange(curMode.commentStart, from)\n if (from.line == to.line && from.ch == to.ch) // An empty comment inserted - put cursor inside\n {\n cm.setCursor(from.line, from.ch + curMode.commentStart.length)\n }\n } else { // Uncomment range\n var selText = cm.getRange(from, to)\n var startIndex = selText.indexOf(curMode.commentStart)\n var endIndex = selText.lastIndexOf(curMode.commentEnd)\n if (startIndex > -1 && endIndex > -1 && endIndex > startIndex) {\n // Take string till comment start\n selText = selText.substr(0, startIndex) +\n // From comment start till comment end\n selText.substring(startIndex + curMode.commentStart.length, endIndex) +\n // From comment end till string end\n selText.substr(endIndex + curMode.commentEnd.length)\n }\n cm.replaceRange(selText, from, to)\n }\n })\n })\n\n // Applies automatic mode-aware indentation to the specified range\n CodeMirror.defineExtension('autoIndentRange', function (from, to) {\n var cmInstance = this\n this.operation(function () {\n for (var i = from.line; i <= to.line; i++) {\n cmInstance.indentLine(i, 'smart')\n }\n })\n })\n\n // Applies automatic formatting to the specified range\n CodeMirror.defineExtension('autoFormatRange', function (from, to) {\n var cm = this\n var outer = cm.getMode();\n var text = cm.getRange(from, to).split('\\n')\n var state = CodeMirror.copyState(outer, cm.getTokenAt(from).state)\n var tabSize = cm.getOption('tabSize')\n\n var out = '';\n var lines = 0;\n var atSol = from.ch == 0\n\n function newline() {\n out += '\\n'\n atSol = true\n ++lines\n }\n\n for (var i = 0; i < text.length; ++i) {\n var stream = new CodeMirror.StringStream(text[i], tabSize)\n while (!stream.eol()) {\n var inner = CodeMirror.innerMode(outer, state)\n var style = outer.token(stream, state);\n var cur = stream.current()\n stream.start = stream.pos\n if (!atSol || /\\S/.test(cur)) {\n out += cur\n atSol = false\n }\n if (!atSol && inner.mode.newlineAfterToken &&\n inner.mode.newlineAfterToken(style, cur, stream.string.slice(stream.pos) || text[i + 1] || '', inner.state)) {\n newline()\n }\n }\n if (!stream.pos && outer.blankLine) outer.blankLine(state)\n if (!atSol) newline()\n }\n\n cm.operation(function () {\n cm.replaceRange(out, from, to)\n for (var cur = from.line + 1, end = from.line + lines; cur <= end; ++cur) {\n cm.indentLine(cur, 'smart')\n }\n cm.setSelection(from, cm.getCursor(false))\n })\n })\n})()\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\nimport CodeMirror from \"codemirror/lib/codemirror\";\n(function (CodeMirror) {\n var defaults = {\n pairs: \"()[]{}''\\\"\\\"\",\n closeBefore: \")]}'\\\":;>\",\n triples: \"\",\n explode: \"[]{}\"\n };\n\n var Pos = CodeMirror.Pos;\n\n CodeMirror.defineOption(\"autoCloseBrackets\", false, function (cm, val, old) {\n if (old && old != CodeMirror.Init) {\n cm.removeKeyMap(keyMap);\n cm.state.closeBrackets = null;\n }\n if (val) {\n ensureBound(getOption(val, \"pairs\"));\n cm.state.closeBrackets = val;\n cm.addKeyMap(keyMap);\n }\n });\n\n function getOption(conf, name) {\n if (name == \"pairs\" && typeof conf == \"string\") return conf;\n if (typeof conf == \"object\" && conf[name] != null) return conf[name];\n return defaults[name];\n }\n\n var keyMap = {\n Backspace: handleBackspace,\n Enter: handleEnter\n };\n\n function ensureBound(chars) {\n for (var i = 0; i < chars.length; i++) {\n var ch = chars.charAt(i),\n key = \"'\" + ch + \"'\";\n if (!keyMap[key]) keyMap[key] = handler(ch);\n }\n }\n ensureBound(defaults.pairs + \"`\");\n\n function handler(ch) {\n return function (cm) {\n return handleChar(cm, ch);\n };\n }\n\n function getConfig(cm) {\n var deflt = cm.state.closeBrackets;\n if (!deflt || deflt.override) return deflt;\n var mode = cm.getModeAt(cm.getCursor());\n return mode.closeBrackets || deflt;\n }\n\n function handleBackspace(cm) {\n var conf = getConfig(cm);\n if (!conf || cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n\n var pairs = getOption(conf, \"pairs\");\n var ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) return CodeMirror.Pass;\n var around = charsAround(cm, ranges[i].head);\n if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass;\n }\n for (var i = ranges.length - 1; i >= 0; i--) {\n var cur = ranges[i].head;\n cm.replaceRange(\n \"\",\n Pos(cur.line, cur.ch - 1),\n Pos(cur.line, cur.ch + 1),\n \"+delete\"\n );\n }\n }\n\n function handleEnter(cm) {\n var conf = getConfig(cm);\n var explode = conf && getOption(conf, \"explode\");\n if (!explode || cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n\n var ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) return CodeMirror.Pass;\n var around = charsAround(cm, ranges[i].head);\n if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass;\n }\n cm.operation(function () {\n var linesep = cm.lineSeparator() || \"\\n\";\n cm.replaceSelection(linesep + linesep, null);\n cm.execCommand(\"goCharLeft\");\n ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++) {\n var line = ranges[i].head.line;\n cm.indentLine(line, null, true);\n cm.indentLine(line + 1, null, true);\n }\n });\n }\n\n function contractSelection(sel) {\n var inverted = CodeMirror.cmpPos(sel.anchor, sel.head) > 0;\n return {\n anchor: new Pos(sel.anchor.line, sel.anchor.ch + (inverted ? -1 : 1)),\n head: new Pos(sel.head.line, sel.head.ch + (inverted ? 1 : -1))\n };\n }\n\n function handleChar(cm, ch) {\n var conf = getConfig(cm);\n if (!conf || cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n\n var pairs = getOption(conf, \"pairs\");\n var pos = pairs.indexOf(ch);\n if (pos == -1) return CodeMirror.Pass;\n\n var closeBefore = getOption(conf, \"closeBefore\");\n\n var triples = getOption(conf, \"triples\");\n\n var identical = pairs.charAt(pos + 1) == ch;\n var ranges = cm.listSelections();\n var opening = pos % 2 == 0;\n\n var type;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i],\n cur = range.head,\n curType;\n var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1));\n if (opening && !range.empty()) {\n curType = \"surround\";\n } else if ((identical || !opening) && next == ch) {\n if (identical && stringStartsAfter(cm, cur)) curType = \"both\";\n else if (\n triples.indexOf(ch) >= 0 &&\n cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == ch + ch + ch\n )\n curType = \"skipThree\";\n else curType = \"skip\";\n } else if (\n identical &&\n cur.ch > 1 &&\n triples.indexOf(ch) >= 0 &&\n cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch\n ) {\n if (\n cur.ch > 2 &&\n /\\bstring/.test(cm.getTokenTypeAt(Pos(cur.line, cur.ch - 2)))\n )\n return CodeMirror.Pass;\n curType = \"addFour\";\n } else if (identical) {\n var prev =\n cur.ch == 0 ? \" \" : cm.getRange(Pos(cur.line, cur.ch - 1), cur);\n if (\n !CodeMirror.isWordChar(next) &&\n prev != ch &&\n !CodeMirror.isWordChar(prev)\n )\n curType = \"both\";\n else return CodeMirror.Pass;\n } else if (\n opening &&\n (next.length === 0 || /\\s/.test(next) || closeBefore.indexOf(next) > -1)\n ) {\n curType = \"both\";\n } else {\n return CodeMirror.Pass;\n }\n if (!type) type = curType;\n else if (type != curType) return CodeMirror.Pass;\n }\n\n var left = pos % 2 ? pairs.charAt(pos - 1) : ch;\n var right = pos % 2 ? ch : pairs.charAt(pos + 1);\n cm.operation(function () {\n if (type == \"skip\") {\n cm.execCommand(\"goCharRight\");\n } else if (type == \"skipThree\") {\n for (var i = 0; i < 3; i++) cm.execCommand(\"goCharRight\");\n } else if (type == \"surround\") {\n var sels = cm.getSelections();\n for (var i = 0; i < sels.length; i++) sels[i] = left + sels[i] + right;\n cm.replaceSelections(sels, \"around\");\n sels = cm.listSelections().slice();\n for (var i = 0; i < sels.length; i++)\n sels[i] = contractSelection(sels[i]);\n cm.setSelections(sels);\n } else if (type == \"both\") {\n cm.replaceSelection(left + right, null);\n cm.triggerElectric(left + right);\n cm.execCommand(\"goCharLeft\");\n } else if (type == \"addFour\") {\n cm.replaceSelection(left + left + left + left, \"before\");\n cm.execCommand(\"goCharRight\");\n }\n });\n }\n\n function charsAround(cm, pos) {\n var str = cm.getRange(Pos(pos.line, pos.ch - 1), Pos(pos.line, pos.ch + 1));\n return str.length == 2 ? str : null;\n }\n\n function stringStartsAfter(cm, pos) {\n var token = cm.getTokenAt(Pos(pos.line, pos.ch + 1));\n return (\n /\\bstring/.test(token.type) &&\n token.start == pos.ch &&\n (pos.ch == 0 || !/\\bstring/.test(cm.getTokenTypeAt(pos)))\n );\n }\n})(CodeMirror);\n","import Vue from 'vue'\nimport App from './App.vue'\nimport store from './store'\nimport ElementUI from 'element-ui'\nimport 'element-ui/lib/theme-chalk/index.css'\nimport './plugins/element'\nimport 'codemirror/lib/codemirror.css';\nimport 'codemirror/theme/ambiance.css';\nimport 'codemirror/theme/xq-light.css';\nimport 'codemirror/mode/css/css'\nimport 'codemirror/mode/markdown/markdown'\nimport 'codemirror/addon/edit/matchbrackets'\nimport 'codemirror/addon/selection/active-line'\nimport 'codemirror/addon/hint/show-hint.js'\nimport 'codemirror/addon/hint/css-hint.js'\nimport './assets/less/theme.less';\n// 对codemirror预处理\nimport './assets/scripts/format'\nimport './assets/scripts/closebrackets'\nVue.use(ElementUI)\n\nVue.config.productionTip = false\n\nnew Vue({\n store,\n render: h => h(App)\n}).$mount('#app')\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./resetDialog.vue?vue&type=style&index=0&id=0facc8d4&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./resetDialog.vue?vue&type=style&index=0&id=0facc8d4&lang=less&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./insertForm.vue?vue&type=style&index=0&lang=less&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./insertForm.vue?vue&type=style&index=0&lang=less&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"loading\",attrs:{\"id\":\"loading\"}},[_c('div',{staticClass:\"loading-wrapper\"},[_c('div',{staticClass:\"loading-anim\"}),_c('div',{staticClass:\"loading-text\"},[_vm._v(\"致力于让 Markdown 编辑更简单\")])])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodemirrorEditor.vue?vue&type=style&index=1&lang=less&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodemirrorEditor.vue?vue&type=style&index=1&lang=less&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./uploadImgDialog.vue?vue&type=style&index=0&id=4bde134e&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./uploadImgDialog.vue?vue&type=style&index=0&id=4bde134e&lang=less&scoped=true&\"","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=6f36a3b6&lang=scss&scoped=true&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=6f36a3b6&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodemirrorEditor.vue?vue&type=style&index=0&id=26d55444&lang=less&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodemirrorEditor.vue?vue&type=style&index=0&id=26d55444&lang=less&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loading.vue?vue&type=style&index=0&id=31c61828&lang=less&scoped=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loading.vue?vue&type=style&index=0&id=31c61828&lang=less&scoped=true&\""],"sourceRoot":""}