diff --git a/css/app.315a838f.css b/css/app.af80b787.css
similarity index 84%
rename from css/app.315a838f.css
rename to css/app.af80b787.css
index b398b1a..7dbf0b7 100644
--- a/css/app.315a838f.css
+++ b/css/app.af80b787.css
@@ -1,4 +1,4 @@
#app,body,html{margin:0;padding:0;height:100%;width:100%}.cm-s-style-mirror.CodeMirror{color:#444;font-size:16px;line-height:25px}.cm-s-style-mirror .CodeMirror-scroll{padding:20px;width:100%;box-sizing:border-box;overflow-x:hidden!important;overflow-y:scroll!important}.cm-s-style-mirror div.CodeMirror-selected{background:#e0e0e0}.cm-s-style-mirror .CodeMirror-line::selection,.cm-s-style-mirror .CodeMirror-line>span::selection,.cm-s-style-mirror .CodeMirror-line>span>span::selection{background:#e0e0e0}.cm-s-style-mirror .CodeMirror-line::-moz-selection,.cm-s-style-mirror .CodeMirror-line>span::-moz-selection,.cm-s-style-mirror .CodeMirror-line>span>span::-moz-selection{background:#e0e0e0}.cm-s-style-mirror .CodeMirror-gutters{background:#f5f5f5;border-right:0}.cm-s-style-mirror .CodeMirror-guttermarker{color:#ac4142}.cm-s-style-mirror .CodeMirror-guttermarker-subtle,.cm-s-style-mirror .CodeMirror-linenumber{color:#b0b0b0}.cm-s-style-mirror .CodeMirror-cursor{border-left:1px solid #505050}.cm-s-style-mirror span.cm-comment{color:green}.cm-s-style-mirror span.cm-atom,.cm-s-style-mirror span.cm-number{color:#aa759f}.cm-s-style-mirror span.cm-attribute,.cm-s-style-mirror span.cm-property{color:#90a959}.cm-s-style-mirror span.cm-keyword{color:#023a52}.cm-s-style-mirror span.cm-string{color:#e46918}.cm-s-style-mirror span.cm-variable{color:#90a959}.cm-s-style-mirror span.cm-variable-2{color:#00695f}.cm-s-style-mirror span.cm-variable-3{color:#2e6e8a}.cm-s-style-mirror span.cm-def{color:#d28445}.cm-s-style-mirror span.cm-bracket{color:#202020}.cm-s-style-mirror span.cm-tag{color:#000}.cm-s-style-mirror span.cm-link{color:#b26a00}.cm-s-style-mirror span.cm-error{text-decoration:underline;-webkit-text-decoration-style:wavy;text-decoration-style:wavy;-webkit-text-decoration-color:#df8d8e;text-decoration-color:#df8d8e}.cm-s-style-mirror .CodeMirror-activeline-background{background:#dddcdc}.cm-s-style-mirror .CodeMirror-matchingbracket{color:#202020!important;background-color:rgba(0,0,0,.1)!important}
-/*! Color themes for Google Code Prettify | MIT License | github.com/jmblog/color-themes-for-google-code-prettify */.prettyprint{font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#333}ol.linenums{margin-top:0;margin-bottom:0;color:#ccc}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#fff;list-style-type:decimal}@media screen{.str{color:#183691}.kwd{color:#a71d5d}.com{color:#969896}.lit,.typ{color:#0086b3}.clo,.opn,.pun{color:#333}.tag{color:navy}.atn{color:#795da3}.atv{color:#183691}.dec{color:#333}.var{color:teal}.fun{color:#900}}.container_night,.container_night .el-main{background-color:#333}.container_night .CodeMirror{caret-color:grey;color:grey;background-color:#1e1e1e;box-shadow:inset 0 0 0 1px rgba(100,37,37,.102)}.container_night .output_night .preview{background-color:#1e1e1e;box-shadow:0 0 70px rgba(0,0,0,.3)}.container_night .output_night .preview-wrapper{background-color:#1e1e1e;box-shadow:inset 0 0 0 1px hsla(0,4.3%,91%,.102)}.container_night .output_night .code-snippet__fix{background-color:#eee}.container_night .cm-s-style-mirror .CodeMirror-matchingbracket{color:#f0f0f0!important;background:#1e1e1e!important}.container_night .cm-s-style-mirror span.cm-tag,.container_night .cm-s-xq-light span.cm-variable-2{color:grey}.container_night .cm-s-xq-light .CodeMirror-activeline-background{background-color:initial}.container_night .cm-s-xq-light span.cm-string{color:#8e9eb9}.container_night .cm-s-xq-light span.cm-link{color:#84868b}.container_night .editor__header{background-color:#3c3c3c}.container_night .el-button{color:#f0f0f0;background-color:#1e1e1e;border:1px solid transparent}.container_night .el-button.is-plain:focus,.container_night .el-button.is-plain:hover{background:#1e1e1e;color:#f0f0f0;border:1px solid #f0f0f0}.container_night .el-button.is-plain:focus i,.container_night .el-button.is-plain:hover i{color:#f0f0f0}.container_night .about__dialog .el-dialog,.container_night .insert__dialog .el-dialog,.container_night .reset__dialog .el-dialog,.container_night .upload__dialog .el-dialog{background-color:#333}.container_night .about__dialog .el-dialog__body,.container_night .about__dialog .el-dialog__title,.container_night .about__dialog .el-form-item__label,.container_night .insert__dialog .el-dialog__body,.container_night .insert__dialog .el-dialog__title,.container_night .insert__dialog .el-form-item__label,.container_night .reset__dialog .el-dialog__body,.container_night .reset__dialog .el-dialog__title,.container_night .reset__dialog .el-form-item__label,.container_night .upload__dialog .el-dialog__body,.container_night .upload__dialog .el-dialog__title,.container_night .upload__dialog .el-form-item__label{color:#f0f0f0}.container_night .about__dialog .el-tabs__item,.container_night .insert__dialog .el-tabs__item,.container_night .reset__dialog .el-tabs__item,.container_night .upload__dialog .el-tabs__item{color:grey}.container_night .about__dialog .el-tabs__nav-wrap:after,.container_night .insert__dialog .el-tabs__nav-wrap:after,.container_night .reset__dialog .el-tabs__nav-wrap:after,.container_night .upload__dialog .el-tabs__nav-wrap:after{background-color:#84868b}.container_night .about__dialog .is-active,.container_night .insert__dialog .is-active,.container_night .reset__dialog .is-active,.container_night .upload__dialog .is-active{color:#f0f0f0}.container_night .about__dialog .el-upload-dragger,.container_night .insert__dialog .el-upload-dragger,.container_night .reset__dialog .el-upload-dragger,.container_night .upload__dialog .el-upload-dragger{background-color:#1e1e1e}.container_night .el-icon-document,.container_night .el-icon-download,.container_night .el-icon-refresh,.container_night .el-icon-s-grid,.container_night ::v-deep .el-icon-upload{color:#f0f0f0}.container_night ::-webkit-scrollbar{background-color:#1e1e1e}.CodeMirror{padding-bottom:0;height:100%!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);font-size:14px;font-family:PingFang SC,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif!important}.CodeMirror-vscrollbar:focus{outline:none}.CodeMirror-scroll{padding:0 20px;overflow-x:hidden!important;overflow-y:scroll!important}.CodeMirror-vscrollbar{width:0;height:0}.CodeMirror-wrap{padding-top:20px;padding-bottom:20px;box-sizing:border-box}.rich_media_content .code-snippet *,.rich_media_content .code-snippet__wechat *{max-width:1000%!important}.code-snippet__wechat{word-wrap:break-word!important;font-size:14px;margin:10px 8px;color:#333;position:relative;background-color:rgba(27,31,35,.05);border:1px solid #f0f0f0;border-radius:2px;display:-webkit-box;display:-webkit-flex;display:flex;line-height:24px}.code-snippet__wechat .code-snippet__line-index{counter-reset:line;-webkit-flex-shrink:0;flex-shrink:0;height:100%;padding:1em;list-style-type:none}.code-snippet__wechat .code-snippet__line-index li{list-style-type:none;text-align:right}.code-snippet__wechat .code-snippet__line-index li:before{min-width:1.5em;text-align:right;left:-2.5em;counter-increment:line;content:counter(line);display:inline;color:rgba(0,0,0,.15)}.code-snippet__wechat pre{overflow-x:auto;padding:1em 1em 1em 1em;white-space:normal;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-overflow-scrolling:touch}.code-snippet__wechat code{text-align:left;font-size:14px;white-space:pre;display:-webkit-box;display:-webkit-flex;display:flex;position:relative;font-family:Consolas,Liberation Mono,Menlo,Courier,monospace}.code-snippet__wechat ul li{list-style:none}.code-snippet__github{display:-webkit-box;display:-webkit-flex;display:flex;font-size:12px;margin:10px 8px;position:relative;height:auto;background-color:#f7f7f7;border-radius:8px}.code-snippet__github .code-snippet__line-index{display:none}.code-snippet__github .code__pre{display:grid;position:relative;counter-reset:line;overflow-x:auto;padding:1em;white-space:normal;-webkit-box-flex:1;-webkit-flex:1;flex:1;line-height:20px;font-family:Operator Mono,Consolas,Monaco,Menlo,monospace;-webkit-overflow-scrolling:touch}.code-snippet__github pre{display:inline-block;font-size:12px}.code-snippet__github code{display:-webkit-box;display:-webkit-flex;display:flex;position:relative;padding-right:8px;text-align:left;white-space:pre;font-family:Consolas,Liberation Mono,Menlo,Courier,monospace}.code-snippet__github code:before{display:none}.code-snippet__github ul li{list-style:none}::-webkit-scrollbar{width:6px;height:6px;background-color:#fff}::-webkit-scrollbar-track{border-radius:6px;background-color:hsla(0,0%,78.4%,.3)}::-webkit-scrollbar-thumb{border-radius:6px;-webkit-transition:background-color .3s;transition:background-color .3s}::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background-color:rgba(144,146,152,.5)}.CodeMirror-hints{position:absolute;z-index:10;overflow:hidden;list-style:none;margin:0;padding:2px;border-radius:4px;background-color:#fff;box-shadow:0 4px 8px 0 rgba(0,0,0,.12),0 2px 4px 0 rgba(0,0,0,.08);min-width:200px;font-size:12px;font-family:monospace;max-height:20em;overflow-y:auto;color:#333}.CodeMirror-hint{margin:0;margin-top:10px;padding:4px 6px;border-radius:2px;white-space:pre;color:#000;cursor:pointer}.CodeMirror-hint:first-of-type{margin-top:0}.CodeMirror-hint:hover{background:#f0f0f0}.loading-wrapper[data-v-a205efe8]{position:fixed;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.loading[data-v-a205efe8]{text-align:center;position:fixed;width:100%;height:100%;overflow:hidden;z-index:99999;background-color:#f2f2f2}.loading_night[data-v-a205efe8]{background-color:#303133}.loading-text[data-v-a205efe8]{font-size:18px;font-weight:700;margin-top:26px;color:#303133}.loading-anim[data-v-a205efe8]{display:inline-block;width:100px;height:100px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAt1BMVEX///8AAABIz0hHzkdIzkhIz0hIz0hHzkdIzkhFz0VAz0BHzUdIz0hHzkdIzkhIzUhHzUdHzUdIzkhEzEREzERGz0ZIz0hHzUdIzkhIzUhHzkdHzkdHzUdGz0ZIzkhHzkdKzkpIzUhGzUZD00NIzUhGzUZIzkhIzkhHzkdHzkdIzkhHz0dIzUhK1UpHzUdC0EJHzkdHzkdIz0hH1UdHzUdGzkZIzUhJ20lD10NJzklIzkhIzkj////r6/fCAAAAO3RSTlMAACDvoEBg0MAwEI9fz9+A8JDgDx5Ff/r9i+VdbHSDkx9RTRdce+6q6brLb58YSBvtd0oScFTxBxM/v5xq7LMAAAABYktHRACIBR1IAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4wwcCBssFsYwawAAAe9JREFUaN7t2tlywiAUBmABiQY1W6vWbna1i6Z2sYs97/9eNcQ6U40kEMhoh/824qeAxwSo1Wx2MUgimAAQLNNCAanDInWzCAUeahRxUsQx212NxGgaHhMq21sqCHIpdZFpRDoW2ROEtdpY/S1xu8XyEdZZ/BA8VcNbNO6wPIQbAK6akZa2v0rWN0mLk6+G+Gnr3O5qgnR1EjfOQviHCRS7yw02uyELwWGkbHAlCnGR3wkuM4WxLSuGkQNfmLYW5BDE8fUgXcHVXv9oYB45PoGBeQSd5ioaEHSWp+hA0DkMzSNoKFZKI78zuWsQuaA8l3BlEFnm2iL/FrlpZqanFbntZxmjO73IfdbVh31ERjQjj1LImEyYGMn+9xUjbELGKyRObviJI57CTzBdu/b8Ip7CDkkeQuIlQrffY5dB0rtvuqvINHnpqwISR8nTQsExSWbVW7ExSZ4jong1u2ZByJDu7kKsHszkCqQCIl+FLbKLyPtaefwwgWxEP2LvVixiEYtoQgqlHPJJC+XLLqoZRsyvpuKJB0R9XZiA18pfF+Yr3KqKS4qtcFeyVl/FrgNrlN8/aeTun3AlUh34aMPYsqcVOmWmsBMyW1Ysooi487nx/fhKThbwDdVvs0glpz0qObdSyQkchAOAQOUskU3h/AAe7qmqtAqp/QAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0xMi0yOFQwODoyNzo0NCswMDowMPJYdAwAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMTItMjhUMDg6Mjc6NDQrMDA6MDCDBcywAAAAAElFTkSuQmCC) no-repeat;background-size:cover}[data-v-68392714] .el-dialog{min-width:440px}.dialog-footer[data-v-68392714],.reset__dialog[data-v-68392714],.text[data-v-68392714]{text-align:center}.editor__header[data-v-268e83f5]{width:100%}.header__item[data-v-268e83f5]{margin:0 3px}.header__item_last[data-v-268e83f5]{margin-right:8px}.header__switch[data-v-268e83f5]{margin-left:8px}.mode__switch[data-v-268e83f5]{margin-left:24px;margin-right:24px;width:24px;height:24px;background:url(data:image/png;base64,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) no-repeat;background-size:cover;-webkit-transition:all .3s;transition:all .3s}.mode__switch_black[data-v-268e83f5]{background:url(data:image/png;base64,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) no-repeat;background-size:cover}.top[data-v-268e83f5]{height:60px;padding:10px 20px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;margin-right:0}.el-select[data-v-268e83f5]{margin-right:12px}.left-side[data-v-268e83f5]{-webkit-box-flex:1;-webkit-flex:1;flex:1}.left-side[data-v-268e83f5],.right-side[data-v-268e83f5]{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.select-item-left[data-v-268e83f5]{float:left}.select-item-right[data-v-268e83f5]{float:right;color:#8492a6;font-size:13px}[data-v-70c50907] .el-dialog{min-width:420px}[data-v-4dd4e7e2] .el-dialog{width:55%;min-height:375px;min-width:440px}.tb-options[data-v-4dd4e7e2]{margin-bottom:20px}.input-table[data-v-4dd4e7e2] .el-input__inner{border-radius:0}.head-style[data-v-4dd4e7e2] .el-input__inner{background-color:#f2f2f2}.menu[data-v-6002a51a]{position:absolute;border-radius:4px;background-color:#fff;box-shadow:0 4px 8px 0 rgba(0,0,0,.12),0 2px 4px 0 rgba(0,0,0,.08);z-index:9999}.menu_item[data-v-6002a51a]{margin-top:10px;min-width:200px;font-size:12px;line-height:20px;color:#333;cursor:pointer}.menu_item[data-v-6002a51a]:first-of-type{margin-top:0}.menu_item[data-v-6002a51a]:hover{background:#f0f0f0}.menu_item .btn-upload[data-v-6002a51a],.menu_item span[data-v-6002a51a]{display:inline-block;padding:4px 0;padding-left:24px;width:100%}.menu_item .btn-upload[data-v-6002a51a]{margin:0;border:none;outline:none;background:transparent}.menu_item .btn-upload[data-v-6002a51a]:hover{background:#aaa}.menu_item[data-v-6002a51a] .el-upload{width:100%}.menu__group[data-v-6002a51a]{padding-top:6px;padding-bottom:6px;border-bottom:1px solid #eee}.menu__group[data-v-6002a51a]:last-of-type{border-bottom:none}li[data-v-6002a51a]:hover{background-color:#1790ff}li[data-v-6002a51a]{font-size:15px;list-style:none}[data-v-fc5ed8b0] .el-dialog{width:55%;min-height:615px;min-width:640px}[data-v-fc5ed8b0] .el-upload-dragger{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column;flex-flow:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;width:500px;height:360px}[data-v-fc5ed8b0] .el-upload-dragger .el-icon-upload{margin-top:0}[data-v-fc5ed8b0] .el-dialog__body{padding-bottom:50px}.upload-panel[data-v-fc5ed8b0]{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;text-align:center}.upload-panel .el-select[data-v-fc5ed8b0]{-webkit-align-self:flex-end;align-self:flex-end;margin:0 67.75px 20px;width:100px}.github-panel[data-v-fc5ed8b0]{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.setting-form[data-v-fc5ed8b0]{width:100%}.setting-form .el-form-item[data-v-fc5ed8b0]{margin:15px}.setting-form .el-form-item[data-v-fc5ed8b0]:last-child{text-align:right}.editor__header[data-v-0152319a]{padding:0}.main-body[data-v-0152319a]{padding-top:12px;overflow:hidden}.el-main[data-v-0152319a]{padding:0;margin:20px;margin-top:0}.container[data-v-0152319a],.el-main[data-v-0152319a]{-webkit-transition:all .3s;transition:all .3s}.textarea-wrapper[data-v-0152319a]{height:100%}.preview-wrapper_night[data-v-0152319a]{overflow-y:inherit;position:relative;left:-3px}.preview-wrapper_night .preview[data-v-0152319a]{background-color:#fff}#output-wrapper[data-v-0152319a]{position:relative;-webkit-user-select:text;user-select:text}.loading-mask[data-v-0152319a]{top:50%;width:376px;height:101%;padding-top:1px;font-size:15px;color:grey;background-color:#1e1e1e}.loading-mask .loading__img[data-v-0152319a],.loading-mask[data-v-0152319a]{position:absolute;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.loading-mask .loading__img[data-v-0152319a]{top:330px;width:50px;height:50px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAt1BMVEX///8AAABIz0hHzkdIzkhIz0hIz0hHzkdIzkhFz0VAz0BHzUdIz0hHzkdIzkhIzUhHzUdHzUdIzkhEzEREzERGz0ZIz0hHzUdIzkhIzUhHzkdHzkdHzUdGz0ZIzkhHzkdKzkpIzUhGzUZD00NIzUhGzUZIzkhIzkhHzkdHzkdIzkhHz0dIzUhK1UpHzUdC0EJHzkdHzkdIz0hH1UdHzUdGzkZIzUhJ20lD10NJzklIzkhIzkj////r6/fCAAAAO3RSTlMAACDvoEBg0MAwEI9fz9+A8JDgDx5Ff/r9i+VdbHSDkx9RTRdce+6q6brLb58YSBvtd0oScFTxBxM/v5xq7LMAAAABYktHRACIBR1IAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4wwcCBssFsYwawAAAe9JREFUaN7t2tlywiAUBmABiQY1W6vWbna1i6Z2sYs97/9eNcQ6U40kEMhoh/824qeAxwSo1Wx2MUgimAAQLNNCAanDInWzCAUeahRxUsQx212NxGgaHhMq21sqCHIpdZFpRDoW2ROEtdpY/S1xu8XyEdZZ/BA8VcNbNO6wPIQbAK6akZa2v0rWN0mLk6+G+Gnr3O5qgnR1EjfOQviHCRS7yw02uyELwWGkbHAlCnGR3wkuM4WxLSuGkQNfmLYW5BDE8fUgXcHVXv9oYB45PoGBeQSd5ioaEHSWp+hA0DkMzSNoKFZKI78zuWsQuaA8l3BlEFnm2iL/FrlpZqanFbntZxmjO73IfdbVh31ERjQjj1LImEyYGMn+9xUjbELGKyRObviJI57CTzBdu/b8Ip7CDkkeQuIlQrffY5dB0rtvuqvINHnpqwISR8nTQsExSWbVW7ExSZ4jong1u2ZByJDu7kKsHszkCqQCIl+FLbKLyPtaefwwgWxEP2LvVixiEYtoQgqlHPJJC+XLLqoZRsyvpuKJB0R9XZiA18pfF+Yr3KqKS4qtcFeyVl/FrgNrlN8/aeTun3AlUh34aMPYsqcVOmWmsBMyW1Ysooi487nx/fhKThbwDdVvs0glpz0qObdSyQkchAOAQOUskU3h/AAe7qmqtAqp/QAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0xMi0yOFQwODoyNzo0NCswMDowMPJYdAwAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMTItMjhUMDg6Mjc6NDQrMDA6MDCDBcywAAAAAElFTkSuQmCC) no-repeat;background-size:cover}.loading-mask span[data-v-0152319a]{position:absolute;left:50%;top:390px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.bounceInRight[data-v-0152319a]{-webkit-animation-name:bounceInRight-data-v-0152319a;animation-name:bounceInRight-data-v-0152319a;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}[data-v-0152319a] .preview-table{border-spacing:0}@-webkit-keyframes bounceInRight-data-v-0152319a{0%,60%,75%,90%,to{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInRight-data-v-0152319a{0%,60%,75%,90%,to{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}[data-v-0152319a]{box-sizing:border-box;margin:0;padding:0}button[data-v-0152319a],input[data-v-0152319a],textarea[data-v-0152319a]{font-family:inherit}h1[data-v-0152319a],h2[data-v-0152319a],h3[data-v-0152319a],h4[data-v-0152319a],h5[data-v-0152319a],h6[data-v-0152319a]{font-weight:400}em[data-v-0152319a]{font-style:normal!important}body[data-v-0152319a],html[data-v-0152319a]{height:100%;font-family:PingFang SC,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}.el-message__icon[data-v-0152319a]{display:none}.container[data-v-0152319a]{height:100%;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.web-title[data-v-0152319a]{margin:0 15px 0 5px}.web-icon[data-v-0152319a]{width:auto;height:1.5rem;vertical-align:middle}#editor[data-v-0152319a]{height:100%;display:block;border:none;width:100%;padding:10px}section[data-v-0152319a]{height:100%}.main-body[data-v-0152319a]{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;padding-top:0}.ctrl[data-v-0152319a]{-webkit-flex-basis:60px;flex-basis:60px;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;-webkit-flex-shrink:1;flex-shrink:1}.ctrl[data-v-0152319a],.preview-wrapper[data-v-0152319a]{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.preview-wrapper[data-v-0152319a]{box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);padding:0;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;word-break:break-all;overflow-y:scroll}.main-section[data-v-0152319a]{display:-webkit-box;display:-webkit-flex;display:flex;height:100%}.hint[data-v-0152319a]{opacity:.6;margin:20px 0}.preview[data-v-0152319a]{position:relative;margin:0 -20px;width:375px;padding:20px;font-size:14px;box-sizing:border-box;outline:none;box-shadow:0 0 60px rgba(0,0,0,.1)}.preview table[data-v-0152319a]{margin-bottom:10px;border-collapse:collapse;display:table;width:100%!important}.el-form-item[data-v-0152319a]{margin-bottom:0!important}.el-tooltip[data-v-0152319a]{cursor:pointer}uni-page-body[data-v-0152319a],uni-page-refresh[data-v-0152319a]{display:block;box-sizing:border-box;width:100%;height:100%}.fade-enter[data-v-8e90ad4c],.fade-leave-to[data-v-8e90ad4c]{opacity:0}.fade-enter-to[data-v-8e90ad4c],.fade-leave[data-v-8e90ad4c]{opacity:1}.fade-enter-active[data-v-8e90ad4c],.fade-leave-active[data-v-8e90ad4c]{-webkit-transition:all 1s;transition:all 1s}
-/*# sourceMappingURL=app.315a838f.css.map */
\ No newline at end of file
+/*! Color themes for Google Code Prettify | MIT License | github.com/jmblog/color-themes-for-google-code-prettify */.prettyprint{font-family:Menlo,Bitstream Vera Sans Mono,DejaVu Sans Mono,Monaco,Consolas,monospace;border:0!important}.pln{color:#333}ol.linenums{margin-top:0;margin-bottom:0;color:#ccc}li.L0,li.L1,li.L2,li.L3,li.L4,li.L5,li.L6,li.L7,li.L8,li.L9{padding-left:1em;background-color:#fff;list-style-type:decimal}@media screen{.str{color:#183691}.kwd{color:#a71d5d}.com{color:#969896}.lit,.typ{color:#0086b3}.clo,.opn,.pun{color:#333}.tag{color:navy}.atn{color:#795da3}.atv{color:#183691}.dec{color:#333}.var{color:teal}.fun{color:#900}}.container_night,.container_night .el-main{background-color:#333}.container_night .CodeMirror{caret-color:grey;color:grey;background-color:#1e1e1e;box-shadow:inset 0 0 0 1px rgba(100,37,37,.102)}.container_night .output_night .preview{background-color:#1e1e1e;box-shadow:0 0 70px rgba(0,0,0,.3)}.container_night .output_night .preview-wrapper{background-color:#1e1e1e;box-shadow:inset 0 0 0 1px hsla(0,4.3%,91%,.102)}.container_night .output_night .code-snippet__fix{background-color:#eee}.container_night .cm-s-style-mirror .CodeMirror-matchingbracket{color:#f0f0f0!important;background:#1e1e1e!important}.container_night .cm-s-style-mirror span.cm-tag,.container_night .cm-s-xq-light span.cm-variable-2{color:grey}.container_night .cm-s-xq-light .CodeMirror-activeline-background{background-color:initial}.container_night .cm-s-xq-light span.cm-string{color:#8e9eb9}.container_night .cm-s-xq-light span.cm-link{color:#84868b}.container_night .editor__header{background-color:#3c3c3c}.container_night .el-button{color:#f0f0f0;background-color:#1e1e1e;border:1px solid transparent}.container_night .el-button.is-plain:focus,.container_night .el-button.is-plain:hover{background:#1e1e1e;color:#f0f0f0;border:1px solid #f0f0f0}.container_night .el-button.is-plain:focus i,.container_night .el-button.is-plain:hover i{color:#f0f0f0}.container_night .about__dialog .el-dialog,.container_night .insert__dialog .el-dialog,.container_night .reset__dialog .el-dialog,.container_night .upload__dialog .el-dialog{background-color:#333}.container_night .about__dialog .el-dialog__body,.container_night .about__dialog .el-dialog__title,.container_night .about__dialog .el-form-item__label,.container_night .insert__dialog .el-dialog__body,.container_night .insert__dialog .el-dialog__title,.container_night .insert__dialog .el-form-item__label,.container_night .reset__dialog .el-dialog__body,.container_night .reset__dialog .el-dialog__title,.container_night .reset__dialog .el-form-item__label,.container_night .upload__dialog .el-dialog__body,.container_night .upload__dialog .el-dialog__title,.container_night .upload__dialog .el-form-item__label{color:#f0f0f0}.container_night .about__dialog .el-tabs__item,.container_night .insert__dialog .el-tabs__item,.container_night .reset__dialog .el-tabs__item,.container_night .upload__dialog .el-tabs__item{color:grey}.container_night .about__dialog .el-tabs__nav-wrap:after,.container_night .insert__dialog .el-tabs__nav-wrap:after,.container_night .reset__dialog .el-tabs__nav-wrap:after,.container_night .upload__dialog .el-tabs__nav-wrap:after{background-color:#84868b}.container_night .about__dialog .is-active,.container_night .insert__dialog .is-active,.container_night .reset__dialog .is-active,.container_night .upload__dialog .is-active{color:#f0f0f0}.container_night .about__dialog .el-upload-dragger,.container_night .insert__dialog .el-upload-dragger,.container_night .reset__dialog .el-upload-dragger,.container_night .upload__dialog .el-upload-dragger{background-color:#1e1e1e}.container_night .el-icon-document,.container_night .el-icon-download,.container_night .el-icon-refresh,.container_night .el-icon-s-grid,.container_night ::v-deep .el-icon-upload{color:#f0f0f0}.container_night ::-webkit-scrollbar{background-color:#1e1e1e}.CodeMirror{padding-bottom:0;height:100%!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);font-size:14px;font-family:PingFang SC,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif!important}.CodeMirror-vscrollbar:focus{outline:none}.CodeMirror-scroll{padding:0 20px;overflow-x:hidden!important;overflow-y:scroll!important}.CodeMirror-vscrollbar{width:0;height:0}.CodeMirror-wrap{padding-top:20px;padding-bottom:20px;box-sizing:border-box}.rich_media_content .code-snippet *,.rich_media_content .code-snippet__wechat *{max-width:1000%!important}.code-snippet__wechat{word-wrap:break-word!important;font-size:14px;margin:10px 8px;color:#333;position:relative;background-color:rgba(27,31,35,.05);border:1px solid #f0f0f0;border-radius:2px;display:-webkit-box;display:-webkit-flex;display:flex;line-height:24px}.code-snippet__wechat .code-snippet__line-index{counter-reset:line;-webkit-flex-shrink:0;flex-shrink:0;height:100%;padding:1em;list-style-type:none}.code-snippet__wechat .code-snippet__line-index li{list-style-type:none;text-align:right}.code-snippet__wechat .code-snippet__line-index li:before{min-width:1.5em;text-align:right;left:-2.5em;counter-increment:line;content:counter(line);display:inline;color:rgba(0,0,0,.15)}.code-snippet__wechat pre{overflow-x:auto;padding:1em 1em 1em 1em;white-space:normal;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-overflow-scrolling:touch}.code-snippet__wechat code{text-align:left;font-size:14px;white-space:pre;display:-webkit-box;display:-webkit-flex;display:flex;position:relative;font-family:Consolas,Liberation Mono,Menlo,Courier,monospace}.code-snippet__wechat ul li{list-style:none}.code-snippet__github{display:-webkit-box;display:-webkit-flex;display:flex;font-size:12px;margin:10px 8px;position:relative;height:auto;background-color:#f7f7f7;border-radius:8px}.code-snippet__github .code-snippet__line-index{display:none}.code-snippet__github .code__pre{display:grid;position:relative;counter-reset:line;overflow-x:auto;padding:1em;white-space:normal;-webkit-box-flex:1;-webkit-flex:1;flex:1;line-height:20px;font-family:Operator Mono,Consolas,Monaco,Menlo,monospace;-webkit-overflow-scrolling:touch}.code-snippet__github pre{display:inline-block;font-size:12px}.code-snippet__github code{display:-webkit-box;display:-webkit-flex;display:flex;position:relative;padding-right:8px;text-align:left;white-space:pre;font-family:Consolas,Liberation Mono,Menlo,Courier,monospace}.code-snippet__github code:before{display:none}.code-snippet__github ul li{list-style:none}::-webkit-scrollbar{width:6px;height:6px;background-color:#fff}::-webkit-scrollbar-track{border-radius:6px;background-color:hsla(0,0%,78.4%,.3)}::-webkit-scrollbar-thumb{border-radius:6px;-webkit-transition:background-color .3s;transition:background-color .3s}::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background-color:rgba(144,146,152,.5)}.CodeMirror-hints{position:absolute;z-index:10;overflow:hidden;list-style:none;margin:0;padding:2px;border-radius:4px;background-color:#fff;box-shadow:0 4px 8px 0 rgba(0,0,0,.12),0 2px 4px 0 rgba(0,0,0,.08);min-width:200px;font-size:12px;font-family:monospace;max-height:20em;overflow-y:auto;color:#333}.CodeMirror-hint{margin:0;margin-top:10px;padding:4px 6px;border-radius:2px;white-space:pre;color:#000;cursor:pointer}.CodeMirror-hint:first-of-type{margin-top:0}.CodeMirror-hint:hover{background:#f0f0f0}.loading-wrapper[data-v-a205efe8]{position:fixed;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.loading[data-v-a205efe8]{text-align:center;position:fixed;width:100%;height:100%;overflow:hidden;z-index:99999;background-color:#f2f2f2}.loading_night[data-v-a205efe8]{background-color:#303133}.loading-text[data-v-a205efe8]{font-size:18px;font-weight:700;margin-top:26px;color:#303133}.loading-anim[data-v-a205efe8]{display:inline-block;width:100px;height:100px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAt1BMVEX///8AAABIz0hHzkdIzkhIz0hIz0hHzkdIzkhFz0VAz0BHzUdIz0hHzkdIzkhIzUhHzUdHzUdIzkhEzEREzERGz0ZIz0hHzUdIzkhIzUhHzkdHzkdHzUdGz0ZIzkhHzkdKzkpIzUhGzUZD00NIzUhGzUZIzkhIzkhHzkdHzkdIzkhHz0dIzUhK1UpHzUdC0EJHzkdHzkdIz0hH1UdHzUdGzkZIzUhJ20lD10NJzklIzkhIzkj////r6/fCAAAAO3RSTlMAACDvoEBg0MAwEI9fz9+A8JDgDx5Ff/r9i+VdbHSDkx9RTRdce+6q6brLb58YSBvtd0oScFTxBxM/v5xq7LMAAAABYktHRACIBR1IAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4wwcCBssFsYwawAAAe9JREFUaN7t2tlywiAUBmABiQY1W6vWbna1i6Z2sYs97/9eNcQ6U40kEMhoh/824qeAxwSo1Wx2MUgimAAQLNNCAanDInWzCAUeahRxUsQx212NxGgaHhMq21sqCHIpdZFpRDoW2ROEtdpY/S1xu8XyEdZZ/BA8VcNbNO6wPIQbAK6akZa2v0rWN0mLk6+G+Gnr3O5qgnR1EjfOQviHCRS7yw02uyELwWGkbHAlCnGR3wkuM4WxLSuGkQNfmLYW5BDE8fUgXcHVXv9oYB45PoGBeQSd5ioaEHSWp+hA0DkMzSNoKFZKI78zuWsQuaA8l3BlEFnm2iL/FrlpZqanFbntZxmjO73IfdbVh31ERjQjj1LImEyYGMn+9xUjbELGKyRObviJI57CTzBdu/b8Ip7CDkkeQuIlQrffY5dB0rtvuqvINHnpqwISR8nTQsExSWbVW7ExSZ4jong1u2ZByJDu7kKsHszkCqQCIl+FLbKLyPtaefwwgWxEP2LvVixiEYtoQgqlHPJJC+XLLqoZRsyvpuKJB0R9XZiA18pfF+Yr3KqKS4qtcFeyVl/FrgNrlN8/aeTun3AlUh34aMPYsqcVOmWmsBMyW1Ysooi487nx/fhKThbwDdVvs0glpz0qObdSyQkchAOAQOUskU3h/AAe7qmqtAqp/QAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0xMi0yOFQwODoyNzo0NCswMDowMPJYdAwAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMTItMjhUMDg6Mjc6NDQrMDA6MDCDBcywAAAAAElFTkSuQmCC) no-repeat;background-size:cover}[data-v-68392714] .el-dialog{min-width:440px}.dialog-footer[data-v-68392714],.reset__dialog[data-v-68392714],.text[data-v-68392714]{text-align:center}.editor__header[data-v-54b819f8]{width:100%}.header__item[data-v-54b819f8]{margin:0 3px}.header__item_last[data-v-54b819f8]{margin-right:8px}.header__switch[data-v-54b819f8]{margin-left:8px}.mode__switch[data-v-54b819f8]{margin-left:24px;margin-right:24px;width:24px;height:24px;background:url(data:image/png;base64,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) no-repeat;background-size:cover;-webkit-transition:all .3s;transition:all .3s}.mode__switch_black[data-v-54b819f8]{background:url(data:image/png;base64,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) no-repeat;background-size:cover}.top[data-v-54b819f8]{height:60px;padding:10px 20px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;margin-right:0}.el-select[data-v-54b819f8]{margin-right:12px}.left-side[data-v-54b819f8]{-webkit-box-flex:1;-webkit-flex:1;flex:1}.left-side[data-v-54b819f8],.right-side[data-v-54b819f8]{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.select-item-left[data-v-54b819f8]{float:left}.select-item-right[data-v-54b819f8]{float:right;color:#8492a6;font-size:13px}[data-v-70c50907] .el-dialog{min-width:420px}[data-v-4dd4e7e2] .el-dialog{width:55%;min-height:375px;min-width:440px}.tb-options[data-v-4dd4e7e2]{margin-bottom:20px}.input-table[data-v-4dd4e7e2] .el-input__inner{border-radius:0}.head-style[data-v-4dd4e7e2] .el-input__inner{background-color:#f2f2f2}.menu[data-v-a704a2f8]{position:absolute;border-radius:4px;background-color:#fff;box-shadow:0 4px 8px 0 rgba(0,0,0,.12),0 2px 4px 0 rgba(0,0,0,.08);z-index:9999}.menu_item[data-v-a704a2f8]{margin-top:10px;min-width:200px;font-size:12px;line-height:20px;color:#333;cursor:pointer}.menu_item[data-v-a704a2f8]:first-of-type{margin-top:0}.menu_item[data-v-a704a2f8]:hover{background:#f0f0f0}.menu_item .btn-upload[data-v-a704a2f8],.menu_item span[data-v-a704a2f8]{display:inline-block;padding:4px 0;padding-left:24px;width:100%}.menu_item .btn-upload[data-v-a704a2f8]{margin:0;border:none;outline:none;background:transparent}.menu_item .btn-upload[data-v-a704a2f8]:hover{background:#aaa}.menu_item[data-v-a704a2f8] .el-upload{width:100%}.menu__group[data-v-a704a2f8]{padding-top:6px;padding-bottom:6px;border-bottom:1px solid #eee}.menu__group[data-v-a704a2f8]:last-of-type{border-bottom:none}li[data-v-a704a2f8]:hover{background-color:#1790ff}li[data-v-a704a2f8]{font-size:15px;list-style:none}[data-v-fc5ed8b0] .el-dialog{width:55%;min-height:615px;min-width:640px}[data-v-fc5ed8b0] .el-upload-dragger{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column;flex-flow:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;width:500px;height:360px}[data-v-fc5ed8b0] .el-upload-dragger .el-icon-upload{margin-top:0}[data-v-fc5ed8b0] .el-dialog__body{padding-bottom:50px}.upload-panel[data-v-fc5ed8b0]{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;text-align:center}.upload-panel .el-select[data-v-fc5ed8b0]{-webkit-align-self:flex-end;align-self:flex-end;margin:0 67.75px 20px;width:100px}.github-panel[data-v-fc5ed8b0]{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.setting-form[data-v-fc5ed8b0]{width:100%}.setting-form .el-form-item[data-v-fc5ed8b0]{margin:15px}.setting-form .el-form-item[data-v-fc5ed8b0]:last-child{text-align:right}.editor__header[data-v-7acf9643]{padding:0}.main-body[data-v-7acf9643]{padding-top:12px;overflow:hidden}.el-main[data-v-7acf9643]{padding:0;margin:20px;margin-top:0}.container[data-v-7acf9643],.el-main[data-v-7acf9643]{-webkit-transition:all .3s;transition:all .3s}.textarea-wrapper[data-v-7acf9643]{height:100%}.preview-wrapper_night[data-v-7acf9643]{overflow-y:inherit;position:relative;left:-3px}.preview-wrapper_night .preview[data-v-7acf9643]{background-color:#fff}#output-wrapper[data-v-7acf9643]{position:relative;-webkit-user-select:text;user-select:text}.loading-mask[data-v-7acf9643]{top:50%;width:376px;height:101%;padding-top:1px;font-size:15px;color:grey;background-color:#1e1e1e}.loading-mask .loading__img[data-v-7acf9643],.loading-mask[data-v-7acf9643]{position:absolute;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.loading-mask .loading__img[data-v-7acf9643]{top:330px;width:50px;height:50px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAt1BMVEX///8AAABIz0hHzkdIzkhIz0hIz0hHzkdIzkhFz0VAz0BHzUdIz0hHzkdIzkhIzUhHzUdHzUdIzkhEzEREzERGz0ZIz0hHzUdIzkhIzUhHzkdHzkdHzUdGz0ZIzkhHzkdKzkpIzUhGzUZD00NIzUhGzUZIzkhIzkhHzkdHzkdIzkhHz0dIzUhK1UpHzUdC0EJHzkdHzkdIz0hH1UdHzUdGzkZIzUhJ20lD10NJzklIzkhIzkj////r6/fCAAAAO3RSTlMAACDvoEBg0MAwEI9fz9+A8JDgDx5Ff/r9i+VdbHSDkx9RTRdce+6q6brLb58YSBvtd0oScFTxBxM/v5xq7LMAAAABYktHRACIBR1IAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4wwcCBssFsYwawAAAe9JREFUaN7t2tlywiAUBmABiQY1W6vWbna1i6Z2sYs97/9eNcQ6U40kEMhoh/824qeAxwSo1Wx2MUgimAAQLNNCAanDInWzCAUeahRxUsQx212NxGgaHhMq21sqCHIpdZFpRDoW2ROEtdpY/S1xu8XyEdZZ/BA8VcNbNO6wPIQbAK6akZa2v0rWN0mLk6+G+Gnr3O5qgnR1EjfOQviHCRS7yw02uyELwWGkbHAlCnGR3wkuM4WxLSuGkQNfmLYW5BDE8fUgXcHVXv9oYB45PoGBeQSd5ioaEHSWp+hA0DkMzSNoKFZKI78zuWsQuaA8l3BlEFnm2iL/FrlpZqanFbntZxmjO73IfdbVh31ERjQjj1LImEyYGMn+9xUjbELGKyRObviJI57CTzBdu/b8Ip7CDkkeQuIlQrffY5dB0rtvuqvINHnpqwISR8nTQsExSWbVW7ExSZ4jong1u2ZByJDu7kKsHszkCqQCIl+FLbKLyPtaefwwgWxEP2LvVixiEYtoQgqlHPJJC+XLLqoZRsyvpuKJB0R9XZiA18pfF+Yr3KqKS4qtcFeyVl/FrgNrlN8/aeTun3AlUh34aMPYsqcVOmWmsBMyW1Ysooi487nx/fhKThbwDdVvs0glpz0qObdSyQkchAOAQOUskU3h/AAe7qmqtAqp/QAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0xMi0yOFQwODoyNzo0NCswMDowMPJYdAwAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMTItMjhUMDg6Mjc6NDQrMDA6MDCDBcywAAAAAElFTkSuQmCC) no-repeat;background-size:cover}.loading-mask span[data-v-7acf9643]{position:absolute;left:50%;top:390px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.bounceInRight[data-v-7acf9643]{-webkit-animation-name:bounceInRight-data-v-7acf9643;animation-name:bounceInRight-data-v-7acf9643;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}[data-v-7acf9643] .preview-table{border-spacing:0}@-webkit-keyframes bounceInRight-data-v-7acf9643{0%,60%,75%,90%,to{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInRight-data-v-7acf9643{0%,60%,75%,90%,to{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}[data-v-7acf9643]{box-sizing:border-box;margin:0;padding:0}button[data-v-7acf9643],input[data-v-7acf9643],textarea[data-v-7acf9643]{font-family:inherit}h1[data-v-7acf9643],h2[data-v-7acf9643],h3[data-v-7acf9643],h4[data-v-7acf9643],h5[data-v-7acf9643],h6[data-v-7acf9643]{font-weight:400}em[data-v-7acf9643]{font-style:normal!important}body[data-v-7acf9643],html[data-v-7acf9643]{height:100%;font-family:PingFang SC,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}.el-message__icon[data-v-7acf9643]{display:none}.container[data-v-7acf9643]{height:100%;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.web-title[data-v-7acf9643]{margin:0 15px 0 5px}.web-icon[data-v-7acf9643]{width:auto;height:1.5rem;vertical-align:middle}#editor[data-v-7acf9643]{height:100%;display:block;border:none;width:100%;padding:10px}section[data-v-7acf9643]{height:100%}.main-body[data-v-7acf9643]{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;padding-top:0}.ctrl[data-v-7acf9643]{-webkit-flex-basis:60px;flex-basis:60px;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;-webkit-flex-shrink:1;flex-shrink:1}.ctrl[data-v-7acf9643],.preview-wrapper[data-v-7acf9643]{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.preview-wrapper[data-v-7acf9643]{box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);padding:0;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;word-break:break-all;overflow-y:scroll}.main-section[data-v-7acf9643]{display:-webkit-box;display:-webkit-flex;display:flex;height:100%}.hint[data-v-7acf9643]{opacity:.6;margin:20px 0}.preview[data-v-7acf9643]{position:relative;margin:0 -20px;width:375px;padding:20px;font-size:14px;box-sizing:border-box;outline:none;box-shadow:0 0 60px rgba(0,0,0,.1)}.preview table[data-v-7acf9643]{margin-bottom:10px;border-collapse:collapse;display:table;width:100%!important}.el-form-item[data-v-7acf9643]{margin-bottom:0!important}.el-tooltip[data-v-7acf9643]{cursor:pointer}uni-page-body[data-v-7acf9643],uni-page-refresh[data-v-7acf9643]{display:block;box-sizing:border-box;width:100%;height:100%}.fade-enter[data-v-8e90ad4c],.fade-leave-to[data-v-8e90ad4c]{opacity:0}.fade-enter-to[data-v-8e90ad4c],.fade-leave[data-v-8e90ad4c]{opacity:1}.fade-enter-active[data-v-8e90ad4c],.fade-leave-active[data-v-8e90ad4c]{-webkit-transition:all 1s;transition:all 1s}
+/*# sourceMappingURL=app.af80b787.css.map */
\ No newline at end of file
diff --git a/css/app.315a838f.css.map b/css/app.af80b787.css.map
similarity index 73%
rename from css/app.315a838f.css.map
rename to css/app.af80b787.css.map
index 009be02..ea7b75c 100644
--- a/css/app.315a838f.css.map
+++ b/css/app.af80b787.css.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///src/App.vue?7c55","webpack:///src/App.vue","webpack:///src/assets/less/style-mirror.css","webpack:///src/assets/less/github-v2.min.css","webpack:///src/assets/less/theme.less","webpack:///src/assets/less/codeTheme/wechat-code-block.less","webpack:///src/assets/less/codeTheme/github-code-block.less","webpack:///src/App.vue?94fb","webpack:///src/components/Loading.vue?11ef","webpack:///src/components/Loading.vue","webpack:///src/components/CodemirrorEditor/resetDialog.vue?0518","webpack:///src/components/CodemirrorEditor/resetDialog.vue","webpack:///src/components/CodemirrorEditor/header.vue?d3c1","webpack:///src/components/CodemirrorEditor/header.vue","webpack:///src/components/CodemirrorEditor/aboutDialog.vue?c081","webpack:///src/components/CodemirrorEditor/aboutDialog.vue","webpack:///src/components/CodemirrorEditor/insertForm.vue?64e1","webpack:///src/components/CodemirrorEditor/insertForm.vue","webpack:///src/components/CodemirrorEditor/rightClickMenu.vue?c6c5","webpack:///src/components/CodemirrorEditor/rightClickMenu.vue","webpack:///src/components/CodemirrorEditor/uploadImgDialog.vue?e925","webpack:///src/components/CodemirrorEditor/uploadImgDialog.vue","webpack:///src/pages/index/view/CodemirrorEditor.vue?90fc","webpack:///src/pages/index/view/CodemirrorEditor.vue","webpack:///src/pages/index/view/CodemirrorEditor.vue?8078","webpack:///src/assets/less/app.less","webpack:///src/pages/index/src/pages/index/index.vue"],"names":[],"mappings":"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","file":"app.315a838f.css","sourcesContent":["\n\n\n\n\n\n\n// 仿 uniapp 外层全屏\nhtml,\nbody,\n#app {\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n}\n","/* 每个页面公共css */\n@import url(\"./assets/less/style-mirror.css\");\n@import url(\"./assets/less/github-v2.min.css\");\n.container_night {\n background-color: #333333;\n}\n.container_night .el-main {\n background-color: #333333;\n}\n.container_night .CodeMirror {\n caret-color: gray;\n color: gray;\n background-color: #1e1e1e;\n box-shadow: inset 0 0 0 1px rgba(100, 37, 37, 0.102);\n}\n.container_night .output_night .preview {\n background-color: #1e1e1e;\n box-shadow: 0 0 70px rgba(0, 0, 0, 0.3);\n}\n.container_night .output_night .preview-wrapper {\n background-color: #1e1e1e;\n box-shadow: inset 0 0 0 1px rgba(233, 231, 231, 0.102);\n}\n.container_night .output_night .code-snippet__fix {\n background-color: #eeeeee;\n}\n.container_night .cm-s-style-mirror .CodeMirror-matchingbracket {\n color: #f0f0f0 !important;\n background: #1e1e1e !important;\n}\n.container_night .cm-s-xq-light span.cm-variable-2,\n.container_night .cm-s-style-mirror span.cm-tag {\n color: gray;\n}\n.container_night .cm-s-xq-light .CodeMirror-activeline-background {\n background-color: transparent;\n}\n.container_night .cm-s-xq-light span.cm-string {\n color: #8e9eb9;\n}\n.container_night .cm-s-xq-light span.cm-link {\n color: #84868b;\n}\n.container_night .editor__header {\n background-color: #3c3c3c;\n}\n.container_night .el-button {\n color: #f0f0f0;\n background-color: #1e1e1e;\n border: 1px solid transparent;\n}\n.container_night .el-button.is-plain:focus,\n.container_night .el-button.is-plain:hover {\n background: #1e1e1e;\n color: #f0f0f0;\n border: 1px solid #f0f0f0;\n}\n.container_night .el-button.is-plain:focus i,\n.container_night .el-button.is-plain:hover i {\n color: #f0f0f0;\n}\n.container_night .insert__dialog .el-dialog,\n.container_night .about__dialog .el-dialog,\n.container_night .reset__dialog .el-dialog,\n.container_night .upload__dialog .el-dialog {\n background-color: #333333;\n}\n.container_night .insert__dialog .el-dialog__body,\n.container_night .about__dialog .el-dialog__body,\n.container_night .reset__dialog .el-dialog__body,\n.container_night .upload__dialog .el-dialog__body {\n color: #f0f0f0;\n}\n.container_night .insert__dialog .el-dialog__title,\n.container_night .about__dialog .el-dialog__title,\n.container_night .reset__dialog .el-dialog__title,\n.container_night .upload__dialog .el-dialog__title,\n.container_night .insert__dialog .el-form-item__label,\n.container_night .about__dialog .el-form-item__label,\n.container_night .reset__dialog .el-form-item__label,\n.container_night .upload__dialog .el-form-item__label {\n color: #f0f0f0;\n}\n.container_night .insert__dialog .el-tabs__item,\n.container_night .about__dialog .el-tabs__item,\n.container_night .reset__dialog .el-tabs__item,\n.container_night .upload__dialog .el-tabs__item {\n color: gray;\n}\n.container_night .insert__dialog .el-tabs__nav-wrap::after,\n.container_night .about__dialog .el-tabs__nav-wrap::after,\n.container_night .reset__dialog .el-tabs__nav-wrap::after,\n.container_night .upload__dialog .el-tabs__nav-wrap::after {\n background-color: #84868b;\n}\n.container_night .insert__dialog .is-active,\n.container_night .about__dialog .is-active,\n.container_night .reset__dialog .is-active,\n.container_night .upload__dialog .is-active {\n color: #f0f0f0;\n}\n.container_night .insert__dialog .el-upload-dragger,\n.container_night .about__dialog .el-upload-dragger,\n.container_night .reset__dialog .el-upload-dragger,\n.container_night .upload__dialog .el-upload-dragger {\n background-color: #1e1e1e;\n}\n.container_night ::v-deep .el-icon-upload,\n.container_night .el-icon-download,\n.container_night .el-icon-refresh,\n.container_night .el-icon-s-grid,\n.container_night .el-icon-document {\n color: #f0f0f0;\n}\n.container_night ::-webkit-scrollbar {\n background-color: #1e1e1e;\n}\n.CodeMirror {\n padding-bottom: 0;\n height: 100% !important;\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n font-size: 14px;\n font-family: \"PingFang SC\", BlinkMacSystemFont, Roboto, \"Helvetica Neue\", sans-serif !important;\n}\n.CodeMirror-vscrollbar:focus {\n outline: none;\n}\n.CodeMirror-scroll {\n padding: 0 20px;\n overflow-x: hidden !important;\n overflow-y: scroll !important;\n}\n.CodeMirror-vscrollbar {\n width: 0px;\n height: 0px;\n}\n.CodeMirror-wrap {\n padding-top: 20px;\n padding-bottom: 20px;\n box-sizing: border-box;\n}\n/*wechat code block*/\n.rich_media_content .code-snippet *,\n.rich_media_content .code-snippet__wechat * {\n max-width: 1000% !important;\n}\n.code-snippet__wechat {\n word-wrap: break-word !important;\n font-size: 14px;\n margin: 10px 8px;\n color: #333;\n position: relative;\n background-color: rgba(27, 31, 35, 0.05);\n border: 1px solid #f0f0f0;\n border-radius: 2px;\n display: flex;\n line-height: 24px;\n}\n.code-snippet__wechat .code-snippet__line-index {\n counter-reset: line;\n flex-shrink: 0;\n height: 100%;\n padding: 1em;\n list-style-type: none;\n}\n.code-snippet__wechat .code-snippet__line-index li {\n list-style-type: none;\n text-align: right;\n}\n.code-snippet__wechat .code-snippet__line-index li::before {\n min-width: 1.5em;\n text-align: right;\n left: -2.5em;\n counter-increment: line;\n content: counter(line);\n display: inline;\n color: rgba(0, 0, 0, 0.15);\n}\n.code-snippet__wechat pre {\n overflow-x: auto;\n padding: 1em 1em 1em 1em;\n white-space: normal;\n flex: 1;\n -webkit-overflow-scrolling: touch;\n}\n.code-snippet__wechat code {\n text-align: left;\n font-size: 14px;\n white-space: pre;\n display: flex;\n position: relative;\n font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n}\n.code-snippet__wechat ul li {\n list-style: none;\n}\n/*github code block*/\n.code-snippet__github {\n display: flex;\n font-size: 12px;\n margin: 10px 8px;\n position: relative;\n height: auto;\n background-color: #f7f7f7;\n border-radius: 8px;\n}\n.code-snippet__github .code-snippet__line-index {\n display: none;\n}\n.code-snippet__github .code__pre {\n display: grid;\n position: relative;\n counter-reset: line;\n overflow-x: auto;\n padding: 1em;\n white-space: normal;\n flex: 1;\n line-height: 20px;\n font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;\n -webkit-overflow-scrolling: touch;\n}\n.code-snippet__github pre {\n display: inline-block;\n font-size: 12px;\n}\n.code-snippet__github code {\n display: flex;\n position: relative;\n padding-right: 8px;\n text-align: left;\n white-space: pre;\n font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n}\n.code-snippet__github code::before {\n display: none;\n}\n.code-snippet__github ul li {\n list-style: none;\n}\n::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n background-color: #fff;\n}\n::-webkit-scrollbar-track {\n border-radius: 6px;\n background-color: rgba(200, 200, 200, 0.3);\n}\n::-webkit-scrollbar-thumb {\n border-radius: 6px;\n background-color: rgba(144, 146, 152, 0.5);\n transition: background-color 0.3s;\n}\n::-webkit-scrollbar-thumb:hover {\n background-color: rgba(144, 146, 152, 0.5);\n}\n/* CSS-hints */\n.CodeMirror-hints {\n position: absolute;\n z-index: 10;\n overflow: hidden;\n list-style: none;\n margin: 0;\n padding: 2px;\n border-radius: 4px;\n background-color: #ffffff;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.08);\n min-width: 200px;\n font-size: 12px;\n font-family: monospace;\n max-height: 20em;\n overflow-y: auto;\n color: #333333;\n}\n.CodeMirror-hint {\n margin: 0;\n margin-top: 10px;\n padding: 4px 6px;\n border-radius: 2px;\n white-space: pre;\n color: black;\n cursor: pointer;\n}\n.CodeMirror-hint:first-of-type {\n margin-top: 0;\n}\n.CodeMirror-hint:hover {\n background: #f0f0f0;\n}\n","/*\n\n Name: Base16 Default Light\n Author: Chris Kempson (http://chriskempson.com)\n\n CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-style-mirror.CodeMirror {\n color: #444;\n font-size: 16px;\n line-height: 25px;\n}\n\n.cm-s-style-mirror .CodeMirror-scroll {\n padding: 20px;\n width: 100%;\n box-sizing: border-box;\n overflow-x: hidden !important;\n overflow-y: scroll !important;\n}\n\n.cm-s-style-mirror div.CodeMirror-selected {\n background: #e0e0e0;\n}\n\n.cm-s-style-mirror .CodeMirror-line::selection,\n.cm-s-style-mirror .CodeMirror-line > span::selection,\n.cm-s-style-mirror .CodeMirror-line > span > span::selection {\n background: #e0e0e0;\n}\n\n.cm-s-style-mirror .CodeMirror-line::-moz-selection,\n.cm-s-style-mirror .CodeMirror-line > span::-moz-selection,\n.cm-s-style-mirror .CodeMirror-line > span > span::-moz-selection {\n background: #e0e0e0;\n}\n\n.cm-s-style-mirror .CodeMirror-gutters {\n background: #f5f5f5;\n border-right: 0px;\n}\n\n.cm-s-style-mirror .CodeMirror-guttermarker {\n color: #ac4142;\n}\n\n.cm-s-style-mirror .CodeMirror-guttermarker-subtle {\n color: #b0b0b0;\n}\n\n.cm-s-style-mirror .CodeMirror-linenumber {\n color: #b0b0b0;\n}\n\n.cm-s-style-mirror .CodeMirror-cursor {\n border-left: 1px solid #505050;\n}\n\n.cm-s-style-mirror span.cm-comment {\n color: green;\n}\n\n.cm-s-style-mirror span.cm-atom {\n color: #aa759f;\n}\n\n.cm-s-style-mirror span.cm-number {\n color: #aa759f;\n}\n\n.cm-s-style-mirror span.cm-property,\n.cm-s-style-mirror span.cm-attribute {\n color: #90a959;\n}\n\n.cm-s-style-mirror span.cm-keyword {\n color: #023a52;\n}\n\n.cm-s-style-mirror span.cm-string {\n color: #e46918;\n}\n\n.cm-s-style-mirror span.cm-variable {\n color: #90a959;\n}\n\n.cm-s-style-mirror span.cm-variable-2 {\n color: #00695f;\n}\n\n.cm-s-style-mirror span.cm-variable-3 {\n color: #2e6e8a;\n}\n\n.cm-s-style-mirror span.cm-def {\n color: #d28445;\n}\n\n.cm-s-style-mirror span.cm-bracket {\n color: #202020;\n}\n\n.cm-s-style-mirror span.cm-tag {\n color: #000;\n}\n\n.cm-s-style-mirror span.cm-link {\n color: #b26a00;\n}\n\n.cm-s-style-mirror span.cm-error {\n /* background: #ac4142;\n color: #f5f5f5; */\n text-decoration: underline;\n text-decoration-style: wavy;\n text-decoration-color: #df8d8e;\n}\n\n.cm-s-style-mirror .CodeMirror-activeline-background {\n background: #dddcdc;\n}\n\n.cm-s-style-mirror .CodeMirror-matchingbracket {\n color: rgb(32, 32, 32) !important;\n background-color: rgba(0, 0, 0, 0.1) !important;\n}\n","/*! Color themes for Google Code Prettify | MIT License | github.com/jmblog/color-themes-for-google-code-prettify */\n.prettyprint {\n font-family: Menlo, Bitstream Vera Sans Mono, DejaVu Sans Mono, Monaco,\n Consolas, monospace;\n border: 0 !important;\n}\n.pln {\n color: #333;\n}\nol.linenums {\n margin-top: 0;\n margin-bottom: 0;\n color: #ccc;\n}\nli.L0,\nli.L1,\nli.L2,\nli.L3,\nli.L4,\nli.L5,\nli.L6,\nli.L7,\nli.L8,\nli.L9 {\n padding-left: 1em;\n background-color: #fff;\n list-style-type: decimal;\n}\n@media screen {\n .str {\n color: #183691;\n }\n .kwd {\n color: #a71d5d;\n }\n .com {\n color: #969896;\n }\n .typ {\n color: #0086b3;\n }\n .lit {\n color: #0086b3;\n }\n .pun {\n color: #333;\n }\n .opn {\n color: #333;\n }\n .clo {\n color: #333;\n }\n .tag {\n color: navy;\n }\n .atn {\n color: #795da3;\n }\n .atv {\n color: #183691;\n }\n .dec {\n color: #333;\n }\n .var {\n color: teal;\n }\n .fun {\n color: #900;\n }\n}\n","@nightBgColor: #333333;\n@nightPreviewColor: #1e1e1e;\n@nightHeaderColor: #3c3c3c;\n@nightCodeMirrorColor: #1e1e1e;\n@nightActiveCodeMirrorColor: gray;\n@nightFontColor: gray;\n@nightLinkColor: #8e9eb9;\n@nightLinkTextColor: #84868b;\n@nightWhiteColor: #f0f0f0;\n@nightButtonBg: #1e1e1e;\n@nightButtonHoverColor: #84868b;\n@nightLineColor: #84868b;\n\n.container_night {\n background-color: @nightBgColor;\n\n .el-main {\n background-color: @nightBgColor;\n }\n\n .CodeMirror {\n caret-color: @nightFontColor;\n color: @nightFontColor;\n background-color: @nightCodeMirrorColor;\n box-shadow: inset 0 0 0 1px rgba(100, 37, 37, 0.102);\n }\n\n .output_night {\n .preview {\n background-color: @nightPreviewColor;\n box-shadow: 0 0 70px rgba(0, 0, 0, 0.3);\n }\n\n .preview-wrapper {\n background-color: @nightCodeMirrorColor;\n box-shadow: inset 0 0 0 1px rgba(233, 231, 231, 0.102);\n }\n\n .code-snippet__fix {\n background-color: rgb(238, 238, 238);\n }\n }\n\n .cm-s-style-mirror .CodeMirror-matchingbracket {\n color: @nightWhiteColor !important;\n background: rgb(30, 30, 30) !important;\n }\n\n .cm-s-xq-light span.cm-variable-2,\n .cm-s-style-mirror span.cm-tag {\n color: @nightFontColor;\n }\n\n .cm-s-xq-light .CodeMirror-activeline-background {\n background-color: transparent;\n }\n\n .cm-s-xq-light span.cm-string {\n color: @nightLinkColor;\n }\n\n .cm-s-xq-light span.cm-link {\n color: @nightLinkTextColor;\n }\n\n .editor__header {\n background-color: @nightHeaderColor;\n }\n\n .el-button {\n color: @nightWhiteColor;\n background-color: @nightCodeMirrorColor;\n border: 1px solid transparent;\n }\n\n .el-button.is-plain:focus,\n .el-button.is-plain:hover {\n background: @nightButtonBg;\n color: @nightWhiteColor;\n border: 1px solid @nightWhiteColor;\n\n i {\n color: @nightWhiteColor;\n }\n }\n\n .insert__dialog,\n .about__dialog,\n .reset__dialog,\n .upload__dialog {\n .el-dialog {\n background-color: @nightBgColor;\n }\n\n .el-dialog__body {\n color: @nightWhiteColor;\n }\n\n .el-dialog__title,\n .el-form-item__label {\n color: @nightWhiteColor;\n }\n\n .el-tabs__item {\n color: @nightActiveCodeMirrorColor;\n }\n\n .el-tabs__nav-wrap::after {\n background-color: @nightLineColor;\n }\n\n .is-active {\n color: @nightWhiteColor;\n }\n\n .el-upload-dragger {\n background-color: @nightButtonBg;\n }\n }\n\n ::v-deep .el-icon-upload,\n .el-icon-download,\n .el-icon-refresh,\n .el-icon-s-grid,\n .el-icon-document {\n color: @nightWhiteColor;\n }\n\n ::-webkit-scrollbar {\n background-color: @nightCodeMirrorColor;\n }\n}\n\n.CodeMirror {\n padding-bottom: 0;\n height: 100% !important;\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n font-size: 14px;\n font-family: \"PingFang SC\", BlinkMacSystemFont, Roboto, \"Helvetica Neue\",\n sans-serif !important;\n}\n\n.CodeMirror-vscrollbar:focus {\n outline: none;\n}\n\n.CodeMirror-scroll {\n padding: 0 20px;\n overflow-x: hidden !important;\n overflow-y: scroll !important;\n}\n\n.CodeMirror-vscrollbar {\n width: 0px;\n height: 0px;\n}\n\n.CodeMirror-wrap {\n padding-top: 20px;\n padding-bottom: 20px;\n box-sizing: border-box;\n}\n","/*wechat code block*/\n.rich_media_content .code-snippet *,\n.rich_media_content .code-snippet__wechat * {\n max-width: 1000% !important;\n}\n\n.code-snippet__wechat {\n word-wrap: break-word !important;\n font-size: 14px;\n margin: 10px 8px;\n color: #333;\n position: relative;\n background-color: rgba(27, 31, 35, 0.05);\n border: 1px solid #f0f0f0;\n border-radius: 2px;\n display: flex;\n line-height: 24px;\n}\n\n.code-snippet__wechat .code-snippet__line-index {\n counter-reset: line;\n flex-shrink: 0;\n height: 100%;\n padding: 1em;\n list-style-type: none;\n}\n\n.code-snippet__wechat .code-snippet__line-index li {\n list-style-type: none;\n text-align: right;\n}\n\n.code-snippet__wechat .code-snippet__line-index li::before {\n min-width: 1.5em;\n text-align: right;\n left: -2.5em;\n counter-increment: line;\n content: counter(line);\n display: inline;\n color: rgba(0, 0, 0, 0.15);\n}\n\n.code-snippet__wechat pre {\n overflow-x: auto;\n padding: 1em 1em 1em 1em;\n white-space: normal;\n flex: 1;\n -webkit-overflow-scrolling: touch;\n}\n\n.code-snippet__wechat code {\n text-align: left;\n font-size: 14px;\n white-space: pre;\n display: flex;\n position: relative;\n font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n}\n\n.code-snippet__wechat ul li {\n list-style: none;\n}\n","@import url(\"../github-v2.min.css\");\n/*github code block*/\n.code-snippet__github {\n display: flex;\n font-size: 12px;\n margin: 10px 8px;\n position: relative;\n height: auto;\n background-color: #f7f7f7;\n border-radius: 8px;\n\n .code-snippet__line-index {\n display: none;\n }\n\n .code__pre {\n display: grid;\n position: relative;\n counter-reset: line;\n overflow-x: auto;\n padding: 1em;\n white-space: normal;\n flex: 1;\n line-height: 20px;\n font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;\n -webkit-overflow-scrolling: touch;\n }\n\n pre {\n display: inline-block;\n font-size: 12px;\n }\n\n code {\n display: flex;\n position: relative;\n padding-right: 8px;\n text-align: left;\n white-space: pre;\n font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n &::before {\n display: none;\n }\n }\n\n ul li {\n list-style: none;\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* 每个页面公共css */\n@import url(\"./assets/less/style-mirror.css\");\n@import url(\"./assets/less/theme.less\");\n@import url(\"./assets/less/code-theme.less\");\n::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n background-color: #fff;\n}\n\n::-webkit-scrollbar-track {\n border-radius: 6px;\n background-color: rgba(200, 200, 200, 0.3);\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 6px;\n background-color: rgba(144, 146, 152, 0.5);\n transition: background-color 0.3s;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background-color: rgba(144, 146, 152, 0.5);\n}\n/* CSS-hints */\n.CodeMirror-hints {\n position: absolute;\n z-index: 10;\n overflow: hidden;\n list-style: none;\n\n margin: 0;\n padding: 2px;\n\n border-radius: 4px;\n background-color: #ffffff;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.08);\n min-width: 200px;\n font-size: 12px;\n font-family: monospace;\n\n max-height: 20em;\n overflow-y: auto;\n color: #333333;\n}\n\n.CodeMirror-hint {\n margin: 0;\n margin-top: 10px;\n padding: 4px 6px;\n border-radius: 2px;\n white-space: pre;\n color: black;\n cursor: pointer;\n}\n.CodeMirror-hint:first-of-type {\n margin-top: 0;\n}\n.CodeMirror-hint:hover {\n background: #f0f0f0;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n.loading-wrapper {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n}\n.loading {\n text-align: center;\n position: fixed;\n width: 100%;\n height: 100%;\n overflow: hidden;\n z-index: 99999;\n background-color: #f2f2f2;\n}\n\n.loading_night {\n background-color: #303133;\n}\n\n.loading-text {\n font-size: 18px;\n font-weight: bold;\n margin-top: 26px;\n color: #303133;\n}\n\n.loading-anim {\n display: inline-block;\n width: 100px;\n height: 100px;\n background: url(\"../assets/images/favicon.png\") no-repeat;\n background-size: cover;\n}\n",".loading-wrapper {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n}\n.loading {\n text-align: center;\n position: fixed;\n width: 100%;\n height: 100%;\n overflow: hidden;\n z-index: 99999;\n background-color: #f2f2f2;\n}\n.loading_night {\n background-color: #303133;\n}\n.loading-text {\n font-size: 18px;\n font-weight: bold;\n margin-top: 26px;\n color: #303133;\n}\n.loading-anim {\n display: inline-block;\n width: 100px;\n height: 100px;\n background: url(\"../assets/images/favicon.png\") no-repeat;\n background-size: cover;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/deep/ .el-dialog {\n min-width: 440px;\n}\n.reset__dialog {\n text-align: center;\n}\n\n.text {\n text-align: center;\n}\n\n.dialog-footer {\n text-align: center;\n}\n"," /deep/ .el-dialog {\n min-width: 440px;\n}\n.reset__dialog {\n text-align: center;\n}\n.text {\n text-align: center;\n}\n.dialog-footer {\n text-align: center;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.editor__header {\n width: 100%;\n}\n.header__item {\n margin: 0 3px;\n}\n.header__item_last {\n margin-right: 8px;\n}\n.header__switch {\n margin-left: 8px;\n}\n.mode__switch {\n margin-left: 24px;\n margin-right: 24px;\n width: 24px;\n height: 24px;\n background: url(\"../../assets/images/night.png\") no-repeat;\n background-size: cover;\n transition: all 0.3s;\n}\n.mode__switch_black {\n background: url(\"../../assets/images/light.png\") no-repeat;\n background-size: cover;\n}\n.top {\n height: 60px;\n padding: 10px 20px;\n display: flex;\n align-items: center;\n margin-right: 0;\n}\n.el-select {\n margin-right: 12px;\n}\n.left-side {\n display: flex;\n align-items: center;\n flex: 1;\n}\n.right-side {\n display: flex;\n align-items: center;\n}\n\n/*\n.preview table tr:nth-child(even){\n background: rgb(250, 250, 250);\n}\n */\n.select-item-left {\n float: left;\n}\n\n.select-item-right {\n float: right;\n color: #8492a6;\n font-size: 13px;\n}\n",".editor__header {\n width: 100%;\n}\n.header__item {\n margin: 0 3px;\n}\n.header__item_last {\n margin-right: 8px;\n}\n.header__switch {\n margin-left: 8px;\n}\n.mode__switch {\n margin-left: 24px;\n margin-right: 24px;\n width: 24px;\n height: 24px;\n background: url(\"../../assets/images/night.png\") no-repeat;\n background-size: cover;\n transition: all 0.3s;\n}\n.mode__switch_black {\n background: url(\"../../assets/images/light.png\") no-repeat;\n background-size: cover;\n}\n.top {\n height: 60px;\n padding: 10px 20px;\n display: flex;\n align-items: center;\n margin-right: 0;\n}\n.el-select {\n margin-right: 12px;\n}\n.left-side {\n display: flex;\n align-items: center;\n flex: 1;\n}\n.right-side {\n display: flex;\n align-items: center;\n}\n/*\n.preview table tr:nth-child(even){\n background: rgb(250, 250, 250);\n}\n */\n.select-item-left {\n float: left;\n}\n.select-item-right {\n float: right;\n color: #8492a6;\n font-size: 13px;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/deep/ .el-dialog {\n min-width: 420px;\n}\n"," /deep/ .el-dialog {\n min-width: 420px;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/deep/ .el-dialog {\n width: 55%;\n min-height: 375px;\n min-width: 440px;\n}\n.tb-options {\n margin-bottom: 20px;\n}\n\n.input-table ::v-deep .el-input__inner {\n border-radius: 0;\n}\n\n.head-style /deep/ .el-input__inner {\n background-color: #f2f2f2;\n}\n"," /deep/ .el-dialog {\n width: 55%;\n min-height: 375px;\n min-width: 440px;\n}\n.tb-options {\n margin-bottom: 20px;\n}\n.input-table ::v-deep .el-input__inner {\n border-radius: 0;\n}\n.head-style /deep/ .el-input__inner {\n background-color: #f2f2f2;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.menu {\n position: absolute;\n border-radius: 4px;\n background-color: #ffffff;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.08);\n z-index: 9999;\n}\n\n.menu_item {\n margin-top: 10px;\n min-width: 200px;\n font-size: 12px;\n line-height: 20px;\n color: #333333;\n cursor: pointer;\n &:first-of-type {\n margin-top: 0;\n }\n &:hover {\n background: #f0f0f0;\n }\n span,\n .btn-upload {\n display: inline-block;\n padding: 4px 0;\n padding-left: 24px;\n width: 100%;\n }\n .btn-upload {\n margin: 0;\n border: none;\n outline: none;\n background: transparent;\n }\n .btn-upload:hover {\n background: #aaaaaa;\n }\n ::v-deep .el-upload {\n width: 100%;\n }\n}\n\n.menu__group {\n padding-top: 6px;\n padding-bottom: 6px;\n border-bottom: 1px solid #eeeeee;\n &:last-of-type {\n border-bottom: none;\n }\n}\n\nli:hover {\n background-color: #1790ff;\n}\n\nli {\n font-size: 15px;\n list-style: none;\n}\n",".menu {\n position: absolute;\n border-radius: 4px;\n background-color: #ffffff;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.08);\n z-index: 9999;\n}\n.menu_item {\n margin-top: 10px;\n min-width: 200px;\n font-size: 12px;\n line-height: 20px;\n color: #333333;\n cursor: pointer;\n}\n.menu_item:first-of-type {\n margin-top: 0;\n}\n.menu_item:hover {\n background: #f0f0f0;\n}\n.menu_item span,\n.menu_item .btn-upload {\n display: inline-block;\n padding: 4px 0;\n padding-left: 24px;\n width: 100%;\n}\n.menu_item .btn-upload {\n margin: 0;\n border: none;\n outline: none;\n background: transparent;\n}\n.menu_item .btn-upload:hover {\n background: #aaaaaa;\n}\n.menu_item ::v-deep .el-upload {\n width: 100%;\n}\n.menu__group {\n padding-top: 6px;\n padding-bottom: 6px;\n border-bottom: 1px solid #eeeeee;\n}\n.menu__group:last-of-type {\n border-bottom: none;\n}\nli:hover {\n background-color: #1790ff;\n}\nli {\n font-size: 15px;\n list-style: none;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/deep/ .el-dialog {\n width: 55%;\n min-height: 615px;\n min-width: 640px;\n}\n/deep/ .el-upload-dragger {\n display: flex;\n flex-flow: column;\n justify-content: center;\n width: 500px;\n height: 360px;\n .el-icon-upload {\n margin-top: 0;\n }\n}\n/deep/ .el-dialog__body {\n padding-bottom: 50px;\n}\n.upload-panel {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n\n .el-select {\n align-self: flex-end;\n margin: 0 67.75px 20px;\n width: 100px;\n }\n}\n\n.github-panel {\n display: flex;\n justify-content: center;\n}\n\n.setting-form {\n width: 100%;\n\n .el-form-item {\n margin: 15px;\n }\n\n .el-form-item:last-child {\n text-align: right;\n }\n}\n"," /deep/ .el-dialog {\n width: 55%;\n min-height: 615px;\n min-width: 640px;\n}\n /deep/ .el-upload-dragger {\n display: flex;\n flex-flow: column;\n justify-content: center;\n width: 500px;\n height: 360px;\n}\n /deep/ .el-upload-dragger .el-icon-upload {\n margin-top: 0;\n}\n /deep/ .el-dialog__body {\n padding-bottom: 50px;\n}\n.upload-panel {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n.upload-panel .el-select {\n align-self: flex-end;\n margin: 0 67.75px 20px;\n width: 100px;\n}\n.github-panel {\n display: flex;\n justify-content: center;\n}\n.setting-form {\n width: 100%;\n}\n.setting-form .el-form-item {\n margin: 15px;\n}\n.setting-form .el-form-item:last-child {\n text-align: right;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.editor__header {\n padding: 0;\n}\n","@import url(\"../../../assets/less/github-v2.min.css\");\n* {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\ninput,\nbutton,\ntextarea {\n font-family: inherit;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-weight: normal;\n}\nem {\n font-style: normal !important;\n}\nhtml,\nbody {\n height: 100%;\n font-family: \"PingFang SC\", BlinkMacSystemFont, Roboto, \"Helvetica Neue\", sans-serif;\n}\n.el-message__icon {\n display: none;\n}\n.container {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n.web-title {\n margin: 0 15px 0 5px;\n}\n.web-icon {\n width: auto;\n height: 1.5rem;\n vertical-align: middle;\n}\n#editor {\n height: 100%;\n display: block;\n border: none;\n width: 100%;\n padding: 10px;\n}\nsection {\n height: 100%;\n}\n.main-body {\n display: flex;\n flex-direction: column;\n padding-top: 0;\n}\n.ctrl {\n flex-basis: 60px;\n flex-grow: 1;\n flex-shrink: 1;\n display: flex;\n align-items: center;\n}\n.preview-wrapper {\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n padding: 0;\n align-items: center;\n justify-content: center;\n display: flex;\n word-break: break-all;\n overflow-y: scroll;\n}\n.main-section {\n display: flex;\n height: 100%;\n}\n.hint {\n opacity: 0.6;\n margin: 20px 0;\n}\n.preview {\n position: relative;\n margin: 0 -20px;\n width: 375px;\n padding: 20px;\n font-size: 14px;\n box-sizing: border-box;\n outline: none;\n box-shadow: 0 0 60px rgba(0, 0, 0, 0.1);\n}\n.preview table {\n margin-bottom: 10px;\n border-collapse: collapse;\n display: table;\n width: 100% !important;\n}\n/* ele ui */\n.el-form-item {\n margin-bottom: 0 !important;\n}\n.el-tooltip {\n cursor: pointer;\n}\nuni-page-body,\nuni-page-refresh {\n display: block;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.main-body {\n padding-top: 12px;\n overflow: hidden;\n}\n.el-main {\n transition: all 0.3s;\n padding: 0;\n margin: 20px;\n margin-top: 0;\n}\n.container {\n transition: all 0.3s;\n}\n.textarea-wrapper {\n height: 100%;\n}\n.preview-wrapper_night {\n overflow-y: inherit;\n position: relative;\n left: -3px;\n .preview {\n background-color: #fff;\n }\n}\n#output-wrapper {\n position: relative;\n user-select: text;\n}\n.loading-mask {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 376px;\n height: 101%;\n padding-top: 1px;\n font-size: 15px;\n color: gray;\n background-color: #1e1e1e;\n .loading__img {\n position: absolute;\n left: 50%;\n top: 330px;\n width: 50px;\n height: 50px;\n transform: translate(-50%, -50%);\n background: url(\"../../../assets/images/favicon.png\") no-repeat;\n background-size: cover;\n }\n span {\n position: absolute;\n left: 50%;\n top: 390px;\n transform: translate(-50%, -50%);\n }\n}\n.bounceInRight {\n animation-name: bounceInRight;\n animation-duration: 1s;\n animation-fill-mode: both;\n}\n/deep/ .preview-table {\n border-spacing: 0px;\n}\n\n@keyframes bounceInRight {\n 0%,\n 60%,\n 75%,\n 90%,\n 100% {\n transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 0% {\n opacity: 0;\n transform: translate3d(3000px, 0, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(-25px, 0, 0);\n }\n 75% {\n transform: translate3d(10px, 0, 0);\n }\n 90% {\n transform: translate3d(-5px, 0, 0);\n }\n 100% {\n transform: none;\n }\n}\n","* {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n\ninput,\nbutton,\ntextarea {\n font-family: inherit;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-weight: normal;\n}\n\nem {\n font-style: normal !important;\n}\n\nhtml,\nbody {\n height: 100%;\n font-family: \"PingFang SC\", BlinkMacSystemFont, Roboto, \"Helvetica Neue\",\n sans-serif;\n}\n\n.el-message__icon {\n display: none;\n}\n\n.container {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.web-title {\n margin: 0 15px 0 5px;\n}\n\n.web-icon {\n width: auto;\n height: 1.5rem;\n vertical-align: middle;\n}\n\n#editor {\n height: 100%;\n display: block;\n border: none;\n width: 100%;\n padding: 10px;\n}\n\nsection {\n height: 100%;\n}\n\n.main-body {\n display: flex;\n flex-direction: column;\n padding-top: 0;\n}\n\n.ctrl {\n flex-basis: 60px;\n flex-grow: 1;\n flex-shrink: 1;\n display: flex;\n align-items: center;\n}\n\n.preview-wrapper {\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n padding: 0;\n align-items: center;\n justify-content: center;\n display: flex;\n word-break: break-all;\n overflow-y: scroll;\n}\n\n.main-section {\n display: flex;\n height: 100%;\n}\n\n.hint {\n opacity: 0.6;\n margin: 20px 0;\n}\n\n.preview {\n position: relative;\n margin: 0 -20px;\n width: 375px;\n padding: 20px;\n font-size: 14px;\n box-sizing: border-box;\n outline: none;\n box-shadow: 0 0 60px rgba(0, 0, 0, 0.1);\n}\n\n.preview table {\n margin-bottom: 10px;\n border-collapse: collapse;\n display: table;\n width: 100% !important;\n}\n\n/* ele ui */\n.el-form-item {\n margin-bottom: 0 !important;\n}\n\n.el-tooltip {\n cursor: pointer;\n}\n\nuni-page-body,\nuni-page-refresh {\n display: block;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n}\n","\n \n \n \n \n \n\n\n\n\n"]}
\ No newline at end of file
+{"version":3,"sources":["webpack:///src/App.vue?7c55","webpack:///src/App.vue","webpack:///src/assets/less/style-mirror.css","webpack:///src/assets/less/github-v2.min.css","webpack:///src/assets/less/theme.less","webpack:///src/assets/less/codeTheme/wechat-code-block.less","webpack:///src/assets/less/codeTheme/github-code-block.less","webpack:///src/App.vue?94fb","webpack:///src/components/Loading.vue?11ef","webpack:///src/components/Loading.vue","webpack:///src/components/CodemirrorEditor/resetDialog.vue?0518","webpack:///src/components/CodemirrorEditor/resetDialog.vue","webpack:///src/components/CodemirrorEditor/header.vue?ef81","webpack:///src/components/CodemirrorEditor/header.vue","webpack:///src/components/CodemirrorEditor/aboutDialog.vue?c081","webpack:///src/components/CodemirrorEditor/aboutDialog.vue","webpack:///src/components/CodemirrorEditor/insertForm.vue?64e1","webpack:///src/components/CodemirrorEditor/insertForm.vue","webpack:///src/components/CodemirrorEditor/rightClickMenu.vue?856c","webpack:///src/components/CodemirrorEditor/rightClickMenu.vue","webpack:///src/components/CodemirrorEditor/uploadImgDialog.vue?e925","webpack:///src/components/CodemirrorEditor/uploadImgDialog.vue","webpack:///src/pages/index/view/CodemirrorEditor.vue?9332","webpack:///src/pages/index/view/CodemirrorEditor.vue","webpack:///src/pages/index/view/CodemirrorEditor.vue?792d","webpack:///src/assets/less/app.less","webpack:///src/pages/index/src/pages/index/index.vue"],"names":[],"mappings":"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","file":"app.af80b787.css","sourcesContent":["\n\n\n\n\n\n\n// 仿 uniapp 外层全屏\nhtml,\nbody,\n#app {\n margin: 0;\n padding: 0;\n height: 100%;\n width: 100%;\n}\n","/* 每个页面公共css */\n@import url(\"./assets/less/style-mirror.css\");\n@import url(\"./assets/less/github-v2.min.css\");\n.container_night {\n background-color: #333333;\n}\n.container_night .el-main {\n background-color: #333333;\n}\n.container_night .CodeMirror {\n caret-color: gray;\n color: gray;\n background-color: #1e1e1e;\n box-shadow: inset 0 0 0 1px rgba(100, 37, 37, 0.102);\n}\n.container_night .output_night .preview {\n background-color: #1e1e1e;\n box-shadow: 0 0 70px rgba(0, 0, 0, 0.3);\n}\n.container_night .output_night .preview-wrapper {\n background-color: #1e1e1e;\n box-shadow: inset 0 0 0 1px rgba(233, 231, 231, 0.102);\n}\n.container_night .output_night .code-snippet__fix {\n background-color: #eeeeee;\n}\n.container_night .cm-s-style-mirror .CodeMirror-matchingbracket {\n color: #f0f0f0 !important;\n background: #1e1e1e !important;\n}\n.container_night .cm-s-xq-light span.cm-variable-2,\n.container_night .cm-s-style-mirror span.cm-tag {\n color: gray;\n}\n.container_night .cm-s-xq-light .CodeMirror-activeline-background {\n background-color: transparent;\n}\n.container_night .cm-s-xq-light span.cm-string {\n color: #8e9eb9;\n}\n.container_night .cm-s-xq-light span.cm-link {\n color: #84868b;\n}\n.container_night .editor__header {\n background-color: #3c3c3c;\n}\n.container_night .el-button {\n color: #f0f0f0;\n background-color: #1e1e1e;\n border: 1px solid transparent;\n}\n.container_night .el-button.is-plain:focus,\n.container_night .el-button.is-plain:hover {\n background: #1e1e1e;\n color: #f0f0f0;\n border: 1px solid #f0f0f0;\n}\n.container_night .el-button.is-plain:focus i,\n.container_night .el-button.is-plain:hover i {\n color: #f0f0f0;\n}\n.container_night .insert__dialog .el-dialog,\n.container_night .about__dialog .el-dialog,\n.container_night .reset__dialog .el-dialog,\n.container_night .upload__dialog .el-dialog {\n background-color: #333333;\n}\n.container_night .insert__dialog .el-dialog__body,\n.container_night .about__dialog .el-dialog__body,\n.container_night .reset__dialog .el-dialog__body,\n.container_night .upload__dialog .el-dialog__body {\n color: #f0f0f0;\n}\n.container_night .insert__dialog .el-dialog__title,\n.container_night .about__dialog .el-dialog__title,\n.container_night .reset__dialog .el-dialog__title,\n.container_night .upload__dialog .el-dialog__title,\n.container_night .insert__dialog .el-form-item__label,\n.container_night .about__dialog .el-form-item__label,\n.container_night .reset__dialog .el-form-item__label,\n.container_night .upload__dialog .el-form-item__label {\n color: #f0f0f0;\n}\n.container_night .insert__dialog .el-tabs__item,\n.container_night .about__dialog .el-tabs__item,\n.container_night .reset__dialog .el-tabs__item,\n.container_night .upload__dialog .el-tabs__item {\n color: gray;\n}\n.container_night .insert__dialog .el-tabs__nav-wrap::after,\n.container_night .about__dialog .el-tabs__nav-wrap::after,\n.container_night .reset__dialog .el-tabs__nav-wrap::after,\n.container_night .upload__dialog .el-tabs__nav-wrap::after {\n background-color: #84868b;\n}\n.container_night .insert__dialog .is-active,\n.container_night .about__dialog .is-active,\n.container_night .reset__dialog .is-active,\n.container_night .upload__dialog .is-active {\n color: #f0f0f0;\n}\n.container_night .insert__dialog .el-upload-dragger,\n.container_night .about__dialog .el-upload-dragger,\n.container_night .reset__dialog .el-upload-dragger,\n.container_night .upload__dialog .el-upload-dragger {\n background-color: #1e1e1e;\n}\n.container_night ::v-deep .el-icon-upload,\n.container_night .el-icon-download,\n.container_night .el-icon-refresh,\n.container_night .el-icon-s-grid,\n.container_night .el-icon-document {\n color: #f0f0f0;\n}\n.container_night ::-webkit-scrollbar {\n background-color: #1e1e1e;\n}\n.CodeMirror {\n padding-bottom: 0;\n height: 100% !important;\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n font-size: 14px;\n font-family: \"PingFang SC\", BlinkMacSystemFont, Roboto, \"Helvetica Neue\", sans-serif !important;\n}\n.CodeMirror-vscrollbar:focus {\n outline: none;\n}\n.CodeMirror-scroll {\n padding: 0 20px;\n overflow-x: hidden !important;\n overflow-y: scroll !important;\n}\n.CodeMirror-vscrollbar {\n width: 0px;\n height: 0px;\n}\n.CodeMirror-wrap {\n padding-top: 20px;\n padding-bottom: 20px;\n box-sizing: border-box;\n}\n/*wechat code block*/\n.rich_media_content .code-snippet *,\n.rich_media_content .code-snippet__wechat * {\n max-width: 1000% !important;\n}\n.code-snippet__wechat {\n word-wrap: break-word !important;\n font-size: 14px;\n margin: 10px 8px;\n color: #333;\n position: relative;\n background-color: rgba(27, 31, 35, 0.05);\n border: 1px solid #f0f0f0;\n border-radius: 2px;\n display: flex;\n line-height: 24px;\n}\n.code-snippet__wechat .code-snippet__line-index {\n counter-reset: line;\n flex-shrink: 0;\n height: 100%;\n padding: 1em;\n list-style-type: none;\n}\n.code-snippet__wechat .code-snippet__line-index li {\n list-style-type: none;\n text-align: right;\n}\n.code-snippet__wechat .code-snippet__line-index li::before {\n min-width: 1.5em;\n text-align: right;\n left: -2.5em;\n counter-increment: line;\n content: counter(line);\n display: inline;\n color: rgba(0, 0, 0, 0.15);\n}\n.code-snippet__wechat pre {\n overflow-x: auto;\n padding: 1em 1em 1em 1em;\n white-space: normal;\n flex: 1;\n -webkit-overflow-scrolling: touch;\n}\n.code-snippet__wechat code {\n text-align: left;\n font-size: 14px;\n white-space: pre;\n display: flex;\n position: relative;\n font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n}\n.code-snippet__wechat ul li {\n list-style: none;\n}\n/*github code block*/\n.code-snippet__github {\n display: flex;\n font-size: 12px;\n margin: 10px 8px;\n position: relative;\n height: auto;\n background-color: #f7f7f7;\n border-radius: 8px;\n}\n.code-snippet__github .code-snippet__line-index {\n display: none;\n}\n.code-snippet__github .code__pre {\n display: grid;\n position: relative;\n counter-reset: line;\n overflow-x: auto;\n padding: 1em;\n white-space: normal;\n flex: 1;\n line-height: 20px;\n font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;\n -webkit-overflow-scrolling: touch;\n}\n.code-snippet__github pre {\n display: inline-block;\n font-size: 12px;\n}\n.code-snippet__github code {\n display: flex;\n position: relative;\n padding-right: 8px;\n text-align: left;\n white-space: pre;\n font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n}\n.code-snippet__github code::before {\n display: none;\n}\n.code-snippet__github ul li {\n list-style: none;\n}\n::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n background-color: #fff;\n}\n::-webkit-scrollbar-track {\n border-radius: 6px;\n background-color: rgba(200, 200, 200, 0.3);\n}\n::-webkit-scrollbar-thumb {\n border-radius: 6px;\n background-color: rgba(144, 146, 152, 0.5);\n transition: background-color 0.3s;\n}\n::-webkit-scrollbar-thumb:hover {\n background-color: rgba(144, 146, 152, 0.5);\n}\n/* CSS-hints */\n.CodeMirror-hints {\n position: absolute;\n z-index: 10;\n overflow: hidden;\n list-style: none;\n margin: 0;\n padding: 2px;\n border-radius: 4px;\n background-color: #ffffff;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.08);\n min-width: 200px;\n font-size: 12px;\n font-family: monospace;\n max-height: 20em;\n overflow-y: auto;\n color: #333333;\n}\n.CodeMirror-hint {\n margin: 0;\n margin-top: 10px;\n padding: 4px 6px;\n border-radius: 2px;\n white-space: pre;\n color: black;\n cursor: pointer;\n}\n.CodeMirror-hint:first-of-type {\n margin-top: 0;\n}\n.CodeMirror-hint:hover {\n background: #f0f0f0;\n}\n","/*\n\n Name: Base16 Default Light\n Author: Chris Kempson (http://chriskempson.com)\n\n CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-style-mirror.CodeMirror {\n color: #444;\n font-size: 16px;\n line-height: 25px;\n}\n\n.cm-s-style-mirror .CodeMirror-scroll {\n padding: 20px;\n width: 100%;\n box-sizing: border-box;\n overflow-x: hidden !important;\n overflow-y: scroll !important;\n}\n\n.cm-s-style-mirror div.CodeMirror-selected {\n background: #e0e0e0;\n}\n\n.cm-s-style-mirror .CodeMirror-line::selection,\n.cm-s-style-mirror .CodeMirror-line > span::selection,\n.cm-s-style-mirror .CodeMirror-line > span > span::selection {\n background: #e0e0e0;\n}\n\n.cm-s-style-mirror .CodeMirror-line::-moz-selection,\n.cm-s-style-mirror .CodeMirror-line > span::-moz-selection,\n.cm-s-style-mirror .CodeMirror-line > span > span::-moz-selection {\n background: #e0e0e0;\n}\n\n.cm-s-style-mirror .CodeMirror-gutters {\n background: #f5f5f5;\n border-right: 0px;\n}\n\n.cm-s-style-mirror .CodeMirror-guttermarker {\n color: #ac4142;\n}\n\n.cm-s-style-mirror .CodeMirror-guttermarker-subtle {\n color: #b0b0b0;\n}\n\n.cm-s-style-mirror .CodeMirror-linenumber {\n color: #b0b0b0;\n}\n\n.cm-s-style-mirror .CodeMirror-cursor {\n border-left: 1px solid #505050;\n}\n\n.cm-s-style-mirror span.cm-comment {\n color: green;\n}\n\n.cm-s-style-mirror span.cm-atom {\n color: #aa759f;\n}\n\n.cm-s-style-mirror span.cm-number {\n color: #aa759f;\n}\n\n.cm-s-style-mirror span.cm-property,\n.cm-s-style-mirror span.cm-attribute {\n color: #90a959;\n}\n\n.cm-s-style-mirror span.cm-keyword {\n color: #023a52;\n}\n\n.cm-s-style-mirror span.cm-string {\n color: #e46918;\n}\n\n.cm-s-style-mirror span.cm-variable {\n color: #90a959;\n}\n\n.cm-s-style-mirror span.cm-variable-2 {\n color: #00695f;\n}\n\n.cm-s-style-mirror span.cm-variable-3 {\n color: #2e6e8a;\n}\n\n.cm-s-style-mirror span.cm-def {\n color: #d28445;\n}\n\n.cm-s-style-mirror span.cm-bracket {\n color: #202020;\n}\n\n.cm-s-style-mirror span.cm-tag {\n color: #000;\n}\n\n.cm-s-style-mirror span.cm-link {\n color: #b26a00;\n}\n\n.cm-s-style-mirror span.cm-error {\n /* background: #ac4142;\n color: #f5f5f5; */\n text-decoration: underline;\n text-decoration-style: wavy;\n text-decoration-color: #df8d8e;\n}\n\n.cm-s-style-mirror .CodeMirror-activeline-background {\n background: #dddcdc;\n}\n\n.cm-s-style-mirror .CodeMirror-matchingbracket {\n color: rgb(32, 32, 32) !important;\n background-color: rgba(0, 0, 0, 0.1) !important;\n}\n","/*! Color themes for Google Code Prettify | MIT License | github.com/jmblog/color-themes-for-google-code-prettify */\n.prettyprint {\n font-family: Menlo, Bitstream Vera Sans Mono, DejaVu Sans Mono, Monaco,\n Consolas, monospace;\n border: 0 !important;\n}\n.pln {\n color: #333;\n}\nol.linenums {\n margin-top: 0;\n margin-bottom: 0;\n color: #ccc;\n}\nli.L0,\nli.L1,\nli.L2,\nli.L3,\nli.L4,\nli.L5,\nli.L6,\nli.L7,\nli.L8,\nli.L9 {\n padding-left: 1em;\n background-color: #fff;\n list-style-type: decimal;\n}\n@media screen {\n .str {\n color: #183691;\n }\n .kwd {\n color: #a71d5d;\n }\n .com {\n color: #969896;\n }\n .typ {\n color: #0086b3;\n }\n .lit {\n color: #0086b3;\n }\n .pun {\n color: #333;\n }\n .opn {\n color: #333;\n }\n .clo {\n color: #333;\n }\n .tag {\n color: navy;\n }\n .atn {\n color: #795da3;\n }\n .atv {\n color: #183691;\n }\n .dec {\n color: #333;\n }\n .var {\n color: teal;\n }\n .fun {\n color: #900;\n }\n}\n","@nightBgColor: #333333;\n@nightPreviewColor: #1e1e1e;\n@nightHeaderColor: #3c3c3c;\n@nightCodeMirrorColor: #1e1e1e;\n@nightActiveCodeMirrorColor: gray;\n@nightFontColor: gray;\n@nightLinkColor: #8e9eb9;\n@nightLinkTextColor: #84868b;\n@nightWhiteColor: #f0f0f0;\n@nightButtonBg: #1e1e1e;\n@nightButtonHoverColor: #84868b;\n@nightLineColor: #84868b;\n\n.container_night {\n background-color: @nightBgColor;\n\n .el-main {\n background-color: @nightBgColor;\n }\n\n .CodeMirror {\n caret-color: @nightFontColor;\n color: @nightFontColor;\n background-color: @nightCodeMirrorColor;\n box-shadow: inset 0 0 0 1px rgba(100, 37, 37, 0.102);\n }\n\n .output_night {\n .preview {\n background-color: @nightPreviewColor;\n box-shadow: 0 0 70px rgba(0, 0, 0, 0.3);\n }\n\n .preview-wrapper {\n background-color: @nightCodeMirrorColor;\n box-shadow: inset 0 0 0 1px rgba(233, 231, 231, 0.102);\n }\n\n .code-snippet__fix {\n background-color: rgb(238, 238, 238);\n }\n }\n\n .cm-s-style-mirror .CodeMirror-matchingbracket {\n color: @nightWhiteColor !important;\n background: rgb(30, 30, 30) !important;\n }\n\n .cm-s-xq-light span.cm-variable-2,\n .cm-s-style-mirror span.cm-tag {\n color: @nightFontColor;\n }\n\n .cm-s-xq-light .CodeMirror-activeline-background {\n background-color: transparent;\n }\n\n .cm-s-xq-light span.cm-string {\n color: @nightLinkColor;\n }\n\n .cm-s-xq-light span.cm-link {\n color: @nightLinkTextColor;\n }\n\n .editor__header {\n background-color: @nightHeaderColor;\n }\n\n .el-button {\n color: @nightWhiteColor;\n background-color: @nightCodeMirrorColor;\n border: 1px solid transparent;\n }\n\n .el-button.is-plain:focus,\n .el-button.is-plain:hover {\n background: @nightButtonBg;\n color: @nightWhiteColor;\n border: 1px solid @nightWhiteColor;\n\n i {\n color: @nightWhiteColor;\n }\n }\n\n .insert__dialog,\n .about__dialog,\n .reset__dialog,\n .upload__dialog {\n .el-dialog {\n background-color: @nightBgColor;\n }\n\n .el-dialog__body {\n color: @nightWhiteColor;\n }\n\n .el-dialog__title,\n .el-form-item__label {\n color: @nightWhiteColor;\n }\n\n .el-tabs__item {\n color: @nightActiveCodeMirrorColor;\n }\n\n .el-tabs__nav-wrap::after {\n background-color: @nightLineColor;\n }\n\n .is-active {\n color: @nightWhiteColor;\n }\n\n .el-upload-dragger {\n background-color: @nightButtonBg;\n }\n }\n\n ::v-deep .el-icon-upload,\n .el-icon-download,\n .el-icon-refresh,\n .el-icon-s-grid,\n .el-icon-document {\n color: @nightWhiteColor;\n }\n\n ::-webkit-scrollbar {\n background-color: @nightCodeMirrorColor;\n }\n}\n\n.CodeMirror {\n padding-bottom: 0;\n height: 100% !important;\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n font-size: 14px;\n font-family: \"PingFang SC\", BlinkMacSystemFont, Roboto, \"Helvetica Neue\",\n sans-serif !important;\n}\n\n.CodeMirror-vscrollbar:focus {\n outline: none;\n}\n\n.CodeMirror-scroll {\n padding: 0 20px;\n overflow-x: hidden !important;\n overflow-y: scroll !important;\n}\n\n.CodeMirror-vscrollbar {\n width: 0px;\n height: 0px;\n}\n\n.CodeMirror-wrap {\n padding-top: 20px;\n padding-bottom: 20px;\n box-sizing: border-box;\n}\n","/*wechat code block*/\n.rich_media_content .code-snippet *,\n.rich_media_content .code-snippet__wechat * {\n max-width: 1000% !important;\n}\n\n.code-snippet__wechat {\n word-wrap: break-word !important;\n font-size: 14px;\n margin: 10px 8px;\n color: #333;\n position: relative;\n background-color: rgba(27, 31, 35, 0.05);\n border: 1px solid #f0f0f0;\n border-radius: 2px;\n display: flex;\n line-height: 24px;\n}\n\n.code-snippet__wechat .code-snippet__line-index {\n counter-reset: line;\n flex-shrink: 0;\n height: 100%;\n padding: 1em;\n list-style-type: none;\n}\n\n.code-snippet__wechat .code-snippet__line-index li {\n list-style-type: none;\n text-align: right;\n}\n\n.code-snippet__wechat .code-snippet__line-index li::before {\n min-width: 1.5em;\n text-align: right;\n left: -2.5em;\n counter-increment: line;\n content: counter(line);\n display: inline;\n color: rgba(0, 0, 0, 0.15);\n}\n\n.code-snippet__wechat pre {\n overflow-x: auto;\n padding: 1em 1em 1em 1em;\n white-space: normal;\n flex: 1;\n -webkit-overflow-scrolling: touch;\n}\n\n.code-snippet__wechat code {\n text-align: left;\n font-size: 14px;\n white-space: pre;\n display: flex;\n position: relative;\n font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n}\n\n.code-snippet__wechat ul li {\n list-style: none;\n}\n","@import url(\"../github-v2.min.css\");\n/*github code block*/\n.code-snippet__github {\n display: flex;\n font-size: 12px;\n margin: 10px 8px;\n position: relative;\n height: auto;\n background-color: #f7f7f7;\n border-radius: 8px;\n\n .code-snippet__line-index {\n display: none;\n }\n\n .code__pre {\n display: grid;\n position: relative;\n counter-reset: line;\n overflow-x: auto;\n padding: 1em;\n white-space: normal;\n flex: 1;\n line-height: 20px;\n font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;\n -webkit-overflow-scrolling: touch;\n }\n\n pre {\n display: inline-block;\n font-size: 12px;\n }\n\n code {\n display: flex;\n position: relative;\n padding-right: 8px;\n text-align: left;\n white-space: pre;\n font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n &::before {\n display: none;\n }\n }\n\n ul li {\n list-style: none;\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* 每个页面公共css */\n@import url(\"./assets/less/style-mirror.css\");\n@import url(\"./assets/less/theme.less\");\n@import url(\"./assets/less/code-theme.less\");\n::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n background-color: #fff;\n}\n\n::-webkit-scrollbar-track {\n border-radius: 6px;\n background-color: rgba(200, 200, 200, 0.3);\n}\n\n::-webkit-scrollbar-thumb {\n border-radius: 6px;\n background-color: rgba(144, 146, 152, 0.5);\n transition: background-color 0.3s;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background-color: rgba(144, 146, 152, 0.5);\n}\n/* CSS-hints */\n.CodeMirror-hints {\n position: absolute;\n z-index: 10;\n overflow: hidden;\n list-style: none;\n\n margin: 0;\n padding: 2px;\n\n border-radius: 4px;\n background-color: #ffffff;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.08);\n min-width: 200px;\n font-size: 12px;\n font-family: monospace;\n\n max-height: 20em;\n overflow-y: auto;\n color: #333333;\n}\n\n.CodeMirror-hint {\n margin: 0;\n margin-top: 10px;\n padding: 4px 6px;\n border-radius: 2px;\n white-space: pre;\n color: black;\n cursor: pointer;\n}\n.CodeMirror-hint:first-of-type {\n margin-top: 0;\n}\n.CodeMirror-hint:hover {\n background: #f0f0f0;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n.loading-wrapper {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n}\n.loading {\n text-align: center;\n position: fixed;\n width: 100%;\n height: 100%;\n overflow: hidden;\n z-index: 99999;\n background-color: #f2f2f2;\n}\n\n.loading_night {\n background-color: #303133;\n}\n\n.loading-text {\n font-size: 18px;\n font-weight: bold;\n margin-top: 26px;\n color: #303133;\n}\n\n.loading-anim {\n display: inline-block;\n width: 100px;\n height: 100px;\n background: url(\"../assets/images/favicon.png\") no-repeat;\n background-size: cover;\n}\n",".loading-wrapper {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n}\n.loading {\n text-align: center;\n position: fixed;\n width: 100%;\n height: 100%;\n overflow: hidden;\n z-index: 99999;\n background-color: #f2f2f2;\n}\n.loading_night {\n background-color: #303133;\n}\n.loading-text {\n font-size: 18px;\n font-weight: bold;\n margin-top: 26px;\n color: #303133;\n}\n.loading-anim {\n display: inline-block;\n width: 100px;\n height: 100px;\n background: url(\"../assets/images/favicon.png\") no-repeat;\n background-size: cover;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/deep/ .el-dialog {\n min-width: 440px;\n}\n.reset__dialog {\n text-align: center;\n}\n\n.text {\n text-align: center;\n}\n\n.dialog-footer {\n text-align: center;\n}\n"," /deep/ .el-dialog {\n min-width: 440px;\n}\n.reset__dialog {\n text-align: center;\n}\n.text {\n text-align: center;\n}\n.dialog-footer {\n text-align: center;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.editor__header {\n width: 100%;\n}\n.header__item {\n margin: 0 3px;\n}\n.header__item_last {\n margin-right: 8px;\n}\n.header__switch {\n margin-left: 8px;\n}\n.mode__switch {\n margin-left: 24px;\n margin-right: 24px;\n width: 24px;\n height: 24px;\n background: url(\"../../assets/images/night.png\") no-repeat;\n background-size: cover;\n transition: all 0.3s;\n}\n.mode__switch_black {\n background: url(\"../../assets/images/light.png\") no-repeat;\n background-size: cover;\n}\n.top {\n height: 60px;\n padding: 10px 20px;\n display: flex;\n align-items: center;\n margin-right: 0;\n}\n.el-select {\n margin-right: 12px;\n}\n.left-side {\n display: flex;\n align-items: center;\n flex: 1;\n}\n.right-side {\n display: flex;\n align-items: center;\n}\n\n/*\n.preview table tr:nth-child(even){\n background: rgb(250, 250, 250);\n}\n */\n.select-item-left {\n float: left;\n}\n\n.select-item-right {\n float: right;\n color: #8492a6;\n font-size: 13px;\n}\n",".editor__header {\n width: 100%;\n}\n.header__item {\n margin: 0 3px;\n}\n.header__item_last {\n margin-right: 8px;\n}\n.header__switch {\n margin-left: 8px;\n}\n.mode__switch {\n margin-left: 24px;\n margin-right: 24px;\n width: 24px;\n height: 24px;\n background: url(\"../../assets/images/night.png\") no-repeat;\n background-size: cover;\n transition: all 0.3s;\n}\n.mode__switch_black {\n background: url(\"../../assets/images/light.png\") no-repeat;\n background-size: cover;\n}\n.top {\n height: 60px;\n padding: 10px 20px;\n display: flex;\n align-items: center;\n margin-right: 0;\n}\n.el-select {\n margin-right: 12px;\n}\n.left-side {\n display: flex;\n align-items: center;\n flex: 1;\n}\n.right-side {\n display: flex;\n align-items: center;\n}\n/*\n.preview table tr:nth-child(even){\n background: rgb(250, 250, 250);\n}\n */\n.select-item-left {\n float: left;\n}\n.select-item-right {\n float: right;\n color: #8492a6;\n font-size: 13px;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/deep/ .el-dialog {\n min-width: 420px;\n}\n"," /deep/ .el-dialog {\n min-width: 420px;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/deep/ .el-dialog {\n width: 55%;\n min-height: 375px;\n min-width: 440px;\n}\n.tb-options {\n margin-bottom: 20px;\n}\n\n.input-table ::v-deep .el-input__inner {\n border-radius: 0;\n}\n\n.head-style /deep/ .el-input__inner {\n background-color: #f2f2f2;\n}\n"," /deep/ .el-dialog {\n width: 55%;\n min-height: 375px;\n min-width: 440px;\n}\n.tb-options {\n margin-bottom: 20px;\n}\n.input-table ::v-deep .el-input__inner {\n border-radius: 0;\n}\n.head-style /deep/ .el-input__inner {\n background-color: #f2f2f2;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.menu {\n position: absolute;\n border-radius: 4px;\n background-color: #ffffff;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.08);\n z-index: 9999;\n}\n\n.menu_item {\n margin-top: 10px;\n min-width: 200px;\n font-size: 12px;\n line-height: 20px;\n color: #333333;\n cursor: pointer;\n &:first-of-type {\n margin-top: 0;\n }\n &:hover {\n background: #f0f0f0;\n }\n span,\n .btn-upload {\n display: inline-block;\n padding: 4px 0;\n padding-left: 24px;\n width: 100%;\n }\n .btn-upload {\n margin: 0;\n border: none;\n outline: none;\n background: transparent;\n }\n .btn-upload:hover {\n background: #aaaaaa;\n }\n ::v-deep .el-upload {\n width: 100%;\n }\n}\n\n.menu__group {\n padding-top: 6px;\n padding-bottom: 6px;\n border-bottom: 1px solid #eeeeee;\n &:last-of-type {\n border-bottom: none;\n }\n}\n\nli:hover {\n background-color: #1790ff;\n}\n\nli {\n font-size: 15px;\n list-style: none;\n}\n",".menu {\n position: absolute;\n border-radius: 4px;\n background-color: #ffffff;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.08);\n z-index: 9999;\n}\n.menu_item {\n margin-top: 10px;\n min-width: 200px;\n font-size: 12px;\n line-height: 20px;\n color: #333333;\n cursor: pointer;\n}\n.menu_item:first-of-type {\n margin-top: 0;\n}\n.menu_item:hover {\n background: #f0f0f0;\n}\n.menu_item span,\n.menu_item .btn-upload {\n display: inline-block;\n padding: 4px 0;\n padding-left: 24px;\n width: 100%;\n}\n.menu_item .btn-upload {\n margin: 0;\n border: none;\n outline: none;\n background: transparent;\n}\n.menu_item .btn-upload:hover {\n background: #aaaaaa;\n}\n.menu_item ::v-deep .el-upload {\n width: 100%;\n}\n.menu__group {\n padding-top: 6px;\n padding-bottom: 6px;\n border-bottom: 1px solid #eeeeee;\n}\n.menu__group:last-of-type {\n border-bottom: none;\n}\nli:hover {\n background-color: #1790ff;\n}\nli {\n font-size: 15px;\n list-style: none;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/deep/ .el-dialog {\n width: 55%;\n min-height: 615px;\n min-width: 640px;\n}\n/deep/ .el-upload-dragger {\n display: flex;\n flex-flow: column;\n justify-content: center;\n width: 500px;\n height: 360px;\n .el-icon-upload {\n margin-top: 0;\n }\n}\n/deep/ .el-dialog__body {\n padding-bottom: 50px;\n}\n.upload-panel {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n\n .el-select {\n align-self: flex-end;\n margin: 0 67.75px 20px;\n width: 100px;\n }\n}\n\n.github-panel {\n display: flex;\n justify-content: center;\n}\n\n.setting-form {\n width: 100%;\n\n .el-form-item {\n margin: 15px;\n }\n\n .el-form-item:last-child {\n text-align: right;\n }\n}\n"," /deep/ .el-dialog {\n width: 55%;\n min-height: 615px;\n min-width: 640px;\n}\n /deep/ .el-upload-dragger {\n display: flex;\n flex-flow: column;\n justify-content: center;\n width: 500px;\n height: 360px;\n}\n /deep/ .el-upload-dragger .el-icon-upload {\n margin-top: 0;\n}\n /deep/ .el-dialog__body {\n padding-bottom: 50px;\n}\n.upload-panel {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n}\n.upload-panel .el-select {\n align-self: flex-end;\n margin: 0 67.75px 20px;\n width: 100px;\n}\n.github-panel {\n display: flex;\n justify-content: center;\n}\n.setting-form {\n width: 100%;\n}\n.setting-form .el-form-item {\n margin: 15px;\n}\n.setting-form .el-form-item:last-child {\n text-align: right;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.editor__header {\n padding: 0;\n}\n","@import url(\"../../../assets/less/github-v2.min.css\");\n* {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\ninput,\nbutton,\ntextarea {\n font-family: inherit;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-weight: normal;\n}\nem {\n font-style: normal !important;\n}\nhtml,\nbody {\n height: 100%;\n font-family: \"PingFang SC\", BlinkMacSystemFont, Roboto, \"Helvetica Neue\", sans-serif;\n}\n.el-message__icon {\n display: none;\n}\n.container {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n.web-title {\n margin: 0 15px 0 5px;\n}\n.web-icon {\n width: auto;\n height: 1.5rem;\n vertical-align: middle;\n}\n#editor {\n height: 100%;\n display: block;\n border: none;\n width: 100%;\n padding: 10px;\n}\nsection {\n height: 100%;\n}\n.main-body {\n display: flex;\n flex-direction: column;\n padding-top: 0;\n}\n.ctrl {\n flex-basis: 60px;\n flex-grow: 1;\n flex-shrink: 1;\n display: flex;\n align-items: center;\n}\n.preview-wrapper {\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n padding: 0;\n align-items: center;\n justify-content: center;\n display: flex;\n word-break: break-all;\n overflow-y: scroll;\n}\n.main-section {\n display: flex;\n height: 100%;\n}\n.hint {\n opacity: 0.6;\n margin: 20px 0;\n}\n.preview {\n position: relative;\n margin: 0 -20px;\n width: 375px;\n padding: 20px;\n font-size: 14px;\n box-sizing: border-box;\n outline: none;\n box-shadow: 0 0 60px rgba(0, 0, 0, 0.1);\n}\n.preview table {\n margin-bottom: 10px;\n border-collapse: collapse;\n display: table;\n width: 100% !important;\n}\n/* ele ui */\n.el-form-item {\n margin-bottom: 0 !important;\n}\n.el-tooltip {\n cursor: pointer;\n}\nuni-page-body,\nuni-page-refresh {\n display: block;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.main-body {\n padding-top: 12px;\n overflow: hidden;\n}\n.el-main {\n transition: all 0.3s;\n padding: 0;\n margin: 20px;\n margin-top: 0;\n}\n.container {\n transition: all 0.3s;\n}\n.textarea-wrapper {\n height: 100%;\n}\n.preview-wrapper_night {\n overflow-y: inherit;\n position: relative;\n left: -3px;\n .preview {\n background-color: #fff;\n }\n}\n#output-wrapper {\n position: relative;\n user-select: text;\n}\n.loading-mask {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 376px;\n height: 101%;\n padding-top: 1px;\n font-size: 15px;\n color: gray;\n background-color: #1e1e1e;\n .loading__img {\n position: absolute;\n left: 50%;\n top: 330px;\n width: 50px;\n height: 50px;\n transform: translate(-50%, -50%);\n background: url(\"../../../assets/images/favicon.png\") no-repeat;\n background-size: cover;\n }\n span {\n position: absolute;\n left: 50%;\n top: 390px;\n transform: translate(-50%, -50%);\n }\n}\n.bounceInRight {\n animation-name: bounceInRight;\n animation-duration: 1s;\n animation-fill-mode: both;\n}\n/deep/ .preview-table {\n border-spacing: 0px;\n}\n\n@keyframes bounceInRight {\n 0%,\n 60%,\n 75%,\n 90%,\n 100% {\n transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 0% {\n opacity: 0;\n transform: translate3d(3000px, 0, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(-25px, 0, 0);\n }\n 75% {\n transform: translate3d(10px, 0, 0);\n }\n 90% {\n transform: translate3d(-5px, 0, 0);\n }\n 100% {\n transform: none;\n }\n}\n","* {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n\ninput,\nbutton,\ntextarea {\n font-family: inherit;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-weight: normal;\n}\n\nem {\n font-style: normal !important;\n}\n\nhtml,\nbody {\n height: 100%;\n font-family: \"PingFang SC\", BlinkMacSystemFont, Roboto, \"Helvetica Neue\",\n sans-serif;\n}\n\n.el-message__icon {\n display: none;\n}\n\n.container {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.web-title {\n margin: 0 15px 0 5px;\n}\n\n.web-icon {\n width: auto;\n height: 1.5rem;\n vertical-align: middle;\n}\n\n#editor {\n height: 100%;\n display: block;\n border: none;\n width: 100%;\n padding: 10px;\n}\n\nsection {\n height: 100%;\n}\n\n.main-body {\n display: flex;\n flex-direction: column;\n padding-top: 0;\n}\n\n.ctrl {\n flex-basis: 60px;\n flex-grow: 1;\n flex-shrink: 1;\n display: flex;\n align-items: center;\n}\n\n.preview-wrapper {\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n padding: 0;\n align-items: center;\n justify-content: center;\n display: flex;\n word-break: break-all;\n overflow-y: scroll;\n}\n\n.main-section {\n display: flex;\n height: 100%;\n}\n\n.hint {\n opacity: 0.6;\n margin: 20px 0;\n}\n\n.preview {\n position: relative;\n margin: 0 -20px;\n width: 375px;\n padding: 20px;\n font-size: 14px;\n box-sizing: border-box;\n outline: none;\n box-shadow: 0 0 60px rgba(0, 0, 0, 0.1);\n}\n\n.preview table {\n margin-bottom: 10px;\n border-collapse: collapse;\n display: table;\n width: 100% !important;\n}\n\n/* ele ui */\n.el-form-item {\n margin-bottom: 0 !important;\n}\n\n.el-tooltip {\n cursor: pointer;\n}\n\nuni-page-body,\nuni-page-refresh {\n display: block;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n}\n","\n \n \n \n \n \n\n\n\n\n"]}
\ No newline at end of file
diff --git a/index.html b/index.html
index 717e82e..3fd89ec 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-
md Please enable JavaScript to continue.
\ No newline at end of file
+md Please enable JavaScript to continue.
\ No newline at end of file
diff --git a/js/app.2090231c.js b/js/app.2090231c.js
deleted file mode 100644
index b45b0f5..0000000
--- a/js/app.2090231c.js
+++ /dev/null
@@ -1,4 +0,0 @@
-(function(e){function t(t){for(var n,a,c=t[0],s=t[1],l=t[2],d=0,f=[];d['.concat(e[0],"]: ").concat(e[1]," "):'['.concat(e[0],"]
").concat(e[1],": ").concat(e[2]," ")}));return"引用链接 ").concat(e.join("\n"),"
")},this.buildAddition=function(){return"\n \n "},this.setOptions=function(e){o.opts=s(o.opts,e)},this.hasFootnotes=function(){return 0!==i.length},this.getRenderer=function(e){i=[],r=0,a=o.buildTheme(o.opts.theme);var t=new g.a.Renderer;return t.heading=function(e,t){switch(t){case 1:return"").concat(e," ");case 2:return"").concat(e," ");case 3:return"").concat(e," ");default:return"").concat(e," ")}},t.paragraph=function(e){return-1!=e.indexOf("").concat(e,"")},t.blockquote=function(e){return e=e.replace(//g,"")),"
").concat(e," ")},t.code=function(e,t){e=e.replace(//g,">");var o=e.split("\n").map((function(e){return''.concat(e||" ","
")})),n="github";return'\n \n \n ').concat(o.join(""),"\n \n \n ")},t.codespan=function(e,t){return"").concat(e,"
")},t.listitem=function(e){return"<%s/> ').concat(e," ")},t.list=function(e,t,o){e=e.replace(/<\/*p.*?>/g,"");var n=e.split("<%s/>");if(!t)return e=n.join("•"),"").concat(e,"
");e=n[0];for(var i=1;i").concat(e,"")},t.image=function(e,t,o){var i="";o&&(i="").concat(o," "));var r=l("figure"),a=l(n?"image":"image_org");return" ').concat(i," ")},t.link=function(t,o,n){if(t.startsWith("https://mp.weixin.qq.com"))return'").concat(n," ");if(t===n)return n;if(e){var i=u(o||n,t);return"").concat(n,"[").concat(i,"] ")}return"").concat(n," ")},t.strong=function(e){return"").concat(e," ")},t.em=function(e){return''.concat(e," ")},t.table=function(e,t){return'").concat(e," ").concat(t,"
")},t.tablecell=function(e,t){return"").concat(e," ")},t.hr=function(){return' '},t}},b=h,v=o("56b3"),C=o.n(v),k='# 示例文章: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',y=k,S="/*\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/* 有序列表样式 */\nol {\n}\n/* 无序列表样式 */\nul {\n}\n/* 列表项样式 */\nli {\n}\n",x=S,w=o("3835"),O=(o("4160"),o("159b"),o("498a"),o("4de4"),o("b64b"),o("fb6a"),o("d3b7"),o("3ca3"),o("ddb0"),o("2b3d"),o("a630"),o("caad"),o("2532"),o("4fad"),{BASE:{"text-align":"left",color:"#3f3f3f","line-height":"1.75"},BASE_BLOCK:{margin:"1em 8px"},block:{h1:{"font-size":"1.2em","text-align":"center","font-weight":"bold",display:"table",margin:"2em auto 1em",padding:"0 1em","border-bottom":"2px solid rgba(0, 152, 116, 0.9)"},h2:{"font-size":"1.2em","text-align":"center","font-weight":"bold",display:"table",margin:"4em auto 2em",padding:"0 0.2em",background:"rgba(0, 152, 116, 0.9)",color:"#fff"},h3:{"font-weight":"bold","font-size":"1.1em",margin:"2em 8px 0.75em 0","line-height":"1.2","padding-left":"8px","border-left":"3px solid rgba(0, 152, 116, 0.9)"},h4:{"font-weight":"bold","font-size":"1em",margin:"2em 8px 0.5em",color:"rgba(66, 185, 131, 0.9)"},p:{margin:"1.5em 8px","letter-spacing":"0.1em"},blockquote:{"font-style":"normal","border-left":"none",padding:"1em","border-radius":"8px",color:"rgba(0,0,0,0.5)",background:"#f7f7f7",margin:"2em 8px"},blockquote_p:{"letter-spacing":"0.1em",color:"rgb(80, 80, 80)","font-size":"1em",display:"block"},code:{"font-size":"80%",overflow:"auto",color:"#333","white-space":"pre",background:"rgb(247, 247, 247)","border-radius":"8px",padding:"10px","line-height":"1.5",border:"1px solid rgb(236,236,236)",margin:"20px 0"},image:{"border-radius":"4px",display:"block",margin:"0.1em auto 0.5em",width:"100% !important"},image_org:{"border-radius":"4px",display:"block"},ol:{"margin-left":"0","padding-left":"1em"},ul:{"margin-left":"0","padding-left":"1em","list-style":"circle"},footnotes:{margin:"0.5em 8px","font-size":"80%"},figure:{margin:"1.5em 8px"}},inline:{listitem:{"text-indent":"-1em",display:"block",margin:"0.2em 8px"},codespan:{"font-size":"90%","white-space":"pre",color:"#d14",background:"rgba(27,31,35,.05)",padding:"3px 5px","border-radius":"4px"},link:{color:"#576b95"},wx_link:{color:"#576b95","text-decoration":"none"},strong:{color:"rgba(15, 76, 129, 0.9)","font-weight":"bold"},table:{"border-collapse":"collapse","text-align":"center",margin:"1em 8px"},thead:{background:"rgba(0, 0, 0, 0.05)","font-weight":"bold"},td:{border:"1px solid #dfdfdf",padding:"0.25em 0.5em"},footnote:{"font-size":"12px"},figcaption:{"text-align":"center",color:"#888","font-size":"0.8em"}}}),_=o("325b"),T=o.n(_),E=o("4fc3"),I=o.n(E),$=o("d238"),j=o.n($);function M(e){return function(t){var o=JSON.parse(JSON.stringify(e));return o.block.h1["border-bottom"]="2px solid ".concat(t),o.block.h2["background"]=t,o.block.h3["border-left"]="3px solid ".concat(t),o.block.h4["color"]=t,o.inline.strong["color"]=t,o}}var R=function(e,t){var o=JSON.parse(JSON.stringify(e));return o.block.h1["border-bottom"]="2px solid ".concat(t),o.block.h2["background"]=t,o.block.h3["border-left"]="3px solid ".concat(t),o.block.h4["color"]=t,o.inline.strong["color"]=t,o};function A(e){return function(t){var o=JSON.parse(JSON.stringify(e));return o.block.h1["font-size"]="".concat(1.14*t,"px"),o.block.h2["font-size"]="".concat(1.1*t,"px"),o.block.h3["font-size"]="".concat(t,"px"),o.block.h4["font-size"]="".concat(t,"px"),o}}var G=M(O),H=A(O);function z(e,t,o){var n=JSON.parse(JSON.stringify(o));return n.block.h1["border-bottom"]="2px solid ".concat(t),n.block.h2["background"]=t,n.block.h3["border-left"]="3px solid ".concat(t),n.block.h4["color"]=t,n.inline.strong["color"]=t,n.block.h1=Object.assign(n.block.h1,e.h1),n.block.h2=Object.assign(n.block.h2,e.h2),n.block.h3=Object.assign(n.block.h3,e.h3),n.block.h4=Object.assign(n.block.h4,e.h4),n.block.p=Object.assign(n.block.p,e.p),n.block.blockquote=Object.assign(n.block.blockquote,e.blockquote),n.block.blockquote_p=Object.assign(n.block.blockquote_p,e.blockquote_p),n.block.image=Object.assign(n.block.image,e.image),n.inline.strong=Object.assign(n.inline.strong,e.strong),n.inline.codespan=Object.assign(n.inline.codespan,e.codespan),n.inline.link=Object.assign(n.inline.link,e.link),n.inline.wx_link=Object.assign(n.inline.wx_link,e.wx_link),n.block.ul=Object.assign(n.block.ul,e.ul),n.block.ol=Object.assign(n.block.ol,e.ol),n.inline.listitem=Object.assign(n.inline.listitem,e.li),n}function N(e){var t,o;while(-1!==(t=e.indexOf("/*"))&&-1!==(o=e.indexOf("*/")))e=e.substring(0,t)+e.substring(o+2);var n={},i=function(){var t=e.indexOf("{"),o=e.indexOf("}");function i(e){var t={};return e.forEach((function(e){var o=e.indexOf(":"),n=e.substring(0,o).trim(),i=e.substring(o+1).trim();t[n]=i})),t}var r=e.substring(t+1,o).split(";").map((function(e){return e.trim()})).filter((function(e){return e.length>0}));r=i(r);var a=e.substring(0,t).split(",").map((function(e){return e.trim()}));a.forEach((function(e){n[e]||(n[e]={}),Object.keys(r).forEach((function(t){n[e][t]=r[t]}))})),e=e.slice(o+1).trim()};while(e.length>0&&-1!==e.indexOf("{")&&-1!==e.indexOf("}"))i();return n}function q(e,t){var o=e.getValue(0);o?localStorage.setItem(t,o):localStorage.removeItem(t)}function D(e){var t=T.a.format(e,{parser:"markdown",plugins:[I.a]});return t}function V(e){var t=T.a.format(e,{parser:"css",plugins:[j.a]});return t}function F(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"pre",t=document.getElementsByClassName("code__pre");t.length>0&&t.forEach((function(t){t.style.whiteSpace=e}))}function K(e){var t=document.createElement("a");t.download="content.md",t.style.display="none";var o=new Blob([e]);t.href=URL.createObjectURL(o),document.body.appendChild(t),t.click(),document.body.removeChild(t)}function L(){var e=document.querySelector("#output");i(e);var t=e.innerHTML,o=document.createElement("a");o.download="content.html",o.style.display="none";var n=new Blob([''.concat(t,"
")]);function i(e){switch(!0){case t(e):case o(e):case n(e):case r(e):e.setAttribute("style",U(e));default:}function t(e){return"SECTION"===e.tagName&&Array.from(e.classList).includes("code-snippet__github")}function o(e){return"PRE"===e.tagName&&Array.from(e.classList).includes("code__pre")}function n(e){return"CODE"===e.tagName&&Array.from(e.classList).includes("prettyprint")}function r(e){return"SPAN"===e.tagName&&(n(e.parentElement)||n(e.parentElement.parentElement))}e.children.length&&Array.from(e.children).forEach((function(e){return i(e)}))}o.href=URL.createObjectURL(n),document.body.appendChild(o),o.click(),document.body.removeChild(o)}function B(e){for(var t=e.data,o=e.rows,n=e.cols,i="",r=[],a=0;a1?a-1:a;1===a?r.push("---\t"):r.push(t["k_".concat(s,"_").concat(c)]||"")}i+=r.join("\t|\t"),i+="\t|\n"}return i}var P=function(e){return new Promise((function(t,o){var n=new FileReader;n.readAsDataURL(e),n.onload=function(){return t(n.result.split(",").pop())},n.onerror=function(e){return o(e)}}))};function Q(e){var t=/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(e.name);if(!t)return{ok:!1,msg:"请上传 JPG/PNG/GIF 格式的图片"};var o=5,n=e.size/1024/1024<=o;return n?{ok:!0}:{ok:!1,msg:"由于公众号限制,图片大小不能超过 ".concat(o,"M")}}function U(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["width","height"],o=getComputedStyle(e,null);return Object.entries(o).filter((function(e){var n=Object(w["a"])(e,1),i=n[0];return o.getPropertyValue(i)&&!t.includes(i)})).map((function(e){var t=Object(w["a"])(e,2),o=t[0],n=t[1];return"".concat(o,":").concat(n,";")})).join("")}i["default"].use(d["a"]);var J={wxRenderer:null,output:"",html:"",editor:null,cssEditor:null,currentFont:"",currentSize:"",currentColor:"",citeStatus:0,nightMode:!1,codeTheme:"github",rightClickMenuVisible:!1},W={setEditorValue:function(e,t){e.editor.setValue(t)},setCssEditorValue:function(e,t){e.cssEditor.setValue(t)},setWxRendererOptions:function(e,t){e.wxRenderer.setOptions(t)},setCiteStatus:function(e,t){e.citeStatus=t,localStorage.setItem("citeStatus",t)},setCurrentFont:function(e,t){e.currentFont=t,localStorage.setItem("fonts",t)},setCurrentSize:function(e,t){e.currentSize=t,localStorage.setItem("size",t)},setCurrentColor:function(e,t){e.currentColor=t,localStorage.setItem("color",t)},setCurrentCodeTheme:function(e,t){e.codeTheme=t,localStorage.setItem("codeTheme",t)},setRightClickMenuVisible:function(e,t){e.rightClickMenuVisible=t},themeChanged:function(e){e.nightMode=!e.nightMode,localStorage.setItem("nightMode",e.nightMode)},initEditorState:function(e){e.currentFont=localStorage.getItem("fonts")||f.builtinFonts[0].value,e.currentColor=localStorage.getItem("color")||f.colorOption[0].value,e.currentSize=localStorage.getItem("size")||f.sizeOption[2].value,e.codeTheme=localStorage.getItem("codeTheme")||f.codeThemeOption[0].value,e.citeStatus="true"===localStorage.getItem("citeStatus"),e.nightMode="true"===localStorage.getItem("nightMode"),e.wxRenderer=new b({theme:G(e.currentColor),fonts:e.currentFont,size:e.currentSize,status:e.citeStatus})},initEditorEntity:function(e){var t=document.getElementById("editor");t.value||(t.value=localStorage.getItem("__editor_content")||D(y)),e.editor=C.a.fromTextArea(t,{mode:"text/x-markdown",theme:"xq-light",lineNumbers:!1,lineWrapping:!0,styleActiveLine:!0,autoCloseBrackets:!0,extraKeys:{"Ctrl-F":function(e){var t=D(e.getValue(0));localStorage.setItem("__editor_content",t),e.setValue(t)},"Ctrl-S":function(e){}}})},initCssEditorEntity:function(e){var t=document.getElementById("cssEditor");t.value||(t.value=localStorage.getItem("__css_content")||x),e.cssEditor=C.a.fromTextArea(t,{mode:"css",theme:"style-mirror",lineNumbers:!1,lineWrapping:!0,matchBrackets:!0,autofocus:!0,extraKeys:{"Ctrl-F":function(e){var t=V(e.getValue(0));localStorage.setItem("__css_content",t),e.setValue(t)},"Ctrl-S":function(e){}}})},editorRefresh:function(e){var t=g()(e.editor.getValue(0),{renderer:e.wxRenderer.getRenderer(e.citeStatus)});t=t.replace(/(style=".*?)"/,'$1;margin-top: 0"'),e.citeStatus&&(t+=e.wxRenderer.buildFootnotes(),t+=e.wxRenderer.buildAddition()),e.output=t},clearEditorToDefault:function(e){var t=D(y);e.editor.setValue(t),e.cssEditor.setValue(x)}},Y=new d["a"].Store({state:J,mutations:W,actions:{}}),Z=o("5c96"),X=o.n(Z);o("0fae");i["default"].component(Z["Message"].name,Z["Message"]),i["default"].prototype.$loading=Z["Loading"].service,i["default"].prototype.$message=Z["Message"];o("a7be"),o("8d7e"),o("7b00"),o("959b"),o("10b2"),o("8c33"),o("31c5"),o("9b74"),o("111b");var ee=o("8c4f"),te=function(){var e=this,t=e.$createElement,o=e._self._c||t;return e.loading?o("transition",{attrs:{name:"fade"}},[o("loading")],1):o("codemirror-editor")},oe=[],ne=o("3a5e"),ie=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{staticClass:"container",class:{container_night:e.nightMode}},[o("el-container",[o("el-header",{staticClass:"editor__header"},[o("editor-header",{ref:"header",on:{refresh:e.onEditorRefresh,cssChanged:e.cssChanged,download:e.downloadEditorContent,export:e.exportEditorContent,showCssEditor:function(t){e.showCssEditor=!e.showCssEditor},"show-about-dialog":function(t){e.aboutDialogVisible=!0},"show-dialog-form":function(t){e.dialogFormVisible=!0},"show-dialog-upload-img":function(t){e.dialogUploadImgVisible=!0},startCopy:function(t){e.isCoping=!0,e.backLight=!0},endCopy:e.endCopy}})],1),o("el-main",{staticClass:"main-body"},[o("el-row",{staticClass:"main-section"},[o("el-col",{staticClass:"codeMirror-wrapper",attrs:{span:12},nativeOn:{contextmenu:function(t){return t.preventDefault(),e.openMenu(t)}}},[o("textarea",{directives:[{name:"model",rawName:"v-model",value:e.source,expression:"source"}],attrs:{id:"editor",type:"textarea",placeholder:"Your markdown text here."},domProps:{value:e.source},on:{input:function(t){t.target.composing||(e.source=t.target.value)}}})]),o("el-col",{ref:"preview",staticClass:"preview-wrapper",class:{"preview-wrapper_night":e.nightMode&&e.isCoping},attrs:{span:12,id:"preview"}},[o("section",{class:{output_night:e.nightMode&&!e.backLight},attrs:{id:"output-wrapper"}},[o("div",{staticClass:"preview"},[o("section",{attrs:{id:"output"},domProps:{innerHTML:e._s(e.output)}}),e.nightMode&&e.isCoping?o("div",{staticClass:"loading-mask"},[o("div",{staticClass:"loading__img"}),o("span",[e._v("正在生成")])]):e._e()])])]),o("transition",{attrs:{name:"custom-classes-transition","enter-active-class":"bounceInRight"}},[o("el-col",{directives:[{name:"show",rawName:"v-show",value:e.showCssEditor,expression:"showCssEditor"}],staticClass:"cssEditor-wrapper",attrs:{id:"cssBox",span:12}},[o("textarea",{attrs:{id:"cssEditor",type:"textarea",placeholder:"Your custom css here."}})])],1)],1)],1)],1),o("upload-img-dialog",{on:{close:function(t){e.dialogUploadImgVisible=!1},beforeUpload:e.beforeUpload,uploadImage:e.uploadImage,uploaded:e.uploaded},model:{value:e.dialogUploadImgVisible,callback:function(t){e.dialogUploadImgVisible=t},expression:"dialogUploadImgVisible"}}),o("about-dialog",{model:{value:e.aboutDialogVisible,callback:function(t){e.aboutDialogVisible=t},expression:"aboutDialogVisible"}}),o("insert-form-dialog",{model:{value:e.dialogFormVisible,callback:function(t){e.dialogFormVisible=t},expression:"dialogFormVisible"}}),o("right-click-menu",{attrs:{left:e.mouseLeft,top:e.mouseTop},on:{menuTick:e.onMenuEvent,closeMenu:e.closeRightClickMenu},model:{value:e.rightClickMenuVisible,callback:function(t){e.rightClickMenuVisible=t},expression:"rightClickMenuVisible"}})],1)},re=[],ae=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("el-container",{staticClass:"top is-dark"},[o("div",{staticClass:"left-side"},[o("el-tooltip",{attrs:{effect:e.effect,content:"上传图片",placement:"bottom-start"}},[o("i",{staticClass:"el-icon-upload",attrs:{size:"medium"},on:{click:function(t){return e.$emit("show-dialog-upload-img")}}})]),o("el-tooltip",{staticClass:"header__item",attrs:{effect:e.effect,content:"下载 Markdown 文档",placement:"bottom-start"}},[o("i",{staticClass:"el-icon-download",attrs:{size:"medium"},on:{click:function(t){return e.$emit("download")}}})]),o("el-tooltip",{staticClass:"header__item",attrs:{effect:e.effect,content:"导出 HTML",placement:"bottom-start"}},[o("i",{staticClass:"el-icon-document",attrs:{size:"medium"},on:{click:function(t){return e.$emit("export")}}})]),o("el-tooltip",{staticClass:"header__item",attrs:{effect:e.effect,content:"重置页面",placement:"bottom-start"}},[o("i",{staticClass:"el-icon-refresh",attrs:{size:"medium"},on:{click:function(t){e.showResetConfirm=!0}}})]),o("el-tooltip",{staticClass:"header__item header__item_last",attrs:{effect:e.effect,content:"插入表格",placement:"bottom-start"}},[o("i",{staticClass:"el-icon-s-grid",attrs:{size:"medium"},on:{click:function(t){return e.$emit("show-dialog-form")}}})]),o("el-select",{attrs:{size:"mini",placeholder:"选择字体",clearable:""},on:{change:e.fontChanged},model:{value:e.selectFont,callback:function(t){e.selectFont=t},expression:"selectFont"}},e._l(e.config.builtinFonts,(function(t){return o("el-option",{key:t.value,style:{fontFamily:t.value},attrs:{label:t.label,value:t.value}},[o("span",{staticClass:"select-item-left"},[e._v(e._s(t.label))]),o("span",{staticClass:"select-item-right"},[e._v("Abc")])])})),1),o("el-select",{attrs:{size:"mini",placeholder:"选择段落字号",clearable:""},on:{change:e.sizeChanged},model:{value:e.selectSize,callback:function(t){e.selectSize=t},expression:"selectSize"}},e._l(e.config.sizeOption,(function(t){return o("el-option",{key:t.value,attrs:{label:t.label,value:t.value}},[o("span",{staticClass:"select-item-left"},[e._v(e._s(t.label))]),o("span",{staticClass:"select-item-right"},[e._v(e._s(t.desc))])])})),1),o("el-select",{attrs:{size:"mini",placeholder:"选择颜色",clearable:""},on:{change:e.colorChanged},model:{value:e.selectColor,callback:function(t){e.selectColor=t},expression:"selectColor"}},e._l(e.config.colorOption,(function(t){return o("el-option",{key:t.value,attrs:{label:t.label,value:t.value}},[o("span",{staticClass:"select-item-left"},[e._v(e._s(t.label))]),o("span",{staticClass:"select-item-right"},[e._v(e._s(t.desc))])])})),1),o("el-tooltip",{attrs:{content:"自定义颜色",effect:e.effect,placement:"top"}},[o("el-color-picker",{attrs:{size:"mini","show-alpha":""},on:{change:e.colorChanged},model:{value:e.selectColor,callback:function(t){e.selectColor=t},expression:"selectColor"}})],1),o("el-tooltip",{attrs:{content:"微信外链自动转为文末引用",effect:e.effect,placement:"top"}},[o("el-switch",{staticClass:"header__switch",attrs:{"active-color":"#67c23a","inactive-color":"#dcdfe6"},on:{change:e.statusChanged},model:{value:e.citeStatus,callback:function(t){e.citeStatus=t},expression:"citeStatus"}})],1)],1),o("div",{staticClass:"right-side"},[o("el-tooltip",{staticClass:"item",attrs:{effect:e.effect,content:"自定义CSS样式",placement:"left"}},[o("el-button",{attrs:{type:e.btnType,plain:"",size:"medium",icon:"el-icon-setting"},on:{click:e.customStyle}})],1),o("el-button",{attrs:{type:e.btnType,plain:"",size:"medium",placement:"bottom-start"},on:{click:e.copy}},[e._v("复制")]),o("el-button",{staticClass:"about",attrs:{type:e.btnType,plain:"",size:"medium"},on:{click:function(t){return e.$emit("show-about-dialog")}}},[e._v("关于")]),o("el-tooltip",{attrs:{content:e.btnContent,effect:e.effect,placement:"bottom-start"}},[e.nightMode?o("div",{staticClass:"mode__switch mode__switch_black",on:{click:e.themeChanged}}):o("div",{staticClass:"mode__switch",on:{click:e.themeChanged}})])],1),o("resetDialog",{attrs:{showResetConfirm:e.showResetConfirm},on:{confirm:e.confirmReset,close:e.cancelReset}})],1)},ce=[],se=o("1da1"),le=(o("96cf"),o("466b")),ue=o.n(le);function de(){for(var e=document.getElementById("output"),t=e.getElementsByTagName("img"),o=0;o安全设置->私人令牌」中生成")])],1),o("el-form-item",[o("el-button",{attrs:{type:"primary"},on:{click:e.saveGiteeConfiguration}},[e._v("保存配置")])],1)],1)],1),o("el-tab-pane",{staticClass:"github-panel",attrs:{label:"GitHub 图床",name:"github"}},[o("el-form",{staticClass:"setting-form",attrs:{model:e.formGitHub,"label-position":"right","label-width":"140px"}},[o("el-form-item",{attrs:{label:"GitHub 仓库",required:!0}},[o("el-input",{attrs:{placeholder:"如:github.com/yanglbme/resource"},model:{value:e.formGitHub.repo,callback:function(t){e.$set(e.formGitHub,"repo","string"===typeof t?t.trim():t)},expression:"formGitHub.repo"}})],1),o("el-form-item",{attrs:{label:"分支"}},[o("el-input",{attrs:{placeholder:"如:release,可不填,默认 master"},model:{value:e.formGitHub.branch,callback:function(t){e.$set(e.formGitHub,"branch","string"===typeof t?t.trim():t)},expression:"formGitHub.branch"}})],1),o("el-form-item",{attrs:{label:"Token",required:!0}},[o("el-input",{attrs:{"show-password":"",placeholder:"如:cc1d0c1426d0fd0902bd2d7184b14da61b8abc46"},model:{value:e.formGitHub.accessToken,callback:function(t){e.$set(e.formGitHub,"accessToken","string"===typeof t?t.trim():t)},expression:"formGitHub.accessToken"}}),o("el-link",{attrs:{type:"primary",href:"https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token",target:"_blank"}},[e._v("如何获取 GitHub Token?")])],1),o("el-form-item",[o("el-button",{attrs:{type:"primary"},on:{click:e.saveGitHubConfiguration}},[e._v("保存配置")])],1)],1)],1),o("el-tab-pane",{staticClass:"github-panel",attrs:{label:"阿里云 OSS",name:"aliOSS"}},[o("el-form",{staticClass:"setting-form",attrs:{model:e.formAliOSS,"label-position":"right","label-width":"140px"}},[o("el-form-item",{attrs:{label:"AccessKey ID",required:!0}},[o("el-input",{attrs:{placeholder:"如:LTAI4GdoocsmdoxUf13ylbaNHk"},model:{value:e.formAliOSS.accessKeyId,callback:function(t){e.$set(e.formAliOSS,"accessKeyId","string"===typeof t?t.trim():t)},expression:"formAliOSS.accessKeyId"}})],1),o("el-form-item",{attrs:{label:"AccessKey Secret",required:!0}},[o("el-input",{attrs:{"show-password":"",placeholder:"如:cc1d0c142doocs0902bd2d7md4b14da6ylbabc46"},model:{value:e.formAliOSS.accessKeySecret,callback:function(t){e.$set(e.formAliOSS,"accessKeySecret","string"===typeof t?t.trim():t)},expression:"formAliOSS.accessKeySecret"}})],1),o("el-form-item",{attrs:{label:"Bucket",required:!0}},[o("el-input",{attrs:{placeholder:"如:doocs"},model:{value:e.formAliOSS.bucket,callback:function(t){e.$set(e.formAliOSS,"bucket","string"===typeof t?t.trim():t)},expression:"formAliOSS.bucket"}})],1),o("el-form-item",{attrs:{label:"Bucket 所在区域",required:!0}},[o("el-input",{attrs:{placeholder:"如:oss-cn-shenzhen"},model:{value:e.formAliOSS.region,callback:function(t){e.$set(e.formAliOSS,"region","string"===typeof t?t.trim():t)},expression:"formAliOSS.region"}})],1),o("el-form-item",{attrs:{label:"自定义 CDN 域名",required:!1}},[o("el-input",{attrs:{placeholder:"如:https://imagecdn.alidaodao.com,可不填"},model:{value:e.formAliOSS.cdnHost,callback:function(t){e.$set(e.formAliOSS,"cdnHost","string"===typeof t?t.trim():t)},expression:"formAliOSS.cdnHost"}})],1),o("el-form-item",{attrs:{label:"存储路径"}},[o("el-input",{attrs:{placeholder:"如:img,可不填,默认为根目录"},model:{value:e.formAliOSS.path,callback:function(t){e.$set(e.formAliOSS,"path","string"===typeof t?t.trim():t)},expression:"formAliOSS.path"}}),o("el-link",{attrs:{type:"primary",href:"https://help.aliyun.com/document_detail/31883.html",target:"_blank"}},[e._v("如何使用阿里云 OSS?")])],1),o("el-form-item",[o("el-button",{attrs:{type:"primary"},on:{click:e.saveAliOSSConfiguration}},[e._v("保存配置")])],1)],1)],1),o("el-tab-pane",{staticClass:"github-panel",attrs:{label:"腾讯云 COS",name:"txCOS"}},[o("el-form",{staticClass:"setting-form",attrs:{model:e.formTxCOS,"label-position":"right","label-width":"140px"}},[o("el-form-item",{attrs:{label:"SecretId",required:!0}},[o("el-input",{attrs:{placeholder:"如:AKIDnQp1w3DOOCSs8F5MDp9tdoocsmdUPonW3"},model:{value:e.formTxCOS.secretId,callback:function(t){e.$set(e.formTxCOS,"secretId","string"===typeof t?t.trim():t)},expression:"formTxCOS.secretId"}})],1),o("el-form-item",{attrs:{label:"SecretKey",required:!0}},[o("el-input",{attrs:{"show-password":"",placeholder:"如:ukLmdtEJ9271f3DOocsMDsCXdS3YlbW0"},model:{value:e.formTxCOS.secretKey,callback:function(t){e.$set(e.formTxCOS,"secretKey","string"===typeof t?t.trim():t)},expression:"formTxCOS.secretKey"}})],1),o("el-form-item",{attrs:{label:"Bucket",required:!0}},[o("el-input",{attrs:{placeholder:"如:doocs-3212520134"},model:{value:e.formTxCOS.bucket,callback:function(t){e.$set(e.formTxCOS,"bucket","string"===typeof t?t.trim():t)},expression:"formTxCOS.bucket"}})],1),o("el-form-item",{attrs:{label:"Bucket 所在区域",required:!0}},[o("el-input",{attrs:{placeholder:"如:ap-guangzhou"},model:{value:e.formTxCOS.region,callback:function(t){e.$set(e.formTxCOS,"region","string"===typeof t?t.trim():t)},expression:"formTxCOS.region"}})],1),o("el-form-item",{attrs:{label:"自定义 CDN 域名",required:!1}},[o("el-input",{attrs:{placeholder:"如:https://imagecdn.alidaodao.com,可不填"},model:{value:e.formTxCOS.cdnHost,callback:function(t){e.$set(e.formTxCOS,"cdnHost","string"===typeof t?t.trim():t)},expression:"formTxCOS.cdnHost"}})],1),o("el-form-item",{attrs:{label:"存储路径"}},[o("el-input",{attrs:{placeholder:"如:img,可不填,默认根目录"},model:{value:e.formTxCOS.path,callback:function(t){e.$set(e.formTxCOS,"path","string"===typeof t?t.trim():t)},expression:"formTxCOS.path"}}),o("el-link",{attrs:{type:"primary",href:"https://cloud.tencent.com/document/product/436/38484",target:"_blank"}},[e._v("如何使用腾讯云 COS?")])],1),o("el-form-item",[o("el-button",{attrs:{type:"primary"},on:{click:e.saveTxCOSConfiguration}},[e._v("保存配置")])],1)],1)],1),o("el-tab-pane",{staticClass:"github-panel",attrs:{label:"七牛云 Kodo",name:"qiniu"}},[o("el-form",{staticClass:"setting-form",attrs:{model:e.formQiniu,"label-position":"right","label-width":"140px"}},[o("el-form-item",{attrs:{label:"AccessKey",required:!0}},[o("el-input",{attrs:{placeholder:"如:6DD3VaLJ_SQgOdoocsyTV_YWaDmdnL2n8EGx7kG"},model:{value:e.formQiniu.accessKey,callback:function(t){e.$set(e.formQiniu,"accessKey","string"===typeof t?t.trim():t)},expression:"formQiniu.accessKey"}})],1),o("el-form-item",{attrs:{label:"SecretKey",required:!0}},[o("el-input",{attrs:{"show-password":"",placeholder:"如:qgZa5qrvDOOcsmdKStD1oCjZ9nB7MDvJUs_34SIm"},model:{value:e.formQiniu.secretKey,callback:function(t){e.$set(e.formQiniu,"secretKey","string"===typeof t?t.trim():t)},expression:"formQiniu.secretKey"}})],1),o("el-form-item",{attrs:{label:"Bucket",required:!0}},[o("el-input",{attrs:{placeholder:"如:md"},model:{value:e.formQiniu.bucket,callback:function(t){e.$set(e.formQiniu,"bucket","string"===typeof t?t.trim():t)},expression:"formQiniu.bucket"}})],1),o("el-form-item",{attrs:{label:"Bucket 对应域名",required:!0}},[o("el-input",{attrs:{placeholder:"如:https://images.123ylb.cn"},model:{value:e.formQiniu.domain,callback:function(t){e.$set(e.formQiniu,"domain","string"===typeof t?t.trim():t)},expression:"formQiniu.domain"}})],1),o("el-form-item",{attrs:{label:"存储区域",required:!0}},[o("el-input",{attrs:{placeholder:"如:z2"},model:{value:e.formQiniu.region,callback:function(t){e.$set(e.formQiniu,"region","string"===typeof t?t.trim():t)},expression:"formQiniu.region"}})],1),o("el-form-item",{attrs:{label:"存储路径",required:!1}},[o("el-input",{attrs:{placeholder:"如:img,可不填,默认为根目录"},model:{value:e.formQiniu.path,callback:function(t){e.$set(e.formQiniu,"path","string"===typeof t?t.trim():t)},expression:"formQiniu.path"}}),o("el-link",{attrs:{type:"primary",href:"https://developer.qiniu.com/kodo",target:"_blank"}},[e._v("如何使用七牛云 Kodo?")])],1),o("el-form-item",[o("el-button",{attrs:{type:"primary"},on:{click:e.saveQiniuConfiguration}},[e._v("保存配置")])],1)],1)],1)],1)],1)},Fe=[],Ke={props:{value:{type:Boolean,default:!1}},data:function(){return{formGitHub:{repo:"",branch:"",accessToken:""},formGitee:{repo:"",branch:"",accessToken:""},formAliOSS:{accessKeyId:"",accessKeySecret:"",bucket:"",region:"",path:"",cdnHost:""},formTxCOS:{secretId:"",secretKey:"",bucket:"",region:"",path:"",cdnHost:""},formQiniu:{accessKey:"",secretKey:"",bucket:"",domain:"",region:""},options:[{value:"default",label:"默认"},{value:"gitee",label:"Gitee"},{value:"github",label:"GitHub"},{value:"aliOSS",label:"阿里云"},{value:"txCOS",label:"腾讯云"},{value:"qiniu",label:"七牛云"}],imgHost:"default"}},created:function(){localStorage.getItem("githubConfig")&&(this.formGitHub=JSON.parse(localStorage.getItem("githubConfig"))),localStorage.getItem("giteeConfig")&&(this.formGitee=JSON.parse(localStorage.getItem("giteeConfig"))),localStorage.getItem("aliOSSConfig")&&(this.formAliOSS=JSON.parse(localStorage.getItem("aliOSSConfig"))),localStorage.getItem("txCOSConfig")&&(this.formTxCOS=JSON.parse(localStorage.getItem("txCOSConfig"))),localStorage.getItem("imgHost")&&(this.imgHost=localStorage.getItem("imgHost"))},methods:{changeImgHost:function(){localStorage.setItem("imgHost",this.imgHost),this.$message.success("已成功切换图床")},saveGitHubConfiguration:function(){if(this.formGitHub.repo&&this.formGitHub.accessToken)localStorage.setItem("githubConfig",JSON.stringify(this.formGitHub)),this.$message.success("保存成功");else{var e=this.formGitHub.repo?"token":"GitHub 仓库";this.$message.error("参数「".concat(e,"」不能为空"))}},saveGiteeConfiguration:function(){if(this.formGitee.repo&&this.formGitee.accessToken)localStorage.setItem("giteeConfig",JSON.stringify(this.formGitee)),this.$message.success("保存成功");else{var e=this.formGitee.repo?"私人令牌":"Gitee 仓库";this.$message.error("参数「".concat(e,"」不能为空"))}},saveAliOSSConfiguration:function(){this.formAliOSS.accessKeyId&&this.formAliOSS.accessKeySecret&&this.formAliOSS.bucket&&this.formAliOSS.region?(localStorage.setItem("aliOSSConfig",JSON.stringify(this.formAliOSS)),this.$message.success("保存成功")):this.$message.error("阿里云 OSS 参数配置不全")},saveTxCOSConfiguration:function(){this.formTxCOS.secretId&&this.formTxCOS.secretKey&&this.formTxCOS.bucket&&this.formTxCOS.region?(localStorage.setItem("txCOSConfig",JSON.stringify(this.formTxCOS)),this.$message.success("保存成功")):this.$message.error("腾讯云 COS 参数配置不全")},saveQiniuConfiguration:function(){this.formQiniu.accessKey&&this.formQiniu.secretKey&&this.formQiniu.bucket&&this.formQiniu.domain&&this.formQiniu.region?(localStorage.setItem("qiniuConfig",JSON.stringify(this.formQiniu)),this.$message.success("保存成功")):this.$message.error("七牛云 Kodo 参数配置不全")},beforeImageUpload:function(e){var t=Q(e);if(!t.ok)return this.$message.error(t.msg),!1;var o=localStorage.getItem("imgHost");o=o||"default",localStorage.setItem("imgHost",o);var n=localStorage.getItem("".concat(o,"Config")),i="default"==o||n;return!!i||(this.$message.error("请先配置 ".concat(o," 图床参数")),!1)},uploadImage:function(e){this.$emit("uploadImage",e.file)}}},Le=Ke,Be=(o("e925"),Object(c["a"])(Le,Ve,Fe,!1,null,"fc5ed8b0",null)),Pe=Be.exports,Qe=(o("4d90"),o("25f0"),o("b65f"),o("bc3a")),Ue=o.n(Qe),Je=Ue.a.create({baseURL:"",timeout:1e4});Je.interceptors.request.use((function(e){return/^(post)|(put)|(delete)$/i.test(e.method)&&e.data&&e.data.upload&&(e.headers["Content-Type"]="multipart/form-data"),e}),(function(e){Promise.reject(e)})),Je.interceptors.response.use((function(e){return e.data?e.data:Promise.reject(e)}),(function(e){return Promise.reject(e)}));var We=Je,Ye={username:"filess",repoList:Array.from([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],(function(e){return"img".concat(e)})),branch:"main",accessTokenList:["7715d7ca67b5d3837cfdoocsmde8c38421815aa423510af","c411415bf95dbe39625doocsmd5047ba9b7a2a6c9642abe","2821cd8819fa345c053doocsmdca86ac653f8bc20db1f1b","445f0dae46ef1f2a4d6doocsmdc797301e94797b4750a4c","cc1d0c1426d0fd0902bdoocsmdd2d7184b14da61b86ec46","b67e9d15cb6f910492fdoocsmdac6b44d379c953bb19eff","618c4dc2244ccbbc088doocsmd125d17fd31b7d06a50cf3","a4b581732e1c1507458doocsmdc5b223b27dae5e2e16a55","77904db41aee57ad79bdoocsmd760f848201dac9c96fd5e","02f251cb14ac62ab100doocsmdddbfc8527d773f1f04ce1","eb321079a95ba7028d9doocsmde2e84c502dac70de7cf08","22f74fcfb071a961fa2doocsmde28dabc746f0503a15e5d","85124c2bfe7abba0938doocsmd0af7f67918b99d085a5fd","0a561b4d4bbecb2de7edoocsmdd9ba3833d11dbc5e430f5","e8a01491188d8d5a097doocsmd03ede0aad1fe9e3af24e9","36e1f420d7e5bdebd67doocsmd65463562f5f25b20b8377"]},Ze={username:"filesss",repoList:Array.from([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],(function(e){return"img".concat(e)})),branch:"main",accessTokenList:["ed5fc9866bd6c2fdoocsmddd433f806fd2f399c","5448ffebbbf1151doocsmdc4e337cf814fc8a62","25b05efd2557ca2doocsmd75b5c0835e3395911","11628c7a5aef015doocsmd2eeff9fb9566f0458","cb2f5145ed938dedoocsmdbd063b4ed244eecf8","d8c0b57500672c1doocsmd55f48b866b5ebcd98","78c56eadb88e453doocsmd43ddd95753351771a","03e1a688003948fdoocsmda16fcf41e6f03f1f0","c49121cf4d191fbdoocsmdd6a7877ed537e474a","adfeb2fadcdc4aadoocsmdfe1ee869ac9c968ff","116c94549ca4a0ddoocsmd192653af5c0694616","ecf30ed7f2eb184doocsmd51ea4ec8300371d9e","5837cf2bd5afd93doocsmd73904bed31934949e","b5b7e1c7d57e01fdoocsmd5266f552574297d78","684d55564ffbd0bdoocsmd7d747e5cc23aed6d6","3fc04a9d272ab71doocsmd010c56cb57d88d2ba"]},Xe=o("3452"),et=o.n(Xe),tt=o("9b15"),ot=o.n(tt),nt=o("3438"),it=o.n(nt),rt=o("653c"),at=o.n(rt),ct=o("ec26"),st=o("f744");function lt(e){var t,o,n,i;for(t="",n=e.length,o=0;o=1&&i<=127?t+=e.charAt(o):i>2047?(t+=String.fromCharCode(224|i>>12&15),t+=String.fromCharCode(128|i>>6&63),t+=String.fromCharCode(128|i>>0&63)):(t+=String.fromCharCode(192|i>>6&31),t+=String.fromCharCode(128|i>>0&63));return t}var ut="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);function dt(e){var t,o,n,i,r,a;n=e.length,o=0,t="";while(o>2),t+=ut.charAt((3&i)<<4),t+="==";break}if(r=e.charCodeAt(o++),o==n){t+=ut.charAt(i>>2),t+=ut.charAt((3&i)<<4|(240&r)>>4),t+=ut.charAt((15&r)<<2),t+="=";break}a=e.charCodeAt(o++),t+=ut.charAt(i>>2),t+=ut.charAt((3&i)<<4|(240&r)>>4),t+=ut.charAt((15&r)<<2|(192&a)>>6),t+=ut.charAt(63&a)}return t}function ft(e){return e=e.replace(/\+/g,"-"),e=e.replace(/\//g,"_"),e}function mt(e,t){if(e){var o="github"===t?Ye:Ze,n=o.username,i=o.repoList,r=o.branch,a=o.accessTokenList,c=Math.floor(Math.random()*a.length),s=a[c].replace("doocsmd",""),l=Math.floor(Math.random()*i.length),u=i[l];return{username:n,repo:u,branch:r,accessToken:s}}var d=JSON.parse(localStorage.getItem("".concat(t,"Config"))),f=d.repo.replace("https://".concat(t,".com/"),"").replace("http://".concat(t,".com/"),"").replace("".concat(t,".com/"),"").split("/");return{username:f[0],repo:f[1],branch:d.branch||"master",accessToken:d.accessToken}}function pt(){var e=new Date,t=e.getFullYear(),o=(e.getMonth()+1).toString().padStart(2,"0"),n=e.getDate().toString().padStart(2,"0");return"".concat(t,"/").concat(o,"/").concat(n)}function gt(e){var t=(new Date).getTime(),o=e.split(".")[1];return"".concat(t,"-").concat(Object(ct["a"])(),".").concat(o)}function ht(e,t){return bt.apply(this,arguments)}function bt(){return bt=Object(se["a"])(regeneratorRuntime.mark((function e(t,o){var n,i,r,a,c,s,l,u,d,f,m,p;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return n="default"===localStorage.getItem("imgHost"),i=mt(n,"github"),r=i.username,a=i.repo,c=i.branch,s=i.accessToken,l=pt(),u="https://api.github.com/repos/".concat(r,"/").concat(a,"/contents/").concat(l,"/"),d=gt(o),e.next=7,We({url:u+d,method:"put",headers:{Authorization:"token ".concat(s)},data:{content:t,branch:c,message:"Upload by ".concat(window.location.href)}});case 7:return f=e.sent,m="raw.githubusercontent.com/".concat(r,"/").concat(a,"/").concat(c,"/"),p="cdn.jsdelivr.net/gh/".concat(r,"/").concat(a,"@").concat(c,"/"),e.abrupt("return",n?f.data.content.download_url.replace(m,p):f.data.content.download_url);case 11:case"end":return e.stop()}}),e)}))),bt.apply(this,arguments)}function vt(e,t){return Ct.apply(this,arguments)}function Ct(){return Ct=Object(se["a"])(regeneratorRuntime.mark((function e(t,o){var n,i,r,a,c,s,l,u,d,f;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return n="default"===localStorage.getItem("imgHost"),i=mt(n,"gitee"),r=i.username,a=i.repo,c=i.branch,s=i.accessToken,l=pt(),u=gt(o),d="https://gitee.com/api/v5/repos/".concat(r,"/").concat(a,"/contents/").concat(l,"/").concat(u),e.next=7,We({url:d,method:"POST",data:{content:t,branch:c,access_token:s,message:"Upload by ".concat(window.location.href)}});case 7:return f=e.sent,e.abrupt("return",encodeURI(f.data.content.download_url));case 9:case"end":return e.stop()}}),e)}))),Ct.apply(this,arguments)}function kt(e,t,o){var n=JSON.stringify(o),i=dt(lt(n)),r=et.a.HmacSHA1(i,t),a=r.toString(et.a.enc.Base64);return"".concat(e,":").concat(ft(a),":").concat(i)}function yt(e){return St.apply(this,arguments)}function St(){return St=Object(se["a"])(regeneratorRuntime.mark((function e(t){var o,n,i,r,a,c,s,l,u,d,f;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return o=JSON.parse(localStorage.getItem("qiniuConfig")),n=o.accessKey,i=o.secretKey,r=o.bucket,a=o.region,c=o.path,s=o.domain,l=kt(n,i,{scope:r,deadline:Math.trunc((new Date).getTime()/1e3)+3600}),u=c?"".concat(c,"/"):"",d=u+gt(t.name),f=st["a"](t,d,l,{},{region:a}),e.abrupt("return",new Promise((function(e,t){f.subscribe({next:function(e){console.log(e)},error:function(e){t(e.message)},complete:function(t){e("".concat(s,"/").concat(t.key))}})})));case 6:case"end":return e.stop()}}),e)}))),St.apply(this,arguments)}function xt(e,t){return wt.apply(this,arguments)}function wt(){return wt=Object(se["a"])(regeneratorRuntime.mark((function e(t,o){var n,i,r,a,c,s,l,u,d,f,m,p;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return n=gt(o),i=JSON.parse(localStorage.getItem("aliOSSConfig")),r=i.region,a=i.bucket,c=i.accessKeyId,s=i.accessKeySecret,l=i.cdnHost,u=i.path,d=at()(t,"base64"),f="".concat(u,"/").concat(n),m=new ot.a({region:r,bucket:a,accessKeyId:c,accessKeySecret:s}),e.prev=5,e.next=8,m.put(f,d);case 8:if(p=e.sent,""!=l){e.next=11;break}return e.abrupt("return",p.url);case 11:return e.abrupt("return","".concat(l,"/").concat(""==u?n:f));case 14:return e.prev=14,e.t0=e["catch"](5),e.abrupt("return",Promise.reject(e.t0));case 17:case"end":return e.stop()}}),e,null,[[5,14]])}))),wt.apply(this,arguments)}function Ot(e){return _t.apply(this,arguments)}function _t(){return _t=Object(se["a"])(regeneratorRuntime.mark((function e(t){var o,n,i,r,a,c,s,l,u;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return o=gt(t.name),n=JSON.parse(localStorage.getItem("txCOSConfig")),i=n.secretId,r=n.secretKey,a=n.bucket,c=n.region,s=n.path,l=n.cdnHost,u=new it.a({SecretId:i,SecretKey:r}),e.abrupt("return",new Promise((function(e,n){u.putObject({Bucket:a,Region:c,Key:"".concat(s,"/").concat(o),Body:t},(function(t,i){t?n(t):e(l?""==s?"".concat(l,"/").concat(o):"".concat(l,"/").concat(s,"/").concat(o):"https://".concat(i.Location))}))})));case 4:case"end":return e.stop()}}),e)}))),_t.apply(this,arguments)}function Tt(e,t){var o=localStorage.getItem("imgHost");switch(!o&&localStorage.setItem("imgHost","default"),o){case"aliOSS":return xt(e,t.name);case"txCOS":return Ot(t);case"qiniu":return yt(t);case"gitee":return vt(e,t.name);case"github":return ht(e,t.name);default:return ht(e,t.name)}}var Et={fileUpload:Tt};o("f9d4");var It={data:function(){return{showCssEditor:!1,aboutDialogVisible:!1,dialogUploadImgVisible:!1,dialogFormVisible:!1,isCoping:!1,isImgLoading:!1,backLight:!1,timeout:null,changeTimer:null,source:"",mouseLeft:0,mouseTop:0}},components:{editorHeader:Se,aboutDialog:Ee,insertFormDialog:Ae,rightClickMenu:De,uploadImgDialog:Pe},computed:Object(n["a"])({},Object(d["c"])({wxRenderer:function(e){return e.wxRenderer},output:function(e){return e.output},editor:function(e){return e.editor},cssEditor:function(e){return e.cssEditor},currentSize:function(e){return e.currentSize},currentColor:function(e){return e.currentColor},nightMode:function(e){return e.nightMode},rightClickMenuVisible:function(e){return e.rightClickMenuVisible}})),created:function(){var e=this;this.initEditorState(),this.$nextTick((function(){e.initEditor(),e.initCssEditor(),e.onEditorRefresh()}))},methods:Object(n["a"])({initEditor:function(){var e=this;this.initEditorEntity(),this.editor.on("change",(function(t,o){e.changeTimer&&clearTimeout(e.changeTimer),e.changeTimer=setTimeout((function(){e.onEditorRefresh(),q(e.editor,"__editor_content")}),300)})),this.editor.on("paste",(function(t,o){if(o.clipboardData&&o.clipboardData.items&&!e.isImgLoading)for(var n=0,i=o.clipboardData.items.length;n=65&&t.keyCode<=90||189===t.keyCode)&&e.showHint(t)})),this.cssEditor.on("update",(function(t){e.cssChanged(),q(e.cssEditor,"__css_content")}))},cssChanged:function(){var e=N(this.cssEditor.getValue(0)),t=H(this.currentSize.replace("px",""));t=z(e,this.currentColor,t),this.setWxRendererOptions({theme:t}),this.onEditorRefresh()},beforeUpload:function(e){var t=Q(e);if(!t.ok)return this.$message.error(t.msg),!1;var o=localStorage.getItem("imgHost");o=o||"default",localStorage.setItem("imgHost",o);var n=localStorage.getItem("".concat(o,"Config")),i="default"==o||n;return!!i||(this.$message.error("请先配置 ".concat(o," 图床参数")),!1)},uploadImage:function(e){var t=this;this.isImgLoading=!0,P(e).then((function(o){Et.fileUpload(o,e).then((function(e){t.uploaded(e)})).catch((function(e){t.$message.error(e.message)}))})).catch((function(e){t.$message.error(e.message)})),this.isImgLoading=!1},uploaded:function(e){if(e){this.dialogUploadImgVisible=!1;var t=this.editor.getCursor(),o=e,n="![](".concat(o,")");this.editor.replaceSelection("\n".concat(n,"\n"),t),this.$message.success("图片上传成功"),this.onEditorRefresh()}else this.$message.error("上传图片未知异常")},leftAndRightScroll:function(){var e=this,t=function(t){var i,r;clearTimeout(e.timeout),"preview"===t?(i=e.$refs.preview.$el,r=document.getElementsByClassName("CodeMirror-scroll")[0],e.editor.off("scroll",o),e.timeout=setTimeout((function(){e.editor.on("scroll",o)}),300)):"editor"===t&&(i=document.getElementsByClassName("CodeMirror-scroll")[0],r=e.$refs.preview.$el,r.removeEventListener("scroll",n,!1),e.timeout=setTimeout((function(){r.addEventListener("scroll",n,!1)}),300));var a=i.scrollTop/(i.scrollHeight-i.offsetHeight),c=a*(r.scrollHeight-r.offsetHeight);r.scrollTo(0,c)},o=function(){t("editor")},n=function(){t("preview")};this.$refs.preview.$el.addEventListener("scroll",n,!1),this.editor.on("scroll",o)},onEditorRefresh:function(){this.editorRefresh(),setTimeout((function(){return PR.prettyPrint()}),0)},endCopy:function(){var e=this;this.backLight=!1,setTimeout((function(){e.isCoping=!1}),800)},downloadEditorContent:function(){K(this.editor.getValue(0))},exportEditorContent:function(){this.$nextTick((function(){L()}))},formatContent:function(){var e=D(this.editor.getValue(0));localStorage.setItem("__editor_content",e),this.editor.setValue(e)},openMenu:function(e){var t=105,o=this.$el.getBoundingClientRect().left,n=this.$el.offsetWidth,i=n-t,r=e.clientX-o;this.mouseLeft=Math.min(i,r),this.mouseTop=e.clientY+10,this.$store.commit("setRightClickMenuVisible",!0)},closeRightClickMenu:function(){this.$store.commit("setRightClickMenuVisible",!1)},onMenuEvent:function(e){switch(e){case"pageReset":this.$refs.header.showResetConfirm=!0;break;case"insertPic":this.dialogUploadImgVisible=!0;break;case"download":this.downloadEditorContent();break;case"export":this.exportEditorContent();break;case"insertTable":this.dialogFormVisible=!0;break;case"formatMarkdown":this.formatContent();break;default:break}}},Object(d["b"])(["initEditorState","initEditorEntity","setWxRendererOptions","editorRefresh","initCssEditorEntity"])),mounted:function(){var e=this;setTimeout((function(){e.leftAndRightScroll(),PR.prettyPrint()}),300)}},$t=It,jt=(o("90fc"),o("8078"),o("64cd"),Object(c["a"])($t,ie,re,!1,null,"0152319a",null)),Mt=jt.exports,Rt={name:"App",components:{Loading:ne["default"],CodemirrorEditor:Mt},data:function(){return{loading:!0}},mounted:function(){var e=this;setTimeout((function(){e.loading=!1}),100)}},At=Rt,Gt=(o("537d"),Object(c["a"])(At,te,oe,!1,null,"8e90ad4c",null)),Ht=Gt.exports;i["default"].use(ee["a"]);var zt=[{path:"/",name:"index",component:Ht}],Nt=new ee["a"]({mode:"history",base:"/md/",routes:zt}),qt=Nt;i["default"].use(X.a),i["default"].config.productionTip=!1,u.mpType="app";var Dt=new i["default"](Object(n["a"])({router:qt,store:Y},u));Dt.$mount("#app")},5862:function(e,t,o){},6:function(e,t){},6396:function(e,t,o){},"64cd":function(e,t,o){"use strict";o("3cb7")},"64e1":function(e,t,o){"use strict";o("536a")},6849:function(e,t,o){},"695a":function(e,t,o){},7:function(e,t){},7224:function(e,t,o){},"7c55":function(e,t,o){"use strict";o("c163")},8:function(e,t){},8078:function(e,t,o){"use strict";o("3c8e")},"84a2":function(e,t,o){},9:function(e,t){},"90fc":function(e,t,o){"use strict";o("5862")},"94fb":function(e,t,o){"use strict";o("6849")},"9a2f":function(e,t,o){},aae9:function(e,t,o){"use strict";o.d(t,"a",(function(){return n})),o.d(t,"b",(function(){return i}));var n=function(){var e=this,t=e.$createElement;e._self._c;return e._m(0)},i=[function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{staticClass:"loading",attrs:{id:"loading"}},[o("div",{staticClass:"loading-wrapper"},[o("div",{staticClass:"loading-anim"}),o("div",{staticClass:"loading-text"},[e._v("致力于让 Markdown 编辑更简单")])])])}]},aeb6:function(e,t,o){},bce4:function(e,t,o){},c081:function(e,t,o){"use strict";o("84a2")},c163:function(e,t,o){},c6c5:function(e,t,o){"use strict";o("bce4")},cb57:function(e,t,o){"use strict";var n=o("eff7"),i=o.n(n);t["default"]=i.a},d3c1:function(e,t,o){"use strict";o("7224")},e925:function(e,t,o){"use strict";o("aeb6")},eff7:function(e,t){}});
-//# sourceMappingURL=app.2090231c.js.map
\ No newline at end of file
diff --git a/js/app.2090231c.js.map b/js/app.2090231c.js.map
deleted file mode 100644
index d49c9ea..0000000
--- a/js/app.2090231c.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/CodemirrorEditor/resetDialog.vue?d122","webpack:///./src/components/Loading.vue?c5f2","webpack:///./src/components/Loading.vue?6b1c","webpack:///./src/pages/index/index.vue?17c6","webpack:///./src/App.vue?989e","webpack:///./src/App.vue?a938","webpack:///./src/assets/scripts/config.js","webpack:///./src/assets/scripts/renderers/wx-renderer.js","webpack:///./src/assets/scripts/default-content.js","webpack:///./src/assets/scripts/themes/default-theme-css.js","webpack:///./src/assets/scripts/themes/default-theme.js","webpack:///./src/assets/scripts/util.js","webpack:///./src/store/index.js","webpack:///./src/plugins/element/index.js","webpack:///./src/pages/index/index.vue?11e6","webpack:///./src/pages/index/view/CodemirrorEditor.vue?c437","webpack:///./src/components/CodemirrorEditor/header.vue?d9d2","webpack:///./src/assets/scripts/converter.js","webpack:///./src/components/CodemirrorEditor/resetDialog.vue?b639","webpack:///src/components/CodemirrorEditor/resetDialog.vue","webpack:///./src/components/CodemirrorEditor/resetDialog.vue?340c","webpack:///./src/components/CodemirrorEditor/resetDialog.vue?f816","webpack:///src/components/CodemirrorEditor/header.vue","webpack:///./src/components/CodemirrorEditor/header.vue?0ac3","webpack:///./src/components/CodemirrorEditor/header.vue?f48c","webpack:///./src/components/CodemirrorEditor/aboutDialog.vue?4559","webpack:///src/components/CodemirrorEditor/aboutDialog.vue","webpack:///./src/components/CodemirrorEditor/aboutDialog.vue?6527","webpack:///./src/components/CodemirrorEditor/aboutDialog.vue?caf5","webpack:///./src/components/CodemirrorEditor/insertForm.vue?35da","webpack:///src/components/CodemirrorEditor/insertForm.vue","webpack:///./src/components/CodemirrorEditor/insertForm.vue?29b1","webpack:///./src/components/CodemirrorEditor/insertForm.vue?6765","webpack:///./src/components/CodemirrorEditor/rightClickMenu.vue?d492","webpack:///src/components/CodemirrorEditor/rightClickMenu.vue","webpack:///./src/components/CodemirrorEditor/rightClickMenu.vue?ef55","webpack:///./src/components/CodemirrorEditor/rightClickMenu.vue?3f9f","webpack:///./src/components/CodemirrorEditor/uploadImgDialog.vue?9129","webpack:///src/components/CodemirrorEditor/uploadImgDialog.vue","webpack:///./src/components/CodemirrorEditor/uploadImgDialog.vue?d9e6","webpack:///./src/components/CodemirrorEditor/uploadImgDialog.vue?2b80","webpack:///./src/api/fetch.js","webpack:///./src/api/config.js","webpack:///./src/assets/scripts/tokenTools.js","webpack:///./src/api/file.js","webpack:///src/pages/index/view/CodemirrorEditor.vue","webpack:///./src/pages/index/view/CodemirrorEditor.vue?db4d","webpack:///./src/pages/index/view/CodemirrorEditor.vue?1fb7","webpack:///src/pages/index/index.vue","webpack:///./src/pages/index/index.vue?d479","webpack:///./src/pages/index/index.vue","webpack:///./src/router/index.js","webpack:///./src/main.js","webpack:///./src/pages/index/view/CodemirrorEditor.vue?72c5","webpack:///./src/components/CodemirrorEditor/insertForm.vue?0676","webpack:///./src/App.vue?e247","webpack:///./src/pages/index/view/CodemirrorEditor.vue?d896","webpack:///./src/pages/index/view/CodemirrorEditor.vue?7a42","webpack:///./src/App.vue?e8fb","webpack:///./src/components/Loading.vue?0305","webpack:///./src/components/CodemirrorEditor/aboutDialog.vue?b81b","webpack:///./src/components/CodemirrorEditor/rightClickMenu.vue?96bf","webpack:///./src/components/Loading.vue?a8a7","webpack:///./src/components/CodemirrorEditor/header.vue?b34a","webpack:///./src/components/CodemirrorEditor/uploadImgDialog.vue?59e0"],"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","render","_vm","this","_h","$createElement","_c","_self","attrs","staticRenderFns","script","builtinFonts","label","sizeOption","desc","colorOption","codeThemeOption","form","rows","cols","WxRenderer","opts","ENV_STRETCH_IMAGE","footnotes","footnoteIndex","styleMapping","CODE_FONT_FAMILY","merge","base","extend","assign","buildTheme","themeTpl","mapping","BASE","fonts","size","ele","inline","style","base_block","block","getStyles","tokenName","addition","arr","dict","join","addFootnote","title","link","buildFootnotes","footnoteArray","map","x","buildAddition","setOptions","newOpts","hasFootnotes","getRenderer","status","theme","renderer","marked","Renderer","heading","text","level","paragraph","indexOf","replace","blockquote","code","lang","codeLines","split","line","codeTheme","codespan","listitem","list","ordered","start","segments","image","href","subText","figureStyles","imgStyles","startsWith","ref","strong","em","table","header","body","tablecell","flags","hr","DEFAULT_CONTENT","DEFAULT_CSS_CONTENT","color","BASE_BLOCK","margin","h1","display","padding","h2","background","h3","h4","blockquote_p","overflow","border","width","image_org","ol","ul","figure","wx_link","thead","td","footnote","figcaption","setColorWithTemplate","template","custom_theme","JSON","parse","stringify","setColorWithCustomTemplate","setFontSizeWithTemplate","fontSize","setColor","default_theme","setFontSize","customCssWithTemplate","jsonString","li","css2json","css","open","close","substring","json","lbracket","rbracket","toObject","array","ret","forEach","e","index","trim","declarations","filter","selectors","selector","keys","saveEditorContent","editor","content","getValue","localStorage","setItem","removeItem","formatDoc","doc","prettier","format","parser","plugins","prettierMarkdown","formatCss","prettierCss","fixCodeWhiteSpace","preDomList","document","getElementsByClassName","pre","whiteSpace","downloadMD","downLink","createElement","download","blob","Blob","URL","createObjectURL","appendChild","click","removeChild","exportHTML","element","querySelector","setStyles","htmlStr","innerHTML","isSection","isPre","isCode","isSpan","setAttribute","getElementStyles","tagName","Array","from","classList","includes","parentElement","children","child","createTable","currRow","rowIdx","toBase64","file","Promise","resolve","reject","reader","FileReader","readAsDataURL","onload","pop","onerror","error","checkImage","isValidSuffix","test","ok","msg","maxSize","isLt5M","excludes","styles","getComputedStyle","entries","getPropertyValue","Vue","use","Vuex","state","wxRenderer","output","html","cssEditor","currentFont","currentSize","currentColor","citeStatus","nightMode","rightClickMenuVisible","mutations","setEditorValue","setValue","setCssEditorValue","setWxRendererOptions","setCiteStatus","setCurrentFont","setCurrentSize","setCurrentColor","setCurrentCodeTheme","setRightClickMenuVisible","themeChanged","initEditorState","getItem","config","initEditorEntity","editorDom","getElementById","CodeMirror","fromTextArea","lineNumbers","lineWrapping","styleActiveLine","autoCloseBrackets","extraKeys","initCssEditorEntity","cssEditorDom","matchBrackets","autofocus","editorRefresh","clearEditorToDefault","Store","actions","Message","$loading","Loading","service","$message","staticClass","class","container_night","on","onEditorRefresh","cssChanged","downloadEditorContent","exportEditorContent","$event","showCssEditor","aboutDialogVisible","dialogFormVisible","dialogUploadImgVisible","isCoping","backLight","endCopy","nativeOn","preventDefault","openMenu","directives","rawName","expression","domProps","target","composing","source","output_night","_s","_v","_e","beforeUpload","uploadImage","uploaded","model","callback","$$v","mouseLeft","mouseTop","onMenuEvent","closeRightClickMenu","effect","$emit","showResetConfirm","fontChanged","selectFont","_l","font","fontFamily","sizeChanged","selectSize","colorChanged","selectColor","statusChanged","btnType","customStyle","copy","btnContent","confirmReset","cancelReset","solveWeChatImage","clipboardDiv","images","getElementsByTagName","getAttribute","height","removeAttribute","solveHtml","res","juice","inlineContent","inlinePseudoElements","preserveImportant","slot","props","type","Boolean","default","computed","selectCodeTheme","components","resetDialog","methods","codeThemeChanged","val","setTimeout","focus","getSelection","removeAllRanges","range","setStartBefore","firstChild","setEndAfter","lastChild","addRange","execCommand","showClose","message","offset","duration","clear","mounted","staticStyle","onRedirect","url","rowNum","colNum","row","col","tableData","$set","insertTable","replaceSelection","left","top","menuItem","item","onMouseDown","Number","menu","closeCB","changeImgHost","imgHost","beforeImageUpload","formGitee","saveGiteeConfiguration","formGitHub","saveGitHubConfiguration","formAliOSS","saveAliOSSConfiguration","formTxCOS","saveTxCOSConfiguration","formQiniu","saveQiniuConfiguration","repo","branch","accessToken","accessKeyId","accessKeySecret","bucket","region","path","cdnHost","secretId","secretKey","accessKey","domain","options","created","success","checkResult","isValidHost","params","axios","baseURL","timeout","interceptors","request","method","upload","headers","response","githubConfig","username","repoList","accessTokenList","giteeConfig","utf16to8","str","out","len","charCodeAt","charAt","String","fromCharCode","base64EncodeChars","base64encode","c1","c2","c3","safe64","base64","getConfig","useDefault","platform","tokenIndex","Math","floor","random","repoIndex","customConfig","repoUrl","getDir","date","Date","year","getFullYear","month","getMonth","toString","padStart","day","getDate","getDateFilename","filename","currentTimestamp","getTime","fileSuffix","uuidv4","ghFileUpload","dir","dateFilename","fetch","Authorization","location","githubResourceUrl","cdnResourceUrl","download_url","giteeUpload","access_token","encodeURI","getQiniuToken","putPolicy","policy","encoded","hash","CryptoJS","HmacSHA1","encodedSigned","enc","Base64","qiniuUpload","token","scope","deadline","trunc","observable","qiniu","subscribe","next","console","log","err","complete","aliOSSFileUpload","buffer","Buffer","client","OSS","put","txCOSFileUpload","cos","COS","SecretId","SecretKey","putObject","Bucket","Region","Key","Body","Location","fileUpload","isImgLoading","changeTimer","editorHeader","aboutDialog","insertFormDialog","rightClickMenu","uploadImgDialog","$nextTick","initEditor","clipboardData","items","kind","isValid","initCssEditor","cm","showHint","leftAndRightScroll","clearTimeout","removeEventListener","previewScrollCB","addEventListener","scrollTo","scrollCB","$refs","preview","$el","editorScrollCB","formatContent","min","maxLeft","clientY","$store","commit","PR","prettyPrint","CodemirrorEditor","loading","VueRouter","routes","router","process","ElementUI","productionTip","App","mpType","app","store","$mount","_m"],"mappings":"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M,IAC/Cse,GAAOI,OAAOC,aAAa,IAAS3e,GAAK,EAAK,IAC9Cse,GAAOI,OAAOC,aAAa,IAAS3e,GAAK,EAAK,MAE9Cse,GAAOI,OAAOC,aAAa,IAAS3e,GAAK,EAAK,IAC9Cse,GAAOI,OAAOC,aAAa,IAAS3e,GAAK,EAAK,KAGlD,OAAOse,EA0CT,IAAMM,GACJ,mEACwB,IAAIpQ,OAC3B,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACD,IACC,GACA,GACA,EACD,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACC,GACA,GACA,GACA,GACA,GACA,GACA,EACD,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACC,GACA,GACA,GACA,GACA,GACA,EACD,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACC,GACA,GACA,GACA,GACA,GAEI,SAASqQ,GAAaR,GAC3B,IAAIC,EAAKlgB,EAAGmgB,EACRO,EAAIC,EAAIC,EACZT,EAAMF,EAAI/f,OACVF,EAAI,EACJkgB,EAAM,GACN,MAAOlgB,EAAImgB,EAAK,CAEd,GADAO,EAA2B,IAAtBT,EAAIG,WAAWpgB,KAChBA,GAAKmgB,EAAK,CACZD,GAAOM,GAAkBH,OAAOK,GAAM,GACtCR,GAAOM,GAAkBH,QAAa,EAALK,IAAa,GAC9CR,GAAO,KACP,MAGF,GADAS,EAAKV,EAAIG,WAAWpgB,KAChBA,GAAKmgB,EAAK,CACZD,GAAOM,GAAkBH,O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","file":"js/app.2090231c.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","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/@vue/cli-service/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=68392714&lang=less&scoped=true&\"","export * from \"-!../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/@vue/cli-service/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=a205efe8&lang=less&scoped=true&\"","import { render, staticRenderFns } from \"./Loading.vue?vue&type=template&id=a205efe8&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=a205efe8&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 \"a205efe8\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=8e90ad4c&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=41a4af61&\"\nvar script = {}\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=less&\"\nimport style1 from \"./App.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 null,\n null\n \n)\n\nexport default component.exports","export default {\n builtinFonts: [\n {\n label: \"无衬线\",\n value:\n \"-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:\n \"Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif\",\n },\n ],\n sizeOption: [\n {\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 {\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","import marked from \"marked\";\nclass WxRenderer {\n constructor(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 =\n \"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 for (let ele in themeTpl.inline) {\n if (themeTpl.inline.hasOwnProperty(ele)) {\n let style = themeTpl.inline[ele];\n mapping[ele] = merge(themeTpl.BASE, style);\n }\n }\n\n let base_block = merge(base, {});\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\n .split(\"\\n\")\n .map(\n (line) =>\n `${\n line || \" \"\n }
`\n );\n const codeTheme = \"github\";\n return `\n \n \n ${codeLines.join(\"\")}\n \n \n `;\n };\n renderer.codespan = (text, lang) =>\n `${text}
`;\n renderer.listitem = (text) =>\n `<%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 ` ${subText} `;\n };\n renderer.link = (href, title, text) => {\n if (href.startsWith(\"https://mp.weixin.qq.com\")) {\n return `${text} `;\n }\n if (href === text) {\n return text;\n }\n if (status) {\n let ref = addFootnote(title || text, href);\n return `${text}[${ref}] `;\n }\n return `${text} `;\n };\n renderer.strong = (text) =>\n `${text} `;\n renderer.em = (text) =>\n `${text} `;\n renderer.table = (header, body) =>\n ``;\n renderer.tablecell = (text, flags) =>\n `${text} `;\n renderer.hr = () =>\n ` `;\n return renderer;\n };\n }\n}\nexport default WxRenderer;\n","const DEFAULT_CONTENT = `# 示例文章: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","const DEFAULT_CSS_CONTENT = `/*\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/* 有序列表样式 */\nol {\n}\n/* 无序列表样式 */\nul {\n}\n/* 列表项样式 */\nli {\n}\n`;\nexport default DEFAULT_CSS_CONTENT;\n","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\": \"8px\",\n color: \"rgba(0,0,0,0.5)\",\n background: \"#f7f7f7\",\n margin: \"2em 8px\",\n },\n\n blockquote_p: {\n \"letter-spacing\": \"0.1em\",\n color: \"rgb(80, 80, 80)\",\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\": \"8px\",\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\";\nimport prettierCss from \"prettier/parser-postcss\";\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 custom_theme.block.ul = Object.assign(custom_theme.block.ul, jsonString.ul);\n custom_theme.block.ol = Object.assign(custom_theme.block.ol, jsonString.ol);\n custom_theme.inline.listitem = Object.assign(\n custom_theme.inline.listitem,\n jsonString.li\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 * 将编辑器内容保存到 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/**\n * 格式化文档\n * @param {文档内容} content\n */\nexport function formatDoc(content) {\n const doc = prettier.format(content, {\n parser: \"markdown\",\n plugins: [prettierMarkdown],\n });\n return doc;\n}\n\n/**\n * 格式化css\n * @param {css内容}} content\n */\nexport function formatCss(content) {\n const doc = prettier.format(content, {\n parser: \"css\",\n plugins: [prettierCss],\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\n/**\n * 下载原始 Markdown 文档\n * @param {文档内容} doc\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\n/**\n * 导出 HTML 生成内容\n */\nexport function exportHTML() {\n const element = document.querySelector(\"#output\");\n setStyles(element);\n const htmlStr = element.innerHTML;\n\n const downLink = document.createElement(\"a\");\n\n downLink.download = \"content.html\";\n downLink.style.display = \"none\";\n let blob = new Blob([\n `${htmlStr}
`,\n ]);\n\n downLink.href = URL.createObjectURL(blob);\n document.body.appendChild(downLink);\n downLink.click();\n document.body.removeChild(downLink);\n\n function setStyles(element) {\n switch (true) {\n case isSection(element):\n case isPre(element):\n case isCode(element):\n case isSpan(element):\n element.setAttribute(\"style\", getElementStyles(element));\n default:\n }\n if (element.children.length) {\n Array.from(element.children).forEach((child) => setStyles(child));\n }\n\n // 判断是否是包裹代码块的 section 元素\n function isSection(element) {\n return (\n element.tagName === \"SECTION\" &&\n Array.from(element.classList).includes(\"code-snippet__github\")\n );\n }\n // 判断是否是包裹代码块的 pre 元素\n function isPre(element) {\n return (\n element.tagName === \"PRE\" &&\n Array.from(element.classList).includes(\"code__pre\")\n );\n }\n // 判断是否是包裹代码块的 code 元素\n function isCode(element) {\n return (\n element.tagName === \"CODE\" &&\n Array.from(element.classList).includes(\"prettyprint\")\n );\n }\n // 判断是否是包裹代码字符的 span 元素\n function isSpan(element) {\n return (\n element.tagName === \"SPAN\" &&\n (isCode(element.parentElement) ||\n isCode(element.parentElement.parentElement))\n );\n }\n }\n}\n\n/**\n * 生成列表字符串\n * @param {*} data 对应内容集合\n * @param {*} rows 行\n * @param {*} cols 列\n */\nexport function createTable({ data, rows, cols }) {\n let table = \"\";\n let currRow = [];\n for (let i = 0; i < rows + 2; ++i) {\n table += \"|\\t\";\n currRow = [];\n for (let j = 0; j < cols; ++j) {\n const rowIdx = i > 1 ? i - 1 : i;\n i === 1\n ? currRow.push(\"---\\t\")\n : currRow.push(data[`k_${rowIdx}_${j}`] || \"\");\n }\n table += currRow.join(\"\\t|\\t\");\n table += \"\\t|\\n\";\n }\n\n return table;\n}\n\nexport const toBase64 = (file) =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result.split(\",\").pop());\n reader.onerror = (error) => reject(error);\n });\n\nexport function checkImage(file) {\n // check filename suffix\n const isValidSuffix = /\\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(file.name);\n if (!isValidSuffix) {\n return {\n ok: false,\n msg: \"请上传 JPG/PNG/GIF 格式的图片\",\n };\n }\n\n // check file size\n const maxSize = 5;\n const isLt5M = file.size / 1024 / 1024 <= maxSize;\n if (!isLt5M) {\n return {\n ok: false,\n msg: `由于公众号限制,图片大小不能超过 ${maxSize}M`,\n };\n }\n return { ok: true };\n}\n\n/**\n * 获取一个 DOM 元素的所有样式,\n * @param {DOM 元素} element DOM 元素\n * @param {排除的属性} excludes 如果某些属性对结果有不良影响,可以使用这个参数来排除\n * @returns 行内样式拼接结果\n */\nfunction getElementStyles(element, excludes = [\"width\", \"height\"]) {\n const styles = getComputedStyle(element, null);\n return Object.entries(styles)\n .filter(([key]) => styles.getPropertyValue(key) && !excludes.includes(key))\n .map(([key, value]) => `${key}:${value};`)\n .join(\"\");\n}\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 { setColor, formatDoc, formatCss } 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 localStorage.setItem(\"nightMode\", state.nightMode);\n },\n initEditorState(state) {\n state.currentFont =\n localStorage.getItem(\"fonts\") || config.builtinFonts[0].value;\n state.currentColor =\n localStorage.getItem(\"color\") || config.colorOption[0].value;\n state.currentSize =\n localStorage.getItem(\"size\") || config.sizeOption[2].value;\n state.codeTheme =\n localStorage.getItem(\"codeTheme\") || config.codeThemeOption[0].value;\n state.citeStatus = localStorage.getItem(\"citeStatus\") === \"true\";\n state.nightMode = localStorage.getItem(\"nightMode\") === \"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 const editorDom = document.getElementById(\"editor\");\n\n if (!editorDom.value) {\n editorDom.value =\n localStorage.getItem(\"__editor_content\") || formatDoc(DEFAULT_CONTENT);\n }\n state.editor = CodeMirror.fromTextArea(editorDom, {\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 \"Ctrl-S\": function save(editor) {},\n },\n });\n },\n initCssEditorEntity(state) {\n const cssEditorDom = document.getElementById(\"cssEditor\");\n\n if (!cssEditorDom.value) {\n cssEditorDom.value =\n localStorage.getItem(\"__css_content\") || DEFAULT_CSS_CONTENT;\n }\n state.cssEditor = CodeMirror.fromTextArea(cssEditorDom, {\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 doc = formatCss(editor.getValue(0));\n localStorage.setItem(\"__css_content\", doc);\n editor.setValue(doc);\n },\n \"Ctrl-S\": function save(editor) {},\n },\n });\n },\n editorRefresh(state) {\n let output = marked(state.editor.getValue(0), {\n renderer: state.wxRenderer.getRenderer(state.citeStatus),\n });\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\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});\n","import Vue from \"vue\";\nimport {\n Loading,\n Message,\n} from \"element-ui\";\n\nVue.component(Message.name, Message);\n\nVue.prototype.$loading = Loading.service;\nVue.prototype.$message = Message;\n","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,\"export\":_vm.exportEditorContent,\"showCssEditor\":function($event){_vm.showCssEditor = !_vm.showCssEditor},\"show-about-dialog\":function($event){_vm.aboutDialogVisible = true},\"show-dialog-form\":function($event){_vm.dialogFormVisible = true},\"show-dialog-upload-img\":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',{staticClass:\"codeMirror-wrapper\",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:{\n 'preview-wrapper_night': _vm.nightMode && _vm.isCoping,\n },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\"}],staticClass:\"cssEditor-wrapper\",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},\"beforeUpload\":_vm.beforeUpload,\"uploadImage\":_vm.uploadImage,\"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('div',{staticClass:\"left-side\"},[_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('show-dialog-upload-img')}}})]),_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\":\"导出 HTML\",\"placement\":\"bottom-start\"}},[_c('i',{staticClass:\"el-icon-document\",attrs:{\"size\":\"medium\"},on:{\"click\":function($event){return _vm.$emit('export')}}})]),_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('show-dialog-form')}}})]),_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),_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),_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),_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('div',{staticClass:\"right-side\"},[_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('show-about-dialog')}}},[_vm._v(\"关于\")]),_c('el-tooltip',{attrs:{\"content\":_vm.btnContent,\"effect\":_vm.effect,\"placement\":\"bottom-start\"}},[(_vm.nightMode)?_c('div',{staticClass:\"mode__switch mode__switch_black\",on:{\"click\":_vm.themeChanged}}):_c('div',{staticClass:\"mode__switch\",on:{\"click\":_vm.themeChanged}})])],1),_c('resetDialog',{attrs:{\"showResetConfirm\":_vm.showResetConfirm},on:{\"confirm\":_vm.confirmReset,\"close\":_vm.cancelReset}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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(html, {\n inlinePseudoElements: true,\n preserveImportant: true,\n });\n return res;\n}\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 \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!./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=68392714&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=68392714&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 \"68392714\",\n null\n \n)\n\nexport default component.exports","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ font.label }} \n Abc \n \n \n \n \n {{ size.label }} \n {{ size.desc }} \n \n \n \n \n {{ color.label }} \n {{ color.desc }} \n \n \n \n \n \n \n \n \n
\n \n
\n \n \n
复制 \n
关于 \n
\n
\n
\n \n
\n \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!./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=268e83f5&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=268e83f5&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 \"268e83f5\",\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
一款高度简洁的微信 Markdown 编辑器 \n \n \n
扫码关注我的公众号,原创技术文章第一时间推送!
\n
\n
\n \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!./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=70c50907&scoped=true&\"\nimport script from \"./aboutDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./aboutDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./aboutDialog.vue?vue&type=style&index=0&id=70c50907&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 \"70c50907\",\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',[_vm._v(\" 行数: \"),_c('el-input-number',{attrs:{\"controls-position\":\"right\",\"min\":1,\"max\":100,\"size\":\"small\"},model:{value:(_vm.rowNum),callback:function ($$v) {_vm.rowNum=$$v},expression:\"rowNum\"}})],1),_c('el-col',[_vm._v(\" 列数: \"),_c('el-input-number',{attrs:{\"controls-position\":\"right\",\"min\":1,\"max\":100,\"size\":\"small\"},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 \n \n \n 列数:\n \n \n \n \n \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!./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=4dd4e7e2&scoped=true&\"\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&id=4dd4e7e2&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 \"4dd4e7e2\",\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.menu),function(menuItem,index){return _c('div',{key:index,staticClass:\"menu__group\"},_vm._l((menuItem),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)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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=6002a51a&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=6002a51a&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 \"6002a51a\",\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:\"upload__dialog\",attrs:{\"title\":\"本地上传\",\"visible\":_vm.value},on:{\"close\":function($event){return _vm.$emit('close')}}},[_c('el-tabs',{attrs:{\"type\":\"activeName\",\"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',{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.beforeImageUpload,\"http-request\":_vm.uploadImage}},[_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\":\"Gitee 图床\",\"name\":\"gitee\"}},[_c('el-form',{staticClass:\"setting-form\",attrs:{\"model\":_vm.formGitee,\"label-position\":\"right\",\"label-width\":\"140px\"}},[_c('el-form-item',{attrs:{\"label\":\"Gitee 仓库\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:gitee.com/yanglbme/resource\"},model:{value:(_vm.formGitee.repo),callback:function ($$v) {_vm.$set(_vm.formGitee, \"repo\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formGitee.repo\"}})],1),_c('el-form-item',{attrs:{\"label\":\"分支\"}},[_c('el-input',{attrs:{\"placeholder\":\"如:release,可不填,默认 master\"},model:{value:(_vm.formGitee.branch),callback:function ($$v) {_vm.$set(_vm.formGitee, \"branch\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formGitee.branch\"}})],1),_c('el-form-item',{attrs:{\"label\":\"私人令牌\",\"required\":true}},[_c('el-input',{attrs:{\"show-password\":\"\",\"placeholder\":\"如:cc1d0c1426d0fd0902bd2d7184b14da61b8abc46\"},model:{value:(_vm.formGitee.accessToken),callback:function ($$v) {_vm.$set(_vm.formGitee, \"accessToken\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formGitee.accessToken\"}}),_c('el-link',{attrs:{\"type\":\"primary\",\"href\":\"https://gitee.com/profile/personal_access_tokens\",\"target\":\"_blank\"}},[_vm._v(\"请在 Gitee「设置->安全设置->私人令牌」中生成\")])],1),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.saveGiteeConfiguration}},[_vm._v(\"保存配置\")])],1)],1)],1),_c('el-tab-pane',{staticClass:\"github-panel\",attrs:{\"label\":\"GitHub 图床\",\"name\":\"github\"}},[_c('el-form',{staticClass:\"setting-form\",attrs:{\"model\":_vm.formGitHub,\"label-position\":\"right\",\"label-width\":\"140px\"}},[_c('el-form-item',{attrs:{\"label\":\"GitHub 仓库\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:github.com/yanglbme/resource\"},model:{value:(_vm.formGitHub.repo),callback:function ($$v) {_vm.$set(_vm.formGitHub, \"repo\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formGitHub.repo\"}})],1),_c('el-form-item',{attrs:{\"label\":\"分支\"}},[_c('el-input',{attrs:{\"placeholder\":\"如:release,可不填,默认 master\"},model:{value:(_vm.formGitHub.branch),callback:function ($$v) {_vm.$set(_vm.formGitHub, \"branch\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formGitHub.branch\"}})],1),_c('el-form-item',{attrs:{\"label\":\"Token\",\"required\":true}},[_c('el-input',{attrs:{\"show-password\":\"\",\"placeholder\":\"如:cc1d0c1426d0fd0902bd2d7184b14da61b8abc46\"},model:{value:(_vm.formGitHub.accessToken),callback:function ($$v) {_vm.$set(_vm.formGitHub, \"accessToken\", (typeof $$v === 'string'? $$v.trim(): $$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.saveGitHubConfiguration}},[_vm._v(\"保存配置\")])],1)],1)],1),_c('el-tab-pane',{staticClass:\"github-panel\",attrs:{\"label\":\"阿里云 OSS\",\"name\":\"aliOSS\"}},[_c('el-form',{staticClass:\"setting-form\",attrs:{\"model\":_vm.formAliOSS,\"label-position\":\"right\",\"label-width\":\"140px\"}},[_c('el-form-item',{attrs:{\"label\":\"AccessKey ID\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:LTAI4GdoocsmdoxUf13ylbaNHk\"},model:{value:(_vm.formAliOSS.accessKeyId),callback:function ($$v) {_vm.$set(_vm.formAliOSS, \"accessKeyId\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formAliOSS.accessKeyId\"}})],1),_c('el-form-item',{attrs:{\"label\":\"AccessKey Secret\",\"required\":true}},[_c('el-input',{attrs:{\"show-password\":\"\",\"placeholder\":\"如:cc1d0c142doocs0902bd2d7md4b14da6ylbabc46\"},model:{value:(_vm.formAliOSS.accessKeySecret),callback:function ($$v) {_vm.$set(_vm.formAliOSS, \"accessKeySecret\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formAliOSS.accessKeySecret\"}})],1),_c('el-form-item',{attrs:{\"label\":\"Bucket\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:doocs\"},model:{value:(_vm.formAliOSS.bucket),callback:function ($$v) {_vm.$set(_vm.formAliOSS, \"bucket\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formAliOSS.bucket\"}})],1),_c('el-form-item',{attrs:{\"label\":\"Bucket 所在区域\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:oss-cn-shenzhen\"},model:{value:(_vm.formAliOSS.region),callback:function ($$v) {_vm.$set(_vm.formAliOSS, \"region\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formAliOSS.region\"}})],1),_c('el-form-item',{attrs:{\"label\":\"自定义 CDN 域名\",\"required\":false}},[_c('el-input',{attrs:{\"placeholder\":\"如:https://imagecdn.alidaodao.com,可不填\"},model:{value:(_vm.formAliOSS.cdnHost),callback:function ($$v) {_vm.$set(_vm.formAliOSS, \"cdnHost\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formAliOSS.cdnHost\"}})],1),_c('el-form-item',{attrs:{\"label\":\"存储路径\"}},[_c('el-input',{attrs:{\"placeholder\":\"如:img,可不填,默认为根目录\"},model:{value:(_vm.formAliOSS.path),callback:function ($$v) {_vm.$set(_vm.formAliOSS, \"path\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formAliOSS.path\"}}),_c('el-link',{attrs:{\"type\":\"primary\",\"href\":\"https://help.aliyun.com/document_detail/31883.html\",\"target\":\"_blank\"}},[_vm._v(\"如何使用阿里云 OSS?\")])],1),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.saveAliOSSConfiguration}},[_vm._v(\"保存配置\")])],1)],1)],1),_c('el-tab-pane',{staticClass:\"github-panel\",attrs:{\"label\":\"腾讯云 COS\",\"name\":\"txCOS\"}},[_c('el-form',{staticClass:\"setting-form\",attrs:{\"model\":_vm.formTxCOS,\"label-position\":\"right\",\"label-width\":\"140px\"}},[_c('el-form-item',{attrs:{\"label\":\"SecretId\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:AKIDnQp1w3DOOCSs8F5MDp9tdoocsmdUPonW3\"},model:{value:(_vm.formTxCOS.secretId),callback:function ($$v) {_vm.$set(_vm.formTxCOS, \"secretId\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formTxCOS.secretId\"}})],1),_c('el-form-item',{attrs:{\"label\":\"SecretKey\",\"required\":true}},[_c('el-input',{attrs:{\"show-password\":\"\",\"placeholder\":\"如:ukLmdtEJ9271f3DOocsMDsCXdS3YlbW0\"},model:{value:(_vm.formTxCOS.secretKey),callback:function ($$v) {_vm.$set(_vm.formTxCOS, \"secretKey\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formTxCOS.secretKey\"}})],1),_c('el-form-item',{attrs:{\"label\":\"Bucket\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:doocs-3212520134\"},model:{value:(_vm.formTxCOS.bucket),callback:function ($$v) {_vm.$set(_vm.formTxCOS, \"bucket\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formTxCOS.bucket\"}})],1),_c('el-form-item',{attrs:{\"label\":\"Bucket 所在区域\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:ap-guangzhou\"},model:{value:(_vm.formTxCOS.region),callback:function ($$v) {_vm.$set(_vm.formTxCOS, \"region\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formTxCOS.region\"}})],1),_c('el-form-item',{attrs:{\"label\":\"自定义 CDN 域名\",\"required\":false}},[_c('el-input',{attrs:{\"placeholder\":\"如:https://imagecdn.alidaodao.com,可不填\"},model:{value:(_vm.formTxCOS.cdnHost),callback:function ($$v) {_vm.$set(_vm.formTxCOS, \"cdnHost\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formTxCOS.cdnHost\"}})],1),_c('el-form-item',{attrs:{\"label\":\"存储路径\"}},[_c('el-input',{attrs:{\"placeholder\":\"如:img,可不填,默认根目录\"},model:{value:(_vm.formTxCOS.path),callback:function ($$v) {_vm.$set(_vm.formTxCOS, \"path\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formTxCOS.path\"}}),_c('el-link',{attrs:{\"type\":\"primary\",\"href\":\"https://cloud.tencent.com/document/product/436/38484\",\"target\":\"_blank\"}},[_vm._v(\"如何使用腾讯云 COS?\")])],1),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.saveTxCOSConfiguration}},[_vm._v(\"保存配置\")])],1)],1)],1),_c('el-tab-pane',{staticClass:\"github-panel\",attrs:{\"label\":\"七牛云 Kodo\",\"name\":\"qiniu\"}},[_c('el-form',{staticClass:\"setting-form\",attrs:{\"model\":_vm.formQiniu,\"label-position\":\"right\",\"label-width\":\"140px\"}},[_c('el-form-item',{attrs:{\"label\":\"AccessKey\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:6DD3VaLJ_SQgOdoocsyTV_YWaDmdnL2n8EGx7kG\"},model:{value:(_vm.formQiniu.accessKey),callback:function ($$v) {_vm.$set(_vm.formQiniu, \"accessKey\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formQiniu.accessKey\"}})],1),_c('el-form-item',{attrs:{\"label\":\"SecretKey\",\"required\":true}},[_c('el-input',{attrs:{\"show-password\":\"\",\"placeholder\":\"如:qgZa5qrvDOOcsmdKStD1oCjZ9nB7MDvJUs_34SIm\"},model:{value:(_vm.formQiniu.secretKey),callback:function ($$v) {_vm.$set(_vm.formQiniu, \"secretKey\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formQiniu.secretKey\"}})],1),_c('el-form-item',{attrs:{\"label\":\"Bucket\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:md\"},model:{value:(_vm.formQiniu.bucket),callback:function ($$v) {_vm.$set(_vm.formQiniu, \"bucket\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formQiniu.bucket\"}})],1),_c('el-form-item',{attrs:{\"label\":\"Bucket 对应域名\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:https://images.123ylb.cn\"},model:{value:(_vm.formQiniu.domain),callback:function ($$v) {_vm.$set(_vm.formQiniu, \"domain\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formQiniu.domain\"}})],1),_c('el-form-item',{attrs:{\"label\":\"存储区域\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:z2\"},model:{value:(_vm.formQiniu.region),callback:function ($$v) {_vm.$set(_vm.formQiniu, \"region\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formQiniu.region\"}})],1),_c('el-form-item',{attrs:{\"label\":\"存储路径\",\"required\":false}},[_c('el-input',{attrs:{\"placeholder\":\"如:img,可不填,默认为根目录\"},model:{value:(_vm.formQiniu.path),callback:function ($$v) {_vm.$set(_vm.formQiniu, \"path\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formQiniu.path\"}}),_c('el-link',{attrs:{\"type\":\"primary\",\"href\":\"https://developer.qiniu.com/kodo\",\"target\":\"_blank\"}},[_vm._v(\"如何使用七牛云 Kodo?\")])],1),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.saveQiniuConfiguration}},[_vm._v(\"保存配置\")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n \n \n 将图片拖到此处,或\n 点击上传 \n
\n \n \n \n \n \n \n \n \n \n \n \n \n 请在 Gitee「设置->安全设置->私人令牌」中生成 \n \n \n 保存配置 \n \n \n \n \n \n \n \n \n \n \n \n \n \n 如何获取 GitHub Token? \n \n \n 保存配置 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 如何使用阿里云 OSS? \n \n \n 保存配置 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 如何使用腾讯云 COS? \n \n \n 保存配置 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 如何使用七牛云 Kodo? \n \n \n 保存配置 \n \n \n \n \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!./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=fc5ed8b0&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=fc5ed8b0&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 \"fc5ed8b0\",\n null\n \n)\n\nexport default component.exports","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 },\n (error) => {\n Promise.reject(error);\n }\n);\n\nservice.interceptors.response.use(\n (res) => {\n return res.data ? res.data : Promise.reject(res);\n },\n (error) => Promise.reject(error)\n);\n\nexport default service;\n","const githubConfig = {\n username: \"filess\",\n repoList: Array.from(\n [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],\n (e) => `img${e}`\n ),\n branch: \"main\",\n accessTokenList: [\n \"7715d7ca67b5d3837cfdoocsmde8c38421815aa423510af\",\n \"c411415bf95dbe39625doocsmd5047ba9b7a2a6c9642abe\",\n \"2821cd8819fa345c053doocsmdca86ac653f8bc20db1f1b\",\n \"445f0dae46ef1f2a4d6doocsmdc797301e94797b4750a4c\",\n \"cc1d0c1426d0fd0902bdoocsmdd2d7184b14da61b86ec46\",\n \"b67e9d15cb6f910492fdoocsmdac6b44d379c953bb19eff\",\n \"618c4dc2244ccbbc088doocsmd125d17fd31b7d06a50cf3\",\n \"a4b581732e1c1507458doocsmdc5b223b27dae5e2e16a55\",\n \"77904db41aee57ad79bdoocsmd760f848201dac9c96fd5e\",\n \"02f251cb14ac62ab100doocsmdddbfc8527d773f1f04ce1\",\n \"eb321079a95ba7028d9doocsmde2e84c502dac70de7cf08\",\n \"22f74fcfb071a961fa2doocsmde28dabc746f0503a15e5d\",\n \"85124c2bfe7abba0938doocsmd0af7f67918b99d085a5fd\",\n \"0a561b4d4bbecb2de7edoocsmdd9ba3833d11dbc5e430f5\",\n \"e8a01491188d8d5a097doocsmd03ede0aad1fe9e3af24e9\",\n \"36e1f420d7e5bdebd67doocsmd65463562f5f25b20b8377\",\n ],\n};\n\nconst giteeConfig = {\n username: \"filesss\",\n repoList: Array.from(\n [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],\n (e) => `img${e}`\n ),\n branch: \"main\",\n accessTokenList: [\n \"ed5fc9866bd6c2fdoocsmddd433f806fd2f399c\",\n \"5448ffebbbf1151doocsmdc4e337cf814fc8a62\",\n \"25b05efd2557ca2doocsmd75b5c0835e3395911\",\n \"11628c7a5aef015doocsmd2eeff9fb9566f0458\",\n \"cb2f5145ed938dedoocsmdbd063b4ed244eecf8\",\n \"d8c0b57500672c1doocsmd55f48b866b5ebcd98\",\n \"78c56eadb88e453doocsmd43ddd95753351771a\",\n \"03e1a688003948fdoocsmda16fcf41e6f03f1f0\",\n \"c49121cf4d191fbdoocsmdd6a7877ed537e474a\",\n \"adfeb2fadcdc4aadoocsmdfe1ee869ac9c968ff\",\n \"116c94549ca4a0ddoocsmd192653af5c0694616\",\n \"ecf30ed7f2eb184doocsmd51ea4ec8300371d9e\",\n \"5837cf2bd5afd93doocsmd73904bed31934949e\",\n \"b5b7e1c7d57e01fdoocsmd5266f552574297d78\",\n \"684d55564ffbd0bdoocsmd7d747e5cc23aed6d6\",\n \"3fc04a9d272ab71doocsmd010c56cb57d88d2ba\",\n ],\n};\n\nexport { githubConfig, giteeConfig };\n","export function utf16to8(str) {\n var out, i, len, c;\n out = \"\";\n len = str.length;\n for (i = 0; i < len; i++) {\n c = str.charCodeAt(i);\n if (c >= 0x0001 && c <= 0x007f) {\n out += str.charAt(i);\n } else if (c > 0x07ff) {\n out += String.fromCharCode(0xe0 | ((c >> 12) & 0x0f));\n out += String.fromCharCode(0x80 | ((c >> 6) & 0x3f));\n out += String.fromCharCode(0x80 | ((c >> 0) & 0x3f));\n } else {\n out += String.fromCharCode(0xc0 | ((c >> 6) & 0x1f));\n out += String.fromCharCode(0x80 | ((c >> 0) & 0x3f));\n }\n }\n return out;\n}\n\nexport function utf8to16(str) {\n var out, i, len, c;\n var char2, char3;\n out = \"\";\n len = str.length;\n i = 0;\n while (i < len) {\n c = str.charCodeAt(i++);\n switch (c >> 4) {\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n // 0xxxxxxx\n out += str.charAt(i - 1);\n break;\n case 12:\n case 13:\n // 110x xxxx 10xx xxxx\n char2 = str.charCodeAt(i++);\n out += String.fromCharCode(((c & 0x1f) << 6) | (char2 & 0x3f));\n break;\n case 14:\n // 1110 xxxx 10xx xxxx 10xx xxxx\n char2 = str.charCodeAt(i++);\n char3 = str.charCodeAt(i++);\n out += String.fromCharCode(\n ((c & 0x0f) << 12) | ((char2 & 0x3f) << 6) | ((char3 & 0x3f) << 0)\n );\n break;\n }\n }\n return out;\n}\n\nconst base64EncodeChars =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\";\nconst base64DecodeChars = new Array(\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n 62,\n -1,\n -1,\n -1,\n 63,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 59,\n 60,\n 61,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n -1,\n -1,\n -1,\n -1,\n -1\n);\nexport function base64encode(str) {\n var out, i, len;\n var c1, c2, c3;\n len = str.length;\n i = 0;\n out = \"\";\n while (i < len) {\n c1 = str.charCodeAt(i++) & 0xff;\n if (i == len) {\n out += base64EncodeChars.charAt(c1 >> 2);\n out += base64EncodeChars.charAt((c1 & 0x3) << 4);\n out += \"==\";\n break;\n }\n c2 = str.charCodeAt(i++);\n if (i == len) {\n out += base64EncodeChars.charAt(c1 >> 2);\n out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xf0) >> 4));\n out += base64EncodeChars.charAt((c2 & 0xf) << 2);\n out += \"=\";\n break;\n }\n c3 = str.charCodeAt(i++);\n out += base64EncodeChars.charAt(c1 >> 2);\n out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xf0) >> 4));\n out += base64EncodeChars.charAt(((c2 & 0xf) << 2) | ((c3 & 0xc0) >> 6));\n out += base64EncodeChars.charAt(c3 & 0x3f);\n }\n return out;\n}\n\nexport function base64decode(str) {\n var c1, c2, c3, c4;\n var i, len, out;\n len = str.length;\n i = 0;\n out = \"\";\n while (i < len) {\n /* c1 */\n do {\n c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];\n } while (i < len && c1 == -1);\n if (c1 == -1) break;\n /* c2 */\n do {\n c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];\n } while (i < len && c2 == -1);\n if (c2 == -1) break;\n out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));\n /* c3 */\n do {\n c3 = str.charCodeAt(i++) & 0xff;\n if (c3 == 61) return out;\n c3 = base64DecodeChars[c3];\n } while (i < len && c3 == -1);\n if (c3 == -1) break;\n out += String.fromCharCode(((c2 & 0xf) << 4) | ((c3 & 0x3c) >> 2));\n /* c4 */\n do {\n c4 = str.charCodeAt(i++) & 0xff;\n if (c4 == 61) return out;\n c4 = base64DecodeChars[c4];\n } while (i < len && c4 == -1);\n if (c4 == -1) break;\n out += String.fromCharCode(((c3 & 0x03) << 6) | c4);\n }\n return out;\n}\n\nexport function safe64(base64) {\n base64 = base64.replace(/\\+/g, \"-\");\n base64 = base64.replace(/\\//g, \"_\");\n return base64;\n}\n","import fetch from \"./fetch\";\nimport { githubConfig, giteeConfig } from \"./config\";\nimport CryptoJS from \"crypto-js\";\nimport OSS from \"ali-oss\";\nimport COS from \"cos-js-sdk-v5\";\nimport Buffer from \"buffer-from\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport * as qiniu from \"qiniu-js\";\nimport { utf16to8, base64encode, safe64 } from \"../assets/scripts/tokenTools\";\n\nfunction getConfig(useDefault, platform) {\n if (useDefault) {\n // load default config file\n const config = platform === \"github\" ? githubConfig : giteeConfig;\n const { username, repoList, branch, accessTokenList } = config;\n\n // choose random token from access_token list\n const tokenIndex = Math.floor(Math.random() * accessTokenList.length);\n const accessToken = accessTokenList[tokenIndex].replace(\"doocsmd\", \"\");\n\n // choose random repo from repo list\n const repoIndex = Math.floor(Math.random() * repoList.length);\n const repo = repoList[repoIndex];\n\n return { username, repo, branch, accessToken };\n }\n\n // load configuration from localStorage\n const customConfig = JSON.parse(localStorage.getItem(`${platform}Config`));\n\n // split username/repo\n const repoUrl = customConfig.repo\n .replace(`https://${platform}.com/`, \"\")\n .replace(`http://${platform}.com/`, \"\")\n .replace(`${platform}.com/`, \"\")\n .split(\"/\");\n return {\n username: repoUrl[0],\n repo: repoUrl[1],\n branch: customConfig.branch || \"master\",\n accessToken: customConfig.accessToken,\n };\n}\n\nfunction getDir() {\n const date = new Date();\n const year = date.getFullYear();\n const month = (date.getMonth() + 1).toString().padStart(2, \"0\");\n const day = date.getDate().toString().padStart(2, \"0\");\n return `${year}/${month}/${day}`;\n}\n\nfunction getDateFilename(filename) {\n const currentTimestamp = new Date().getTime();\n const fileSuffix = filename.split(\".\")[1];\n return `${currentTimestamp}-${uuidv4()}.${fileSuffix}`;\n}\n\n//-----------------------------------------------------------------------\n// GitHub File Upload\n//-----------------------------------------------------------------------\n\nasync function ghFileUpload(content, filename) {\n const useDefault = localStorage.getItem(\"imgHost\") === \"default\";\n const { username, repo, branch, accessToken } = getConfig(\n useDefault,\n \"github\"\n );\n const dir = getDir();\n const url = `https://api.github.com/repos/${username}/${repo}/contents/${dir}/`;\n const dateFilename = getDateFilename(filename);\n const res = await fetch({\n url: url + dateFilename,\n method: \"put\",\n headers: {\n Authorization: `token ${accessToken}`,\n },\n data: {\n content,\n branch,\n message: `Upload by ${window.location.href}`,\n },\n });\n\n const githubResourceUrl = `raw.githubusercontent.com/${username}/${repo}/${branch}/`;\n const cdnResourceUrl = `cdn.jsdelivr.net/gh/${username}/${repo}@${branch}/`;\n return useDefault\n ? res.data.content.download_url.replace(githubResourceUrl, cdnResourceUrl)\n : res.data.content.download_url;\n}\n\n//-----------------------------------------------------------------------\n// Gitee File Upload\n//-----------------------------------------------------------------------\n\nasync function giteeUpload(content, filename) {\n const useDefault = localStorage.getItem(\"imgHost\") === \"default\";\n const { username, repo, branch, accessToken } = getConfig(\n useDefault,\n \"gitee\"\n );\n const dir = getDir();\n const dateFilename = getDateFilename(filename);\n const url = `https://gitee.com/api/v5/repos/${username}/${repo}/contents/${dir}/${dateFilename}`;\n const res = await fetch({\n url,\n method: \"POST\",\n data: {\n content,\n branch,\n access_token: accessToken,\n message: `Upload by ${window.location.href}`,\n },\n });\n return encodeURI(res.data.content.download_url);\n}\n\n//-----------------------------------------------------------------------\n// Qiniu File Upload\n//-----------------------------------------------------------------------\n\nfunction getQiniuToken(accessKey, secretKey, putPolicy) {\n const policy = JSON.stringify(putPolicy);\n const encoded = base64encode(utf16to8(policy));\n const hash = CryptoJS.HmacSHA1(encoded, secretKey);\n const encodedSigned = hash.toString(CryptoJS.enc.Base64);\n return `${accessKey}:${safe64(encodedSigned)}:${encoded}`;\n}\n\nasync function qiniuUpload(file) {\n const { accessKey, secretKey, bucket, region, path, domain } = JSON.parse(\n localStorage.getItem(\"qiniuConfig\")\n );\n const token = getQiniuToken(accessKey, secretKey, {\n scope: bucket,\n deadline: Math.trunc(new Date().getTime() / 1000) + 3600,\n });\n const dir = path ? `${path}/` : \"\";\n const dateFilename = dir + getDateFilename(file.name);\n const observable = qiniu.upload(file, dateFilename, token, {}, { region });\n return new Promise((resolve, reject) => {\n observable.subscribe({\n next: (result) => {\n console.log(result);\n },\n error: (err) => {\n reject(err.message);\n },\n complete: (result) => {\n resolve(`${domain}/${result.key}`);\n },\n });\n });\n}\n\n//-----------------------------------------------------------------------\n// AliOSS File Upload\n//-----------------------------------------------------------------------\n\nasync function aliOSSFileUpload(content, filename) {\n const dateFilename = getDateFilename(filename);\n const { region, bucket, accessKeyId, accessKeySecret, cdnHost, path } =\n JSON.parse(localStorage.getItem(\"aliOSSConfig\"));\n const buffer = Buffer(content, \"base64\");\n const dir = `${path}/${dateFilename}`;\n const client = new OSS({\n region,\n bucket,\n accessKeyId,\n accessKeySecret,\n });\n try {\n const res = await client.put(dir, buffer);\n if (cdnHost == \"\") return res.url;\n return `${cdnHost}/${path == \"\" ? dateFilename : dir}`;\n } catch (e) {\n return Promise.reject(e);\n }\n}\n\n//-----------------------------------------------------------------------\n// TxCOS File Upload\n//-----------------------------------------------------------------------\n\nasync function txCOSFileUpload(file) {\n const dateFilename = getDateFilename(file.name);\n const { secretId, secretKey, bucket, region, path, cdnHost } = JSON.parse(\n localStorage.getItem(\"txCOSConfig\")\n );\n const cos = new COS({\n SecretId: secretId,\n SecretKey: secretKey,\n });\n return new Promise((resolve, reject) => {\n cos.putObject(\n {\n Bucket: bucket,\n Region: region,\n Key: `${path}/${dateFilename}`,\n Body: file,\n },\n function (err, data) {\n if (err) {\n reject(err);\n } else if (cdnHost) {\n resolve(\n path == \"\"\n ? `${cdnHost}/${dateFilename}`\n : `${cdnHost}/${path}/${dateFilename}`\n );\n } else {\n resolve(`https://${data.Location}`);\n }\n }\n );\n });\n}\n\nfunction fileUpload(content, file) {\n const imgHost = localStorage.getItem(\"imgHost\");\n !imgHost && localStorage.setItem(\"imgHost\", \"default\");\n switch (imgHost) {\n case \"aliOSS\":\n return aliOSSFileUpload(content, file.name);\n case \"txCOS\":\n return txCOSFileUpload(file);\n case \"qiniu\":\n return qiniuUpload(file);\n case \"gitee\":\n return giteeUpload(content, file.name);\n case \"github\":\n return ghFileUpload(content, file.name);\n default:\n // return file.size / 1024 < 1024\n // ? giteeUpload(content, file.name)\n // : ghFileUpload(content, file.name);\n return ghFileUpload(content, file.name);\n }\n}\n\nexport default {\n fileUpload,\n};\n","\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n \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!./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=0152319a&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=0152319a&lang=less&scoped=true&\"\nimport style1 from \"./CodemirrorEditor.vue?vue&type=style&index=1&id=0152319a&lang=less&scoped=true&\"\nimport style2 from \"./CodemirrorEditor.vue?vue&type=style&index=2&id=0152319a&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 \"0152319a\",\n null\n \n)\n\nexport default component.exports","\n \n \n \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!./index.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!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=8e90ad4c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=8e90ad4c&scoped=true&lang=css&\"\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 \"8e90ad4c\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport index from '@/pages/index/index'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: `/`,\n name: `index`,\n component: index,\n }\n]\n\nconst router = new VueRouter({\n mode: `history`,\n base: process.env.BASE_URL,\n routes,\n})\n\nexport default router\n","import Vue from \"vue\";\nimport App from \"./App\";\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/xq-light.css\";\nimport \"codemirror/mode/css/css\";\nimport \"codemirror/mode/markdown/markdown\";\nimport \"codemirror/addon/edit/closebrackets\";\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 router from './router';\n\nVue.use(ElementUI);\n\nVue.config.productionTip = false;\n\nApp.mpType = \"app\";\n\nconst app = new Vue({\n router,\n store,\n ...App,\n});\napp.$mount(\"#app\");\n","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/@vue/cli-service/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=2&id=0152319a&lang=less&scoped=true&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/@vue/cli-service/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&id=4dd4e7e2&lang=less&scoped=true&\"","export * from \"-!../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../node_modules/@vue/cli-service/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!./App.vue?vue&type=style&index=0&lang=less&\"","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/@vue/cli-service/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&id=0152319a&lang=less&scoped=true&\"","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/@vue/cli-service/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=0152319a&lang=less&scoped=true&\"","export * from \"-!../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../node_modules/@vue/cli-service/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!./App.vue?vue&type=style&index=1&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 }","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/@vue/cli-service/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!./aboutDialog.vue?vue&type=style&index=0&id=70c50907&lang=less&scoped=true&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/@vue/cli-service/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=6002a51a&lang=less&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&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/@vue/cli-service/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=268e83f5&lang=less&scoped=true&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/@vue/cli-service/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=fc5ed8b0&lang=less&scoped=true&\""],"sourceRoot":""}
\ No newline at end of file
diff --git a/js/app.55eacff9.js b/js/app.55eacff9.js
new file mode 100644
index 0000000..69ffcd5
--- /dev/null
+++ b/js/app.55eacff9.js
@@ -0,0 +1,4 @@
+(function(e){function t(t){for(var n,a,c=t[0],s=t[1],l=t[2],d=0,f=[];d['.concat(e[0],"]: ").concat(e[1]," "):'['.concat(e[0],"]
").concat(e[1],": ").concat(e[2]," ")}));return"引用链接 ").concat(e.join("\n"),"
")},this.buildAddition=function(){return"\n \n "},this.setOptions=function(e){o.opts=s(o.opts,e)},this.hasFootnotes=function(){return 0!==r.length},this.getRenderer=function(e){r=[],i=0,a=o.buildTheme(o.opts.theme);var t=new g.a.Renderer;return t.heading=function(e,t){switch(t){case 1:return"").concat(e," ");case 2:return"").concat(e," ");case 3:return"").concat(e," ");default:return"").concat(e," ")}},t.paragraph=function(e){return-1!=e.indexOf("").concat(e,"")},t.blockquote=function(e){return e=e.replace(//g,"")),"
").concat(e," ")},t.code=function(e,t){e=e.replace(//g,">");var o=e.split("\n").map((function(e){return''.concat(e||" ","
")})),n="github";return'\n \n \n ').concat(o.join(""),"\n \n \n ")},t.codespan=function(e,t){return"").concat(e,"
")},t.listitem=function(e){return"<%s/> ').concat(e," ")},t.list=function(e,t,o){e=e.replace(/<\/*p.*?>/g,"");var n=e.split("<%s/>");if(!t)return e=n.join("•"),"").concat(e,"
");e=n[0];for(var r=1;r").concat(e,"")},t.image=function(e,t,o){var r="";o&&(r="").concat(o," "));var i=l("figure"),a=l(n?"image":"image_org");return" ').concat(r," ")},t.link=function(t,o,n){if(t.startsWith("https://mp.weixin.qq.com"))return'").concat(n," ");if(t===n)return n;if(e){var r=u(o||n,t);return"").concat(n,"[").concat(r,"] ")}return"").concat(n," ")},t.strong=function(e){return"").concat(e," ")},t.em=function(e){return''.concat(e," ")},t.table=function(e,t){return'").concat(e," ").concat(t,"
")},t.tablecell=function(e,t){return"").concat(e," ")},t.hr=function(){return' '},t}},b=h,v=o("56b3"),C=o.n(v),k='# 示例文章: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',y=k,S="/*\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/* 有序列表样式 */\nol {\n}\n/* 无序列表样式 */\nul {\n}\n/* 列表项样式 */\nli {\n}\n",x=S,w=o("3835"),O=(o("4160"),o("159b"),o("498a"),o("4de4"),o("b64b"),o("fb6a"),o("d3b7"),o("3ca3"),o("ddb0"),o("2b3d"),o("a630"),o("caad"),o("2532"),o("4fad"),{BASE:{"text-align":"left",color:"#3f3f3f","line-height":"1.75"},BASE_BLOCK:{margin:"1em 8px"},block:{h1:{"font-size":"1.2em","text-align":"center","font-weight":"bold",display:"table",margin:"2em auto 1em",padding:"0 1em","border-bottom":"2px solid rgba(0, 152, 116, 0.9)"},h2:{"font-size":"1.2em","text-align":"center","font-weight":"bold",display:"table",margin:"4em auto 2em",padding:"0 0.2em",background:"rgba(0, 152, 116, 0.9)",color:"#fff"},h3:{"font-weight":"bold","font-size":"1.1em",margin:"2em 8px 0.75em 0","line-height":"1.2","padding-left":"8px","border-left":"3px solid rgba(0, 152, 116, 0.9)"},h4:{"font-weight":"bold","font-size":"1em",margin:"2em 8px 0.5em",color:"rgba(66, 185, 131, 0.9)"},p:{margin:"1.5em 8px","letter-spacing":"0.1em"},blockquote:{"font-style":"normal","border-left":"none",padding:"1em","border-radius":"8px",color:"rgba(0,0,0,0.5)",background:"#f7f7f7",margin:"2em 8px"},blockquote_p:{"letter-spacing":"0.1em",color:"rgb(80, 80, 80)","font-size":"1em",display:"block"},code:{"font-size":"80%",overflow:"auto",color:"#333","white-space":"pre",background:"rgb(247, 247, 247)","border-radius":"8px",padding:"10px","line-height":"1.5",border:"1px solid rgb(236,236,236)",margin:"20px 0"},image:{"border-radius":"4px",display:"block",margin:"0.1em auto 0.5em",width:"100% !important"},image_org:{"border-radius":"4px",display:"block"},ol:{"margin-left":"0","padding-left":"1em"},ul:{"margin-left":"0","padding-left":"1em","list-style":"circle"},footnotes:{margin:"0.5em 8px","font-size":"80%"},figure:{margin:"1.5em 8px"}},inline:{listitem:{"text-indent":"-1em",display:"block",margin:"0.2em 8px"},codespan:{"font-size":"90%","white-space":"pre",color:"#d14",background:"rgba(27,31,35,.05)",padding:"3px 5px","border-radius":"4px"},link:{color:"#576b95"},wx_link:{color:"#576b95","text-decoration":"none"},strong:{color:"rgba(15, 76, 129, 0.9)","font-weight":"bold"},table:{"border-collapse":"collapse","text-align":"center",margin:"1em 8px"},thead:{background:"rgba(0, 0, 0, 0.05)","font-weight":"bold"},td:{border:"1px solid #dfdfdf",padding:"0.25em 0.5em"},footnote:{"font-size":"12px"},figcaption:{"text-align":"center",color:"#888","font-size":"0.8em"}}}),_=o("325b"),T=o.n(_),E=o("4fc3"),$=o.n(E),I=o("d238"),M=o.n(I);function j(e){return function(t){var o=JSON.parse(JSON.stringify(e));return o.block.h1["border-bottom"]="2px solid ".concat(t),o.block.h2["background"]=t,o.block.h3["border-left"]="3px solid ".concat(t),o.block.h4["color"]=t,o.inline.strong["color"]=t,o}}var R=function(e,t){var o=JSON.parse(JSON.stringify(e));return o.block.h1["border-bottom"]="2px solid ".concat(t),o.block.h2["background"]=t,o.block.h3["border-left"]="3px solid ".concat(t),o.block.h4["color"]=t,o.inline.strong["color"]=t,o};function A(e){return function(t){var o=JSON.parse(JSON.stringify(e));return o.block.h1["font-size"]="".concat(1.14*t,"px"),o.block.h2["font-size"]="".concat(1.1*t,"px"),o.block.h3["font-size"]="".concat(t,"px"),o.block.h4["font-size"]="".concat(t,"px"),o}}var G=j(O),H=A(O);function z(e,t,o){var n=JSON.parse(JSON.stringify(o));return n.block.h1["border-bottom"]="2px solid ".concat(t),n.block.h2["background"]=t,n.block.h3["border-left"]="3px solid ".concat(t),n.block.h4["color"]=t,n.inline.strong["color"]=t,n.block.h1=Object.assign(n.block.h1,e.h1),n.block.h2=Object.assign(n.block.h2,e.h2),n.block.h3=Object.assign(n.block.h3,e.h3),n.block.h4=Object.assign(n.block.h4,e.h4),n.block.p=Object.assign(n.block.p,e.p),n.block.blockquote=Object.assign(n.block.blockquote,e.blockquote),n.block.blockquote_p=Object.assign(n.block.blockquote_p,e.blockquote_p),n.block.image=Object.assign(n.block.image,e.image),n.inline.strong=Object.assign(n.inline.strong,e.strong),n.inline.codespan=Object.assign(n.inline.codespan,e.codespan),n.inline.link=Object.assign(n.inline.link,e.link),n.inline.wx_link=Object.assign(n.inline.wx_link,e.wx_link),n.block.ul=Object.assign(n.block.ul,e.ul),n.block.ol=Object.assign(n.block.ol,e.ol),n.inline.listitem=Object.assign(n.inline.listitem,e.li),n}function N(e){var t,o;while(-1!==(t=e.indexOf("/*"))&&-1!==(o=e.indexOf("*/")))e=e.substring(0,t)+e.substring(o+2);var n={},r=function(){var t=e.indexOf("{"),o=e.indexOf("}");function r(e){var t={};return e.forEach((function(e){var o=e.indexOf(":"),n=e.substring(0,o).trim(),r=e.substring(o+1).trim();t[n]=r})),t}var i=e.substring(t+1,o).split(";").map((function(e){return e.trim()})).filter((function(e){return e.length>0}));i=r(i);var a=e.substring(0,t).split(",").map((function(e){return e.trim()}));a.forEach((function(e){n[e]||(n[e]={}),Object.keys(i).forEach((function(t){n[e][t]=i[t]}))})),e=e.slice(o+1).trim()};while(e.length>0&&-1!==e.indexOf("{")&&-1!==e.indexOf("}"))r();return n}function q(e,t){var o=e.getValue(0);o?localStorage.setItem(t,o):localStorage.removeItem(t)}function D(e){var t=T.a.format(e,{parser:"markdown",plugins:[$.a]});return t}function V(e){var t=T.a.format(e,{parser:"css",plugins:[M.a]});return t}function F(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"pre",t=document.getElementsByClassName("code__pre");t.length>0&&t.forEach((function(t){t.style.whiteSpace=e}))}function K(e){var t=document.createElement("a");t.download="content.md",t.style.display="none";var o=new Blob([e]);t.href=URL.createObjectURL(o),document.body.appendChild(t),t.click(),document.body.removeChild(t)}function L(){var e=document.querySelector("#output");r(e);var t=e.innerHTML,o=document.createElement("a");o.download="content.html",o.style.display="none";var n=new Blob([''.concat(t,"
")]);function r(e){switch(!0){case t(e):case o(e):case n(e):case i(e):e.setAttribute("style",U(e));default:}function t(e){return"SECTION"===e.tagName&&Array.from(e.classList).includes("code-snippet__github")}function o(e){return"PRE"===e.tagName&&Array.from(e.classList).includes("code__pre")}function n(e){return"CODE"===e.tagName&&Array.from(e.classList).includes("prettyprint")}function i(e){return"SPAN"===e.tagName&&(n(e.parentElement)||n(e.parentElement.parentElement))}e.children.length&&Array.from(e.children).forEach((function(e){return r(e)}))}o.href=URL.createObjectURL(n),document.body.appendChild(o),o.click(),document.body.removeChild(o)}function B(e){for(var t=e.data,o=e.rows,n=e.cols,r="",i=[],a=0;a1?a-1:a;1===a?i.push("---\t"):i.push(t["k_".concat(s,"_").concat(c)]||"")}r+=i.join("\t|\t"),r+="\t|\n"}return r}var P=function(e){return new Promise((function(t,o){var n=new FileReader;n.readAsDataURL(e),n.onload=function(){return t(n.result.split(",").pop())},n.onerror=function(e){return o(e)}}))};function Q(e){var t=/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(e.name);if(!t)return{ok:!1,msg:"请上传 JPG/PNG/GIF 格式的图片"};var o=5,n=e.size/1024/1024<=o;return n?{ok:!0}:{ok:!1,msg:"由于公众号限制,图片大小不能超过 ".concat(o,"M")}}function U(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["width","height"],o=getComputedStyle(e,null);return Object.entries(o).filter((function(e){var n=Object(w["a"])(e,1),r=n[0];return o.getPropertyValue(r)&&!t.includes(r)})).map((function(e){var t=Object(w["a"])(e,2),o=t[0],n=t[1];return"".concat(o,":").concat(n,";")})).join("")}r["default"].use(d["a"]);var J={wxRenderer:null,output:"",html:"",editor:null,cssEditor:null,currentFont:"",currentSize:"",currentColor:"",citeStatus:0,nightMode:!1,codeTheme:"github",rightClickMenuVisible:!1},W={setEditorValue:function(e,t){e.editor.setValue(t)},setCssEditorValue:function(e,t){e.cssEditor.setValue(t)},setWxRendererOptions:function(e,t){e.wxRenderer.setOptions(t)},setCiteStatus:function(e,t){e.citeStatus=t,localStorage.setItem("citeStatus",t)},setCurrentFont:function(e,t){e.currentFont=t,localStorage.setItem("fonts",t)},setCurrentSize:function(e,t){e.currentSize=t,localStorage.setItem("size",t)},setCurrentColor:function(e,t){e.currentColor=t,localStorage.setItem("color",t)},setCurrentCodeTheme:function(e,t){e.codeTheme=t,localStorage.setItem("codeTheme",t)},setRightClickMenuVisible:function(e,t){e.rightClickMenuVisible=t},themeChanged:function(e){e.nightMode=!e.nightMode,localStorage.setItem("nightMode",e.nightMode)},initEditorState:function(e){e.currentFont=localStorage.getItem("fonts")||f.builtinFonts[0].value,e.currentColor=localStorage.getItem("color")||f.colorOption[0].value,e.currentSize=localStorage.getItem("size")||f.sizeOption[2].value,e.codeTheme=localStorage.getItem("codeTheme")||f.codeThemeOption[0].value,e.citeStatus="true"===localStorage.getItem("citeStatus"),e.nightMode="true"===localStorage.getItem("nightMode"),e.wxRenderer=new b({theme:G(e.currentColor),fonts:e.currentFont,size:e.currentSize,status:e.citeStatus})},initEditorEntity:function(e){var t=document.getElementById("editor");t.value||(t.value=localStorage.getItem("__editor_content")||D(y)),e.editor=C.a.fromTextArea(t,{mode:"text/x-markdown",theme:"xq-light",lineNumbers:!1,lineWrapping:!0,styleActiveLine:!0,autoCloseBrackets:!0,extraKeys:{"Ctrl-F":function(e){var t=D(e.getValue(0));localStorage.setItem("__editor_content",t),e.setValue(t)},"Ctrl-S":function(e){}}})},initCssEditorEntity:function(e){var t=document.getElementById("cssEditor");t.value||(t.value=localStorage.getItem("__css_content")||x),e.cssEditor=C.a.fromTextArea(t,{mode:"css",theme:"style-mirror",lineNumbers:!1,lineWrapping:!0,matchBrackets:!0,autofocus:!0,extraKeys:{"Ctrl-F":function(e){var t=V(e.getValue(0));localStorage.setItem("__css_content",t),e.setValue(t)},"Ctrl-S":function(e){}}})},editorRefresh:function(e){var t=g()(e.editor.getValue(0),{renderer:e.wxRenderer.getRenderer(e.citeStatus)});t=t.replace(/(style=".*?)"/,'$1;margin-top: 0"'),e.citeStatus&&(t+=e.wxRenderer.buildFootnotes(),t+=e.wxRenderer.buildAddition()),e.output=t},clearEditorToDefault:function(e){var t=D(y);e.editor.setValue(t),e.cssEditor.setValue(x)}},Y=new d["a"].Store({state:J,mutations:W,actions:{}}),Z=o("5c96"),X=o.n(Z);o("0fae");r["default"].component(Z["Message"].name,Z["Message"]),r["default"].prototype.$loading=Z["Loading"].service,r["default"].prototype.$message=Z["Message"];o("a7be"),o("8d7e"),o("7b00"),o("959b"),o("10b2"),o("8c33"),o("31c5"),o("9b74"),o("111b");var ee=o("8c4f"),te=function(){var e=this,t=e.$createElement,o=e._self._c||t;return e.loading?o("transition",{attrs:{name:"fade"}},[o("loading")],1):o("codemirror-editor")},oe=[],ne=o("3a5e"),re=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{staticClass:"container",class:{container_night:e.nightMode}},[o("el-container",[o("el-header",{staticClass:"editor__header"},[o("editor-header",{ref:"header",on:{refresh:e.onEditorRefresh,cssChanged:e.cssChanged,download:e.downloadEditorContent,export:e.exportEditorContent,showCssEditor:function(t){e.showCssEditor=!e.showCssEditor},"show-about-dialog":function(t){e.aboutDialogVisible=!0},"show-dialog-form":function(t){e.dialogFormVisible=!0},"show-dialog-upload-img":function(t){e.dialogUploadImgVisible=!0},startCopy:function(t){e.isCoping=!0,e.backLight=!0},endCopy:e.endCopy}})],1),o("el-main",{staticClass:"main-body"},[o("el-row",{staticClass:"main-section"},[o("el-col",{staticClass:"codeMirror-wrapper",attrs:{span:12},nativeOn:{contextmenu:function(t){return t.preventDefault(),e.openMenu(t)}}},[o("textarea",{directives:[{name:"model",rawName:"v-model",value:e.source,expression:"source"}],attrs:{id:"editor",type:"textarea",placeholder:"Your markdown text here."},domProps:{value:e.source},on:{input:function(t){t.target.composing||(e.source=t.target.value)}}})]),o("el-col",{ref:"preview",staticClass:"preview-wrapper",class:{"preview-wrapper_night":e.nightMode&&e.isCoping},attrs:{span:12,id:"preview"}},[o("section",{class:{output_night:e.nightMode&&!e.backLight},attrs:{id:"output-wrapper"}},[o("div",{staticClass:"preview"},[o("section",{attrs:{id:"output"},domProps:{innerHTML:e._s(e.output)}}),e.nightMode&&e.isCoping?o("div",{staticClass:"loading-mask"},[o("div",{staticClass:"loading__img"}),o("span",[e._v("正在生成")])]):e._e()])])]),o("transition",{attrs:{name:"custom-classes-transition","enter-active-class":"bounceInRight"}},[o("el-col",{directives:[{name:"show",rawName:"v-show",value:e.showCssEditor,expression:"showCssEditor"}],staticClass:"cssEditor-wrapper",attrs:{id:"cssBox",span:12}},[o("textarea",{attrs:{id:"cssEditor",type:"textarea",placeholder:"Your custom css here."}})])],1)],1)],1)],1),o("upload-img-dialog",{on:{close:function(t){e.dialogUploadImgVisible=!1},beforeUpload:e.beforeUpload,uploadImage:e.uploadImage,uploaded:e.uploaded},model:{value:e.dialogUploadImgVisible,callback:function(t){e.dialogUploadImgVisible=t},expression:"dialogUploadImgVisible"}}),o("about-dialog",{model:{value:e.aboutDialogVisible,callback:function(t){e.aboutDialogVisible=t},expression:"aboutDialogVisible"}}),o("insert-form-dialog",{model:{value:e.dialogFormVisible,callback:function(t){e.dialogFormVisible=t},expression:"dialogFormVisible"}}),o("right-click-menu",{attrs:{left:e.mouseLeft,top:e.mouseTop},on:{menuTick:e.onMenuEvent,closeMenu:e.closeRightClickMenu},model:{value:e.rightClickMenuVisible,callback:function(t){e.rightClickMenuVisible=t},expression:"rightClickMenuVisible"}})],1)},ie=[],ae=function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("el-container",{staticClass:"top is-dark"},[o("div",{staticClass:"left-side"},[o("el-tooltip",{attrs:{effect:e.effect,content:"上传图片",placement:"bottom-start"}},[o("i",{staticClass:"el-icon-upload",attrs:{size:"medium"},on:{click:function(t){return e.$emit("show-dialog-upload-img")}}})]),o("el-tooltip",{staticClass:"header__item",attrs:{effect:e.effect,content:"导出 Markdown 文档",placement:"bottom-start"}},[o("i",{staticClass:"el-icon-download",attrs:{size:"medium"},on:{click:function(t){return e.$emit("download")}}})]),o("el-tooltip",{staticClass:"header__item",attrs:{effect:e.effect,content:"导出 HTML 页面",placement:"bottom-start"}},[o("i",{staticClass:"el-icon-document",attrs:{size:"medium"},on:{click:function(t){return e.$emit("export")}}})]),o("el-tooltip",{staticClass:"header__item",attrs:{effect:e.effect,content:"重置页面",placement:"bottom-start"}},[o("i",{staticClass:"el-icon-refresh",attrs:{size:"medium"},on:{click:function(t){e.showResetConfirm=!0}}})]),o("el-tooltip",{staticClass:"header__item header__item_last",attrs:{effect:e.effect,content:"插入表格",placement:"bottom-start"}},[o("i",{staticClass:"el-icon-s-grid",attrs:{size:"medium"},on:{click:function(t){return e.$emit("show-dialog-form")}}})]),o("el-select",{attrs:{size:"mini",placeholder:"选择字体",clearable:""},on:{change:e.fontChanged},model:{value:e.selectFont,callback:function(t){e.selectFont=t},expression:"selectFont"}},e._l(e.config.builtinFonts,(function(t){return o("el-option",{key:t.value,style:{fontFamily:t.value},attrs:{label:t.label,value:t.value}},[o("span",{staticClass:"select-item-left"},[e._v(e._s(t.label))]),o("span",{staticClass:"select-item-right"},[e._v("Abc")])])})),1),o("el-select",{attrs:{size:"mini",placeholder:"选择段落字号",clearable:""},on:{change:e.sizeChanged},model:{value:e.selectSize,callback:function(t){e.selectSize=t},expression:"selectSize"}},e._l(e.config.sizeOption,(function(t){return o("el-option",{key:t.value,attrs:{label:t.label,value:t.value}},[o("span",{staticClass:"select-item-left"},[e._v(e._s(t.label))]),o("span",{staticClass:"select-item-right"},[e._v(e._s(t.desc))])])})),1),o("el-select",{attrs:{size:"mini",placeholder:"选择颜色",clearable:""},on:{change:e.colorChanged},model:{value:e.selectColor,callback:function(t){e.selectColor=t},expression:"selectColor"}},e._l(e.config.colorOption,(function(t){return o("el-option",{key:t.value,attrs:{label:t.label,value:t.value}},[o("span",{staticClass:"select-item-left"},[e._v(e._s(t.label))]),o("span",{staticClass:"select-item-right"},[e._v(e._s(t.desc))])])})),1),o("el-tooltip",{attrs:{content:"自定义颜色",effect:e.effect,placement:"top"}},[o("el-color-picker",{attrs:{size:"mini","show-alpha":""},on:{change:e.colorChanged},model:{value:e.selectColor,callback:function(t){e.selectColor=t},expression:"selectColor"}})],1),o("el-tooltip",{attrs:{content:"微信外链自动转为文末引用",effect:e.effect,placement:"top"}},[o("el-switch",{staticClass:"header__switch",attrs:{"active-color":"#67c23a","inactive-color":"#dcdfe6"},on:{change:e.statusChanged},model:{value:e.citeStatus,callback:function(t){e.citeStatus=t},expression:"citeStatus"}})],1)],1),o("div",{staticClass:"right-side"},[o("el-tooltip",{staticClass:"item",attrs:{effect:e.effect,content:"自定义CSS样式",placement:"left"}},[o("el-button",{attrs:{type:e.btnType,plain:"",size:"medium",icon:"el-icon-setting"},on:{click:e.customStyle}})],1),o("el-button",{attrs:{type:e.btnType,plain:"",size:"medium",placement:"bottom-start"},on:{click:e.copy}},[e._v("复制")]),o("el-button",{staticClass:"about",attrs:{type:e.btnType,plain:"",size:"medium"},on:{click:function(t){return e.$emit("show-about-dialog")}}},[e._v("关于")]),o("el-tooltip",{attrs:{content:e.btnContent,effect:e.effect,placement:"bottom-start"}},[e.nightMode?o("div",{staticClass:"mode__switch mode__switch_black",on:{click:e.themeChanged}}):o("div",{staticClass:"mode__switch",on:{click:e.themeChanged}})])],1),o("resetDialog",{attrs:{showResetConfirm:e.showResetConfirm},on:{confirm:e.confirmReset,close:e.cancelReset}})],1)},ce=[],se=o("1da1"),le=(o("96cf"),o("466b")),ue=o.n(le);function de(){for(var e=document.getElementById("output"),t=e.getElementsByTagName("img"),o=0;o安全设置->私人令牌」中生成")])],1),o("el-form-item",[o("el-button",{attrs:{type:"primary"},on:{click:e.saveGiteeConfiguration}},[e._v("保存配置")])],1)],1)],1),o("el-tab-pane",{staticClass:"github-panel",attrs:{label:"GitHub 图床",name:"github"}},[o("el-form",{staticClass:"setting-form",attrs:{model:e.formGitHub,"label-position":"right","label-width":"140px"}},[o("el-form-item",{attrs:{label:"GitHub 仓库",required:!0}},[o("el-input",{attrs:{placeholder:"如:github.com/yanglbme/resource"},model:{value:e.formGitHub.repo,callback:function(t){e.$set(e.formGitHub,"repo","string"===typeof t?t.trim():t)},expression:"formGitHub.repo"}})],1),o("el-form-item",{attrs:{label:"分支"}},[o("el-input",{attrs:{placeholder:"如:release,可不填,默认 master"},model:{value:e.formGitHub.branch,callback:function(t){e.$set(e.formGitHub,"branch","string"===typeof t?t.trim():t)},expression:"formGitHub.branch"}})],1),o("el-form-item",{attrs:{label:"Token",required:!0}},[o("el-input",{attrs:{"show-password":"",placeholder:"如:cc1d0c1426d0fd0902bd2d7184b14da61b8abc46"},model:{value:e.formGitHub.accessToken,callback:function(t){e.$set(e.formGitHub,"accessToken","string"===typeof t?t.trim():t)},expression:"formGitHub.accessToken"}}),o("el-link",{attrs:{type:"primary",href:"https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token",target:"_blank"}},[e._v("如何获取 GitHub Token?")])],1),o("el-form-item",[o("el-button",{attrs:{type:"primary"},on:{click:e.saveGitHubConfiguration}},[e._v("保存配置")])],1)],1)],1),o("el-tab-pane",{staticClass:"github-panel",attrs:{label:"阿里云 OSS",name:"aliOSS"}},[o("el-form",{staticClass:"setting-form",attrs:{model:e.formAliOSS,"label-position":"right","label-width":"140px"}},[o("el-form-item",{attrs:{label:"AccessKey ID",required:!0}},[o("el-input",{attrs:{placeholder:"如:LTAI4GdoocsmdoxUf13ylbaNHk"},model:{value:e.formAliOSS.accessKeyId,callback:function(t){e.$set(e.formAliOSS,"accessKeyId","string"===typeof t?t.trim():t)},expression:"formAliOSS.accessKeyId"}})],1),o("el-form-item",{attrs:{label:"AccessKey Secret",required:!0}},[o("el-input",{attrs:{"show-password":"",placeholder:"如:cc1d0c142doocs0902bd2d7md4b14da6ylbabc46"},model:{value:e.formAliOSS.accessKeySecret,callback:function(t){e.$set(e.formAliOSS,"accessKeySecret","string"===typeof t?t.trim():t)},expression:"formAliOSS.accessKeySecret"}})],1),o("el-form-item",{attrs:{label:"Bucket",required:!0}},[o("el-input",{attrs:{placeholder:"如:doocs"},model:{value:e.formAliOSS.bucket,callback:function(t){e.$set(e.formAliOSS,"bucket","string"===typeof t?t.trim():t)},expression:"formAliOSS.bucket"}})],1),o("el-form-item",{attrs:{label:"Bucket 所在区域",required:!0}},[o("el-input",{attrs:{placeholder:"如:oss-cn-shenzhen"},model:{value:e.formAliOSS.region,callback:function(t){e.$set(e.formAliOSS,"region","string"===typeof t?t.trim():t)},expression:"formAliOSS.region"}})],1),o("el-form-item",{attrs:{label:"自定义 CDN 域名",required:!1}},[o("el-input",{attrs:{placeholder:"如:https://imagecdn.alidaodao.com,可不填"},model:{value:e.formAliOSS.cdnHost,callback:function(t){e.$set(e.formAliOSS,"cdnHost","string"===typeof t?t.trim():t)},expression:"formAliOSS.cdnHost"}})],1),o("el-form-item",{attrs:{label:"存储路径"}},[o("el-input",{attrs:{placeholder:"如:img,可不填,默认为根目录"},model:{value:e.formAliOSS.path,callback:function(t){e.$set(e.formAliOSS,"path","string"===typeof t?t.trim():t)},expression:"formAliOSS.path"}}),o("el-link",{attrs:{type:"primary",href:"https://help.aliyun.com/document_detail/31883.html",target:"_blank"}},[e._v("如何使用阿里云 OSS?")])],1),o("el-form-item",[o("el-button",{attrs:{type:"primary"},on:{click:e.saveAliOSSConfiguration}},[e._v("保存配置")])],1)],1)],1),o("el-tab-pane",{staticClass:"github-panel",attrs:{label:"腾讯云 COS",name:"txCOS"}},[o("el-form",{staticClass:"setting-form",attrs:{model:e.formTxCOS,"label-position":"right","label-width":"140px"}},[o("el-form-item",{attrs:{label:"SecretId",required:!0}},[o("el-input",{attrs:{placeholder:"如:AKIDnQp1w3DOOCSs8F5MDp9tdoocsmdUPonW3"},model:{value:e.formTxCOS.secretId,callback:function(t){e.$set(e.formTxCOS,"secretId","string"===typeof t?t.trim():t)},expression:"formTxCOS.secretId"}})],1),o("el-form-item",{attrs:{label:"SecretKey",required:!0}},[o("el-input",{attrs:{"show-password":"",placeholder:"如:ukLmdtEJ9271f3DOocsMDsCXdS3YlbW0"},model:{value:e.formTxCOS.secretKey,callback:function(t){e.$set(e.formTxCOS,"secretKey","string"===typeof t?t.trim():t)},expression:"formTxCOS.secretKey"}})],1),o("el-form-item",{attrs:{label:"Bucket",required:!0}},[o("el-input",{attrs:{placeholder:"如:doocs-3212520134"},model:{value:e.formTxCOS.bucket,callback:function(t){e.$set(e.formTxCOS,"bucket","string"===typeof t?t.trim():t)},expression:"formTxCOS.bucket"}})],1),o("el-form-item",{attrs:{label:"Bucket 所在区域",required:!0}},[o("el-input",{attrs:{placeholder:"如:ap-guangzhou"},model:{value:e.formTxCOS.region,callback:function(t){e.$set(e.formTxCOS,"region","string"===typeof t?t.trim():t)},expression:"formTxCOS.region"}})],1),o("el-form-item",{attrs:{label:"自定义 CDN 域名",required:!1}},[o("el-input",{attrs:{placeholder:"如:https://imagecdn.alidaodao.com,可不填"},model:{value:e.formTxCOS.cdnHost,callback:function(t){e.$set(e.formTxCOS,"cdnHost","string"===typeof t?t.trim():t)},expression:"formTxCOS.cdnHost"}})],1),o("el-form-item",{attrs:{label:"存储路径"}},[o("el-input",{attrs:{placeholder:"如:img,可不填,默认根目录"},model:{value:e.formTxCOS.path,callback:function(t){e.$set(e.formTxCOS,"path","string"===typeof t?t.trim():t)},expression:"formTxCOS.path"}}),o("el-link",{attrs:{type:"primary",href:"https://cloud.tencent.com/document/product/436/38484",target:"_blank"}},[e._v("如何使用腾讯云 COS?")])],1),o("el-form-item",[o("el-button",{attrs:{type:"primary"},on:{click:e.saveTxCOSConfiguration}},[e._v("保存配置")])],1)],1)],1),o("el-tab-pane",{staticClass:"github-panel",attrs:{label:"七牛云 Kodo",name:"qiniu"}},[o("el-form",{staticClass:"setting-form",attrs:{model:e.formQiniu,"label-position":"right","label-width":"140px"}},[o("el-form-item",{attrs:{label:"AccessKey",required:!0}},[o("el-input",{attrs:{placeholder:"如:6DD3VaLJ_SQgOdoocsyTV_YWaDmdnL2n8EGx7kG"},model:{value:e.formQiniu.accessKey,callback:function(t){e.$set(e.formQiniu,"accessKey","string"===typeof t?t.trim():t)},expression:"formQiniu.accessKey"}})],1),o("el-form-item",{attrs:{label:"SecretKey",required:!0}},[o("el-input",{attrs:{"show-password":"",placeholder:"如:qgZa5qrvDOOcsmdKStD1oCjZ9nB7MDvJUs_34SIm"},model:{value:e.formQiniu.secretKey,callback:function(t){e.$set(e.formQiniu,"secretKey","string"===typeof t?t.trim():t)},expression:"formQiniu.secretKey"}})],1),o("el-form-item",{attrs:{label:"Bucket",required:!0}},[o("el-input",{attrs:{placeholder:"如:md"},model:{value:e.formQiniu.bucket,callback:function(t){e.$set(e.formQiniu,"bucket","string"===typeof t?t.trim():t)},expression:"formQiniu.bucket"}})],1),o("el-form-item",{attrs:{label:"Bucket 对应域名",required:!0}},[o("el-input",{attrs:{placeholder:"如:https://images.123ylb.cn"},model:{value:e.formQiniu.domain,callback:function(t){e.$set(e.formQiniu,"domain","string"===typeof t?t.trim():t)},expression:"formQiniu.domain"}})],1),o("el-form-item",{attrs:{label:"存储区域",required:!0}},[o("el-input",{attrs:{placeholder:"如:z2"},model:{value:e.formQiniu.region,callback:function(t){e.$set(e.formQiniu,"region","string"===typeof t?t.trim():t)},expression:"formQiniu.region"}})],1),o("el-form-item",{attrs:{label:"存储路径",required:!1}},[o("el-input",{attrs:{placeholder:"如:img,可不填,默认为根目录"},model:{value:e.formQiniu.path,callback:function(t){e.$set(e.formQiniu,"path","string"===typeof t?t.trim():t)},expression:"formQiniu.path"}}),o("el-link",{attrs:{type:"primary",href:"https://developer.qiniu.com/kodo",target:"_blank"}},[e._v("如何使用七牛云 Kodo?")])],1),o("el-form-item",[o("el-button",{attrs:{type:"primary"},on:{click:e.saveQiniuConfiguration}},[e._v("保存配置")])],1)],1)],1)],1)],1)},Fe=[],Ke={props:{value:{type:Boolean,default:!1}},data:function(){return{formGitHub:{repo:"",branch:"",accessToken:""},formGitee:{repo:"",branch:"",accessToken:""},formAliOSS:{accessKeyId:"",accessKeySecret:"",bucket:"",region:"",path:"",cdnHost:""},formTxCOS:{secretId:"",secretKey:"",bucket:"",region:"",path:"",cdnHost:""},formQiniu:{accessKey:"",secretKey:"",bucket:"",domain:"",region:""},options:[{value:"default",label:"默认"},{value:"gitee",label:"Gitee"},{value:"github",label:"GitHub"},{value:"aliOSS",label:"阿里云"},{value:"txCOS",label:"腾讯云"},{value:"qiniu",label:"七牛云"}],imgHost:"default"}},created:function(){localStorage.getItem("githubConfig")&&(this.formGitHub=JSON.parse(localStorage.getItem("githubConfig"))),localStorage.getItem("giteeConfig")&&(this.formGitee=JSON.parse(localStorage.getItem("giteeConfig"))),localStorage.getItem("aliOSSConfig")&&(this.formAliOSS=JSON.parse(localStorage.getItem("aliOSSConfig"))),localStorage.getItem("txCOSConfig")&&(this.formTxCOS=JSON.parse(localStorage.getItem("txCOSConfig"))),localStorage.getItem("imgHost")&&(this.imgHost=localStorage.getItem("imgHost"))},methods:{changeImgHost:function(){localStorage.setItem("imgHost",this.imgHost),this.$message.success("已成功切换图床")},saveGitHubConfiguration:function(){if(this.formGitHub.repo&&this.formGitHub.accessToken)localStorage.setItem("githubConfig",JSON.stringify(this.formGitHub)),this.$message.success("保存成功");else{var e=this.formGitHub.repo?"token":"GitHub 仓库";this.$message.error("参数「".concat(e,"」不能为空"))}},saveGiteeConfiguration:function(){if(this.formGitee.repo&&this.formGitee.accessToken)localStorage.setItem("giteeConfig",JSON.stringify(this.formGitee)),this.$message.success("保存成功");else{var e=this.formGitee.repo?"私人令牌":"Gitee 仓库";this.$message.error("参数「".concat(e,"」不能为空"))}},saveAliOSSConfiguration:function(){this.formAliOSS.accessKeyId&&this.formAliOSS.accessKeySecret&&this.formAliOSS.bucket&&this.formAliOSS.region?(localStorage.setItem("aliOSSConfig",JSON.stringify(this.formAliOSS)),this.$message.success("保存成功")):this.$message.error("阿里云 OSS 参数配置不全")},saveTxCOSConfiguration:function(){this.formTxCOS.secretId&&this.formTxCOS.secretKey&&this.formTxCOS.bucket&&this.formTxCOS.region?(localStorage.setItem("txCOSConfig",JSON.stringify(this.formTxCOS)),this.$message.success("保存成功")):this.$message.error("腾讯云 COS 参数配置不全")},saveQiniuConfiguration:function(){this.formQiniu.accessKey&&this.formQiniu.secretKey&&this.formQiniu.bucket&&this.formQiniu.domain&&this.formQiniu.region?(localStorage.setItem("qiniuConfig",JSON.stringify(this.formQiniu)),this.$message.success("保存成功")):this.$message.error("七牛云 Kodo 参数配置不全")},beforeImageUpload:function(e){var t=Q(e);if(!t.ok)return this.$message.error(t.msg),!1;var o=localStorage.getItem("imgHost");o=o||"default",localStorage.setItem("imgHost",o);var n=localStorage.getItem("".concat(o,"Config")),r="default"==o||n;return!!r||(this.$message.error("请先配置 ".concat(o," 图床参数")),!1)},uploadImage:function(e){this.$emit("uploadImage",e.file)}}},Le=Ke,Be=(o("e925"),Object(c["a"])(Le,Ve,Fe,!1,null,"fc5ed8b0",null)),Pe=Be.exports,Qe=(o("4d90"),o("25f0"),o("b65f"),o("bc3a")),Ue=o.n(Qe),Je=Ue.a.create({baseURL:"",timeout:1e4});Je.interceptors.request.use((function(e){return/^(post)|(put)|(delete)$/i.test(e.method)&&e.data&&e.data.upload&&(e.headers["Content-Type"]="multipart/form-data"),e}),(function(e){Promise.reject(e)})),Je.interceptors.response.use((function(e){return e.data?e.data:Promise.reject(e)}),(function(e){return Promise.reject(e)}));var We=Je,Ye={username:"filess",repoList:Array.from([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],(function(e){return"img".concat(e)})),branch:"main",accessTokenList:["7715d7ca67b5d3837cfdoocsmde8c38421815aa423510af","c411415bf95dbe39625doocsmd5047ba9b7a2a6c9642abe","2821cd8819fa345c053doocsmdca86ac653f8bc20db1f1b","445f0dae46ef1f2a4d6doocsmdc797301e94797b4750a4c","cc1d0c1426d0fd0902bdoocsmdd2d7184b14da61b86ec46","b67e9d15cb6f910492fdoocsmdac6b44d379c953bb19eff","618c4dc2244ccbbc088doocsmd125d17fd31b7d06a50cf3","a4b581732e1c1507458doocsmdc5b223b27dae5e2e16a55","77904db41aee57ad79bdoocsmd760f848201dac9c96fd5e","02f251cb14ac62ab100doocsmdddbfc8527d773f1f04ce1","eb321079a95ba7028d9doocsmde2e84c502dac70de7cf08","22f74fcfb071a961fa2doocsmde28dabc746f0503a15e5d","85124c2bfe7abba0938doocsmd0af7f67918b99d085a5fd","0a561b4d4bbecb2de7edoocsmdd9ba3833d11dbc5e430f5","e8a01491188d8d5a097doocsmd03ede0aad1fe9e3af24e9","36e1f420d7e5bdebd67doocsmd65463562f5f25b20b8377"]},Ze={username:"filesss",repoList:Array.from([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],(function(e){return"img".concat(e)})),branch:"main",accessTokenList:["ed5fc9866bd6c2fdoocsmddd433f806fd2f399c","5448ffebbbf1151doocsmdc4e337cf814fc8a62","25b05efd2557ca2doocsmd75b5c0835e3395911","11628c7a5aef015doocsmd2eeff9fb9566f0458","cb2f5145ed938dedoocsmdbd063b4ed244eecf8","d8c0b57500672c1doocsmd55f48b866b5ebcd98","78c56eadb88e453doocsmd43ddd95753351771a","03e1a688003948fdoocsmda16fcf41e6f03f1f0","c49121cf4d191fbdoocsmdd6a7877ed537e474a","adfeb2fadcdc4aadoocsmdfe1ee869ac9c968ff","116c94549ca4a0ddoocsmd192653af5c0694616","ecf30ed7f2eb184doocsmd51ea4ec8300371d9e","5837cf2bd5afd93doocsmd73904bed31934949e","b5b7e1c7d57e01fdoocsmd5266f552574297d78","684d55564ffbd0bdoocsmd7d747e5cc23aed6d6","3fc04a9d272ab71doocsmd010c56cb57d88d2ba"]},Xe=o("3452"),et=o.n(Xe),tt=o("9b15"),ot=o.n(tt),nt=o("3438"),rt=o.n(nt),it=o("653c"),at=o.n(it),ct=o("ec26"),st=o("f744");function lt(e){var t,o,n,r;for(t="",n=e.length,o=0;o=1&&r<=127?t+=e.charAt(o):r>2047?(t+=String.fromCharCode(224|r>>12&15),t+=String.fromCharCode(128|r>>6&63),t+=String.fromCharCode(128|r>>0&63)):(t+=String.fromCharCode(192|r>>6&31),t+=String.fromCharCode(128|r>>0&63));return t}var ut="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);function dt(e){var t,o,n,r,i,a;n=e.length,o=0,t="";while(o>2),t+=ut.charAt((3&r)<<4),t+="==";break}if(i=e.charCodeAt(o++),o==n){t+=ut.charAt(r>>2),t+=ut.charAt((3&r)<<4|(240&i)>>4),t+=ut.charAt((15&i)<<2),t+="=";break}a=e.charCodeAt(o++),t+=ut.charAt(r>>2),t+=ut.charAt((3&r)<<4|(240&i)>>4),t+=ut.charAt((15&i)<<2|(192&a)>>6),t+=ut.charAt(63&a)}return t}function ft(e){return e=e.replace(/\+/g,"-"),e=e.replace(/\//g,"_"),e}function mt(e,t){if(e){var o="github"===t?Ye:Ze,n=o.username,r=o.repoList,i=o.branch,a=o.accessTokenList,c=Math.floor(Math.random()*a.length),s=a[c].replace("doocsmd",""),l=Math.floor(Math.random()*r.length),u=r[l];return{username:n,repo:u,branch:i,accessToken:s}}var d=JSON.parse(localStorage.getItem("".concat(t,"Config"))),f=d.repo.replace("https://".concat(t,".com/"),"").replace("http://".concat(t,".com/"),"").replace("".concat(t,".com/"),"").split("/");return{username:f[0],repo:f[1],branch:d.branch||"master",accessToken:d.accessToken}}function pt(){var e=new Date,t=e.getFullYear(),o=(e.getMonth()+1).toString().padStart(2,"0"),n=e.getDate().toString().padStart(2,"0");return"".concat(t,"/").concat(o,"/").concat(n)}function gt(e){var t=(new Date).getTime(),o=e.split(".")[1];return"".concat(t,"-").concat(Object(ct["a"])(),".").concat(o)}function ht(e,t){return bt.apply(this,arguments)}function bt(){return bt=Object(se["a"])(regeneratorRuntime.mark((function e(t,o){var n,r,i,a,c,s,l,u,d,f,m,p;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return n="default"===localStorage.getItem("imgHost"),r=mt(n,"github"),i=r.username,a=r.repo,c=r.branch,s=r.accessToken,l=pt(),u="https://api.github.com/repos/".concat(i,"/").concat(a,"/contents/").concat(l,"/"),d=gt(o),e.next=7,We({url:u+d,method:"put",headers:{Authorization:"token ".concat(s)},data:{content:t,branch:c,message:"Upload by ".concat(window.location.href)}});case 7:return f=e.sent,m="raw.githubusercontent.com/".concat(i,"/").concat(a,"/").concat(c,"/"),p="cdn.jsdelivr.net/gh/".concat(i,"/").concat(a,"@").concat(c,"/"),e.abrupt("return",n?f.data.content.download_url.replace(m,p):f.data.content.download_url);case 11:case"end":return e.stop()}}),e)}))),bt.apply(this,arguments)}function vt(e,t){return Ct.apply(this,arguments)}function Ct(){return Ct=Object(se["a"])(regeneratorRuntime.mark((function e(t,o){var n,r,i,a,c,s,l,u,d,f;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return n="default"===localStorage.getItem("imgHost"),r=mt(n,"gitee"),i=r.username,a=r.repo,c=r.branch,s=r.accessToken,l=pt(),u=gt(o),d="https://gitee.com/api/v5/repos/".concat(i,"/").concat(a,"/contents/").concat(l,"/").concat(u),e.next=7,We({url:d,method:"POST",data:{content:t,branch:c,access_token:s,message:"Upload by ".concat(window.location.href)}});case 7:return f=e.sent,e.abrupt("return",encodeURI(f.data.content.download_url));case 9:case"end":return e.stop()}}),e)}))),Ct.apply(this,arguments)}function kt(e,t,o){var n=JSON.stringify(o),r=dt(lt(n)),i=et.a.HmacSHA1(r,t),a=i.toString(et.a.enc.Base64);return"".concat(e,":").concat(ft(a),":").concat(r)}function yt(e){return St.apply(this,arguments)}function St(){return St=Object(se["a"])(regeneratorRuntime.mark((function e(t){var o,n,r,i,a,c,s,l,u,d,f;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return o=JSON.parse(localStorage.getItem("qiniuConfig")),n=o.accessKey,r=o.secretKey,i=o.bucket,a=o.region,c=o.path,s=o.domain,l=kt(n,r,{scope:i,deadline:Math.trunc((new Date).getTime()/1e3)+3600}),u=c?"".concat(c,"/"):"",d=u+gt(t.name),f=st["a"](t,d,l,{},{region:a}),e.abrupt("return",new Promise((function(e,t){f.subscribe({next:function(e){console.log(e)},error:function(e){t(e.message)},complete:function(t){e("".concat(s,"/").concat(t.key))}})})));case 6:case"end":return e.stop()}}),e)}))),St.apply(this,arguments)}function xt(e,t){return wt.apply(this,arguments)}function wt(){return wt=Object(se["a"])(regeneratorRuntime.mark((function e(t,o){var n,r,i,a,c,s,l,u,d,f,m,p;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return n=gt(o),r=JSON.parse(localStorage.getItem("aliOSSConfig")),i=r.region,a=r.bucket,c=r.accessKeyId,s=r.accessKeySecret,l=r.cdnHost,u=r.path,d=at()(t,"base64"),f="".concat(u,"/").concat(n),m=new ot.a({region:i,bucket:a,accessKeyId:c,accessKeySecret:s}),e.prev=5,e.next=8,m.put(f,d);case 8:if(p=e.sent,""!=l){e.next=11;break}return e.abrupt("return",p.url);case 11:return e.abrupt("return","".concat(l,"/").concat(""==u?n:f));case 14:return e.prev=14,e.t0=e["catch"](5),e.abrupt("return",Promise.reject(e.t0));case 17:case"end":return e.stop()}}),e,null,[[5,14]])}))),wt.apply(this,arguments)}function Ot(e){return _t.apply(this,arguments)}function _t(){return _t=Object(se["a"])(regeneratorRuntime.mark((function e(t){var o,n,r,i,a,c,s,l,u;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return o=gt(t.name),n=JSON.parse(localStorage.getItem("txCOSConfig")),r=n.secretId,i=n.secretKey,a=n.bucket,c=n.region,s=n.path,l=n.cdnHost,u=new rt.a({SecretId:r,SecretKey:i}),e.abrupt("return",new Promise((function(e,n){u.putObject({Bucket:a,Region:c,Key:"".concat(s,"/").concat(o),Body:t},(function(t,r){t?n(t):e(l?""==s?"".concat(l,"/").concat(o):"".concat(l,"/").concat(s,"/").concat(o):"https://".concat(r.Location))}))})));case 4:case"end":return e.stop()}}),e)}))),_t.apply(this,arguments)}function Tt(e,t){var o=localStorage.getItem("imgHost");switch(!o&&localStorage.setItem("imgHost","default"),o){case"aliOSS":return xt(e,t.name);case"txCOS":return Ot(t);case"qiniu":return yt(t);case"gitee":return vt(e,t.name);case"github":return ht(e,t.name);default:return ht(e,t.name)}}var Et={fileUpload:Tt};o("f9d4");var $t={data:function(){return{showCssEditor:!1,aboutDialogVisible:!1,dialogUploadImgVisible:!1,dialogFormVisible:!1,isCoping:!1,isImgLoading:!1,backLight:!1,timeout:null,changeTimer:null,source:"",mouseLeft:0,mouseTop:0}},components:{editorHeader:Se,aboutDialog:Ee,insertFormDialog:Ae,rightClickMenu:De,uploadImgDialog:Pe},computed:Object(n["a"])({},Object(d["c"])({wxRenderer:function(e){return e.wxRenderer},output:function(e){return e.output},editor:function(e){return e.editor},cssEditor:function(e){return e.cssEditor},currentSize:function(e){return e.currentSize},currentColor:function(e){return e.currentColor},nightMode:function(e){return e.nightMode},rightClickMenuVisible:function(e){return e.rightClickMenuVisible}})),created:function(){var e=this;this.initEditorState(),this.$nextTick((function(){e.initEditor(),e.initCssEditor(),e.onEditorRefresh()}))},methods:Object(n["a"])({initEditor:function(){var e=this;this.initEditorEntity(),this.editor.on("change",(function(t,o){e.changeTimer&&clearTimeout(e.changeTimer),e.changeTimer=setTimeout((function(){e.onEditorRefresh(),q(e.editor,"__editor_content")}),300)})),this.editor.on("paste",(function(t,o){if(o.clipboardData&&o.clipboardData.items&&!e.isImgLoading)for(var n=0,r=o.clipboardData.items.length;n=65&&t.keyCode<=90||189===t.keyCode)&&e.showHint(t)})),this.cssEditor.on("update",(function(t){e.cssChanged(),q(e.cssEditor,"__css_content")}))},cssChanged:function(){var e=N(this.cssEditor.getValue(0)),t=H(this.currentSize.replace("px",""));t=z(e,this.currentColor,t),this.setWxRendererOptions({theme:t}),this.onEditorRefresh()},beforeUpload:function(e){var t=Q(e);if(!t.ok)return this.$message.error(t.msg),!1;var o=localStorage.getItem("imgHost");o=o||"default",localStorage.setItem("imgHost",o);var n=localStorage.getItem("".concat(o,"Config")),r="default"==o||n;return!!r||(this.$message.error("请先配置 ".concat(o," 图床参数")),!1)},uploadImage:function(e){var t=this;this.isImgLoading=!0,P(e).then((function(o){Et.fileUpload(o,e).then((function(e){t.uploaded(e)})).catch((function(e){t.$message.error(e.message)}))})).catch((function(e){t.$message.error(e.message)})),this.isImgLoading=!1},uploaded:function(e){if(e){this.dialogUploadImgVisible=!1;var t=this.editor.getCursor(),o=e,n="![](".concat(o,")");this.editor.replaceSelection("\n".concat(n,"\n"),t),this.$message.success("图片上传成功"),this.onEditorRefresh()}else this.$message.error("上传图片未知异常")},leftAndRightScroll:function(){var e=this,t=function(t){var r,i;clearTimeout(e.timeout),"preview"===t?(r=e.$refs.preview.$el,i=document.getElementsByClassName("CodeMirror-scroll")[0],e.editor.off("scroll",o),e.timeout=setTimeout((function(){e.editor.on("scroll",o)}),300)):"editor"===t&&(r=document.getElementsByClassName("CodeMirror-scroll")[0],i=e.$refs.preview.$el,i.removeEventListener("scroll",n,!1),e.timeout=setTimeout((function(){i.addEventListener("scroll",n,!1)}),300));var a=r.scrollTop/(r.scrollHeight-r.offsetHeight),c=a*(i.scrollHeight-i.offsetHeight);i.scrollTo(0,c)},o=function(){t("editor")},n=function(){t("preview")};this.$refs.preview.$el.addEventListener("scroll",n,!1),this.editor.on("scroll",o)},onEditorRefresh:function(){this.editorRefresh(),setTimeout((function(){return PR.prettyPrint()}),0)},endCopy:function(){var e=this;this.backLight=!1,setTimeout((function(){e.isCoping=!1}),800)},downloadEditorContent:function(){K(this.editor.getValue(0))},exportEditorContent:function(){this.$nextTick((function(){L()}))},importMarkdownContent:function(){var e=this,t=document.getElementById("menu"),o=document.createElement("input");o.type="file",o.name="filename",o.accept=".txt,.md",t.appendChild(o),o.onchange=function(){if(o.files){var t=o.files[0];if(/\.(txt|TXT|MD|md)$/.test(t.name)){var n=new FileReader;n.readAsText(t),n.onload=function(t){var o=t.target.result;o=D(o),o&&(localStorage.setItem("__editor_content",o),e.editor.setValue(o),e.$message.success("文档导入成功"))}}else e.$message.error("不支持的文档格式")}},o.click(),t.removeChild(o)},formatContent:function(){var e=D(this.editor.getValue(0));localStorage.setItem("__editor_content",e),this.editor.setValue(e)},openMenu:function(e){var t=105,o=this.$el.getBoundingClientRect().left,n=this.$el.offsetWidth,r=n-t,i=e.clientX-o;this.mouseLeft=Math.min(r,i),this.mouseTop=e.clientY+10,this.$store.commit("setRightClickMenuVisible",!0)},closeRightClickMenu:function(){this.$store.commit("setRightClickMenuVisible",!1)},onMenuEvent:function(e){switch(e){case"pageReset":this.$refs.header.showResetConfirm=!0;break;case"insertPic":this.dialogUploadImgVisible=!0;break;case"download":this.downloadEditorContent();break;case"export":this.exportEditorContent();break;case"insertTable":this.dialogFormVisible=!0;break;case"importMarkdown":this.importMarkdownContent();break;case"formatMarkdown":this.formatContent();break;default:break}}},Object(d["b"])(["initEditorState","initEditorEntity","setWxRendererOptions","editorRefresh","initCssEditorEntity"])),mounted:function(){var e=this;setTimeout((function(){e.leftAndRightScroll(),PR.prettyPrint()}),300)}},It=$t,Mt=(o("9332"),o("792d"),o("a903"),Object(c["a"])(It,re,ie,!1,null,"7acf9643",null)),jt=Mt.exports,Rt={name:"App",components:{Loading:ne["default"],CodemirrorEditor:jt},data:function(){return{loading:!0}},mounted:function(){var e=this;setTimeout((function(){e.loading=!1}),100)}},At=Rt,Gt=(o("537d"),Object(c["a"])(At,te,oe,!1,null,"8e90ad4c",null)),Ht=Gt.exports;r["default"].use(ee["a"]);var zt=[{path:"/",name:"index",component:Ht}],Nt=new ee["a"]({mode:"history",base:"/md/",routes:zt}),qt=Nt;r["default"].use(X.a),r["default"].config.productionTip=!1,u.mpType="app";var Dt=new r["default"](Object(n["a"])({router:qt,store:Y},u));Dt.$mount("#app")},6:function(e,t){},6396:function(e,t,o){},"64e1":function(e,t,o){"use strict";o("536a")},6849:function(e,t,o){},"695a":function(e,t,o){},7:function(e,t){},"792d":function(e,t,o){"use strict";o("ce42")},"7c55":function(e,t,o){"use strict";o("c163")},8:function(e,t){},"84a2":function(e,t,o){},"856c":function(e,t,o){"use strict";o("af5f")},9:function(e,t){},9332:function(e,t,o){"use strict";o("de14")},"94fb":function(e,t,o){"use strict";o("6849")},"9a2f":function(e,t,o){},a903:function(e,t,o){"use strict";o("119a")},aae9:function(e,t,o){"use strict";o.d(t,"a",(function(){return n})),o.d(t,"b",(function(){return r}));var n=function(){var e=this,t=e.$createElement;e._self._c;return e._m(0)},r=[function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("div",{staticClass:"loading",attrs:{id:"loading"}},[o("div",{staticClass:"loading-wrapper"},[o("div",{staticClass:"loading-anim"}),o("div",{staticClass:"loading-text"},[e._v("致力于让 Markdown 编辑更简单")])])])}]},aeb6:function(e,t,o){},af5f:function(e,t,o){},c081:function(e,t,o){"use strict";o("84a2")},c163:function(e,t,o){},cb57:function(e,t,o){"use strict";var n=o("eff7"),r=o.n(n);t["default"]=r.a},ce42:function(e,t,o){},de14:function(e,t,o){},e925:function(e,t,o){"use strict";o("aeb6")},ea8f:function(e,t,o){},ef81:function(e,t,o){"use strict";o("ea8f")},eff7:function(e,t){}});
+//# sourceMappingURL=app.55eacff9.js.map
\ No newline at end of file
diff --git a/js/app.55eacff9.js.map b/js/app.55eacff9.js.map
new file mode 100644
index 0000000..d4840f6
--- /dev/null
+++ b/js/app.55eacff9.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/CodemirrorEditor/resetDialog.vue?d122","webpack:///./src/components/Loading.vue?c5f2","webpack:///./src/components/Loading.vue?6b1c","webpack:///./src/pages/index/index.vue?17c6","webpack:///./src/App.vue?989e","webpack:///./src/App.vue?a938","webpack:///./src/assets/scripts/config.js","webpack:///./src/assets/scripts/renderers/wx-renderer.js","webpack:///./src/assets/scripts/default-content.js","webpack:///./src/assets/scripts/themes/default-theme-css.js","webpack:///./src/assets/scripts/themes/default-theme.js","webpack:///./src/assets/scripts/util.js","webpack:///./src/store/index.js","webpack:///./src/plugins/element/index.js","webpack:///./src/pages/index/index.vue?11e6","webpack:///./src/pages/index/view/CodemirrorEditor.vue?e7f3","webpack:///./src/components/CodemirrorEditor/header.vue?0a3b","webpack:///./src/assets/scripts/converter.js","webpack:///./src/components/CodemirrorEditor/resetDialog.vue?b639","webpack:///src/components/CodemirrorEditor/resetDialog.vue","webpack:///./src/components/CodemirrorEditor/resetDialog.vue?340c","webpack:///./src/components/CodemirrorEditor/resetDialog.vue?f816","webpack:///src/components/CodemirrorEditor/header.vue","webpack:///./src/components/CodemirrorEditor/header.vue?0ac3","webpack:///./src/components/CodemirrorEditor/header.vue?f48c","webpack:///./src/components/CodemirrorEditor/aboutDialog.vue?4559","webpack:///src/components/CodemirrorEditor/aboutDialog.vue","webpack:///./src/components/CodemirrorEditor/aboutDialog.vue?6527","webpack:///./src/components/CodemirrorEditor/aboutDialog.vue?caf5","webpack:///./src/components/CodemirrorEditor/insertForm.vue?35da","webpack:///src/components/CodemirrorEditor/insertForm.vue","webpack:///./src/components/CodemirrorEditor/insertForm.vue?29b1","webpack:///./src/components/CodemirrorEditor/insertForm.vue?6765","webpack:///./src/components/CodemirrorEditor/rightClickMenu.vue?abef","webpack:///src/components/CodemirrorEditor/rightClickMenu.vue","webpack:///./src/components/CodemirrorEditor/rightClickMenu.vue?ef55","webpack:///./src/components/CodemirrorEditor/rightClickMenu.vue?3f9f","webpack:///./src/components/CodemirrorEditor/uploadImgDialog.vue?9129","webpack:///src/components/CodemirrorEditor/uploadImgDialog.vue","webpack:///./src/components/CodemirrorEditor/uploadImgDialog.vue?d9e6","webpack:///./src/components/CodemirrorEditor/uploadImgDialog.vue?2b80","webpack:///./src/api/fetch.js","webpack:///./src/api/config.js","webpack:///./src/assets/scripts/tokenTools.js","webpack:///./src/api/file.js","webpack:///src/pages/index/view/CodemirrorEditor.vue","webpack:///./src/pages/index/view/CodemirrorEditor.vue?db4d","webpack:///./src/pages/index/view/CodemirrorEditor.vue?1fb7","webpack:///src/pages/index/index.vue","webpack:///./src/pages/index/index.vue?d479","webpack:///./src/pages/index/index.vue","webpack:///./src/router/index.js","webpack:///./src/main.js","webpack:///./src/components/CodemirrorEditor/insertForm.vue?0676","webpack:///./src/pages/index/view/CodemirrorEditor.vue?262d","webpack:///./src/App.vue?e247","webpack:///./src/components/CodemirrorEditor/rightClickMenu.vue?da5b","webpack:///./src/pages/index/view/CodemirrorEditor.vue?a86f","webpack:///./src/App.vue?e8fb","webpack:///./src/pages/index/view/CodemirrorEditor.vue?595a","webpack:///./src/components/Loading.vue?0305","webpack:///./src/components/CodemirrorEditor/aboutDialog.vue?b81b","webpack:///./src/components/Loading.vue?a8a7","webpack:///./src/components/CodemirrorEditor/uploadImgDialog.vue?59e0","webpack:///./src/components/CodemirrorEditor/header.vue?ae28"],"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","render","_vm","this","_h","$createElement","_c","_self","attrs","staticRenderFns","script","builtinFonts","label","sizeOption","desc","colorOption","codeThemeOption","form","rows","cols","WxRenderer","opts","ENV_STRETCH_IMAGE","footnotes","footnoteIndex","styleMapping","CODE_FONT_FAMILY","merge","base","extend","assign","buildTheme","themeTpl","mapping","BASE","fonts","size","ele","inline","style","base_block","block","getStyles","tokenName","addition","arr","dict","join","addFootnote","title","link","buildFootnotes","footnoteArray","map","x","buildAddition","setOptions","newOpts","hasFootnotes","getRenderer","status","theme","renderer","marked","Renderer","heading","text","level","paragraph","indexOf","replace","blockquote","code","lang","codeLines","split","line","codeTheme","codespan","listitem","list","ordered","start","segments","image","href","subText","figureStyles","imgStyles","startsWith","ref","strong","em","table","header","body","tablecell","flags","hr","DEFAULT_CONTENT","DEFAULT_CSS_CONTENT","color","BASE_BLOCK","margin","h1","display","padding","h2","background","h3","h4","blockquote_p","overflow","border","width","image_org","ol","ul","figure","wx_link","thead","td","footnote","figcaption","setColorWithTemplate","template","custom_theme","JSON","parse","stringify","setColorWithCustomTemplate","setFontSizeWithTemplate","fontSize","setColor","default_theme","setFontSize","customCssWithTemplate","jsonString","li","css2json","css","open","close","substring","json","lbracket","rbracket","toObject","array","ret","forEach","e","index","trim","declarations","filter","selectors","selector","keys","saveEditorContent","editor","content","getValue","localStorage","setItem","removeItem","formatDoc","doc","prettier","format","parser","plugins","prettierMarkdown","formatCss","prettierCss","fixCodeWhiteSpace","preDomList","document","getElementsByClassName","pre","whiteSpace","downloadMD","downLink","createElement","download","blob","Blob","URL","createObjectURL","appendChild","click","removeChild","exportHTML","element","querySelector","setStyles","htmlStr","innerHTML","isSection","isPre","isCode","isSpan","setAttribute","getElementStyles","tagName","Array","from","classList","includes","parentElement","children","child","createTable","currRow","rowIdx","toBase64","file","Promise","resolve","reject","reader","FileReader","readAsDataURL","onload","pop","onerror","error","checkImage","isValidSuffix","test","ok","msg","maxSize","isLt5M","excludes","styles","getComputedStyle","entries","getPropertyValue","Vue","use","Vuex","state","wxRenderer","output","html","cssEditor","currentFont","currentSize","currentColor","citeStatus","nightMode","rightClickMenuVisible","mutations","setEditorValue","setValue","setCssEditorValue","setWxRendererOptions","setCiteStatus","setCurrentFont","setCurrentSize","setCurrentColor","setCurrentCodeTheme","setRightClickMenuVisible","themeChanged","initEditorState","getItem","config","initEditorEntity","editorDom","getElementById","CodeMirror","fromTextArea","lineNumbers","lineWrapping","styleActiveLine","autoCloseBrackets","extraKeys","initCssEditorEntity","cssEditorDom","matchBrackets","autofocus","editorRefresh","clearEditorToDefault","Store","actions","Message","$loading","Loading","service","$message","staticClass","class","container_night","on","onEditorRefresh","cssChanged","downloadEditorContent","exportEditorContent","$event","showCssEditor","aboutDialogVisible","dialogFormVisible","dialogUploadImgVisible","isCoping","backLight","endCopy","nativeOn","preventDefault","openMenu","directives","rawName","expression","domProps","target","composing","source","output_night","_s","_v","_e","beforeUpload","uploadImage","uploaded","model","callback","$$v","mouseLeft","mouseTop","onMenuEvent","closeRightClickMenu","effect","$emit","showResetConfirm","fontChanged","selectFont","_l","font","fontFamily","sizeChanged","selectSize","colorChanged","selectColor","statusChanged","btnType","customStyle","copy","btnContent","confirmReset","cancelReset","solveWeChatImage","clipboardDiv","images","getElementsByTagName","getAttribute","height","removeAttribute","solveHtml","res","juice","inlineContent","inlinePseudoElements","preserveImportant","slot","props","type","Boolean","default","computed","selectCodeTheme","components","resetDialog","methods","codeThemeChanged","val","setTimeout","focus","getSelection","removeAllRanges","range","setStartBefore","firstChild","setEndAfter","lastChild","addRange","execCommand","showClose","message","offset","duration","clear","mounted","staticStyle","onRedirect","url","rowNum","colNum","row","col","tableData","$set","insertTable","replaceSelection","left","top","menuItem","item","onMouseDown","Number","menu","closeCB","changeImgHost","imgHost","beforeImageUpload","formGitee","saveGiteeConfiguration","formGitHub","saveGitHubConfiguration","formAliOSS","saveAliOSSConfiguration","formTxCOS","saveTxCOSConfiguration","formQiniu","saveQiniuConfiguration","repo","branch","accessToken","accessKeyId","accessKeySecret","bucket","region","path","cdnHost","secretId","secretKey","accessKey","domain","options","created","success","checkResult","isValidHost","params","axios","baseURL","timeout","interceptors","request","method","upload","headers","response","githubConfig","username","repoList","accessTokenList","giteeConfig","utf16to8","str","out","len","charCodeAt","charAt","String","fromCharCode","base64EncodeChars","base64encode","c1","c2","c3","safe64","base64","getConfig","useDefault","platform","tokenIndex","Math","floor","random","repoIndex","customConfig","repoUrl","getDir","date","Date","year","getFullYear","month","getMonth","toString","padStart","day","getDate","getDateFilename","filename","currentTimestamp","getTime","fileSuffix","uuidv4","ghFileUpload","dir","dateFilename","fetch","Authorization","location","githubResourceUrl","cdnResourceUrl","download_url","giteeUpload","access_token","encodeURI","getQiniuToken","putPolicy","policy","encoded","hash","CryptoJS","HmacSHA1","encodedSigned","enc","Base64","qiniuUpload","token","scope","deadline","trunc","observable","qiniu","subscribe","next","console","log","err","complete","aliOSSFileUpload","buffer","Buffer","client","OSS","put","txCOSFileUpload","cos","COS","SecretId","SecretKey","putObject","Bucket","Region","Key","Body","Location","fileUpload","isImgLoading","changeTimer","editorHeader","aboutDialog","insertFormDialog","rightClickMenu","uploadImgDialog","$nextTick","initEditor","clipboardData","items","kind","isValid","initCssEditor","cm","showHint","leftAndRightScroll","clearTimeout","removeEventListener","previewScrollCB","addEventListener","scrollTo","scrollCB","$refs","preview","$el","editorScrollCB","importMarkdownContent","input","accept","onchange","files","readAsText","txt","formatContent","min","maxLeft","clientY","$store","commit","PR","prettyPrint","CodemirrorEditor","loading","VueRouter","routes","router","process","ElementUI","productionTip","App","mpType","app","store","$mount","_m"],"mappings":"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,OAAOC,aAAa,IAAS3e,GAAK,GAAM,IAC/Cse,GAAOI,OAAOC,aAAa,IAAS3e,GAAK,EAAK,IAC9Cse,GAAOI,OAAOC,aAAa,IAAS3e,GAAK,EAAK,MAE9Cse,GAAOI,OAAOC,aAAa,IAAS3e,GAAK,EAAK,IAC9Cse,GAAOI,OAAOC,aAAa,IAAS3e,GAAK,EAAK,KAGlD,OAAOse,EA0CT,IAAMM,GACJ,mEACwB,IAAIpQ,OAC3B,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACD,IACC,GACA,GACA,EACD,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACC,GACA,GACA,GACA,GACA,GACA,GACA,EACD,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACC,GACA,GACA,GACA,GACA,GACA,EACD,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACC,GACA,GACA,GACA,GACA,GAEI,SAASqQ,GAAaR,GAC3B,IAAIC,EAAKlgB,EAAGmgB,EACRO,EAAIC,EAAIC,EACZT,EAAMF,EAAI/f,OACVF,EAAI,EACJkgB,EAAM,GACN,MAAOlgB,EAAImgB,EAAK,CAEd,GADAO,EAA2B,IAAtBT,EAAIG,WAAWpgB,KAChBA,GAAKmgB,EAAK,CACZD,GAAOM,GAAkBH,OAAOK,GAAM,GACtCR,GAAOM,GAAkBH,QAAa,EAALK,IAAa,GAC9CR,GAAO,KACP,MAGF,GADAS,EAAKV,EAAIG,WAAWpgB,KAChBA,GAAKmg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","file":"js/app.55eacff9.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","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/@vue/cli-service/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=68392714&lang=less&scoped=true&\"","export * from \"-!../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../node_modules/@vue/cli-service/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=a205efe8&lang=less&scoped=true&\"","import { render, staticRenderFns } from \"./Loading.vue?vue&type=template&id=a205efe8&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=a205efe8&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 \"a205efe8\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=8e90ad4c&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=41a4af61&\"\nvar script = {}\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=less&\"\nimport style1 from \"./App.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 null,\n null\n \n)\n\nexport default component.exports","export default {\n builtinFonts: [\n {\n label: \"无衬线\",\n value:\n \"-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:\n \"Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif\",\n },\n ],\n sizeOption: [\n {\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 {\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","import marked from \"marked\";\nclass WxRenderer {\n constructor(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 =\n \"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 for (let ele in themeTpl.inline) {\n if (themeTpl.inline.hasOwnProperty(ele)) {\n let style = themeTpl.inline[ele];\n mapping[ele] = merge(themeTpl.BASE, style);\n }\n }\n\n let base_block = merge(base, {});\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\n .split(\"\\n\")\n .map(\n (line) =>\n `${\n line || \" \"\n }
`\n );\n const codeTheme = \"github\";\n return `\n \n \n ${codeLines.join(\"\")}\n \n \n `;\n };\n renderer.codespan = (text, lang) =>\n `${text}
`;\n renderer.listitem = (text) =>\n `<%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 ` ${subText} `;\n };\n renderer.link = (href, title, text) => {\n if (href.startsWith(\"https://mp.weixin.qq.com\")) {\n return `${text} `;\n }\n if (href === text) {\n return text;\n }\n if (status) {\n let ref = addFootnote(title || text, href);\n return `${text}[${ref}] `;\n }\n return `${text} `;\n };\n renderer.strong = (text) =>\n `${text} `;\n renderer.em = (text) =>\n `${text} `;\n renderer.table = (header, body) =>\n ``;\n renderer.tablecell = (text, flags) =>\n `${text} `;\n renderer.hr = () =>\n ` `;\n return renderer;\n };\n }\n}\nexport default WxRenderer;\n","const DEFAULT_CONTENT = `# 示例文章: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","const DEFAULT_CSS_CONTENT = `/*\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/* 有序列表样式 */\nol {\n}\n/* 无序列表样式 */\nul {\n}\n/* 列表项样式 */\nli {\n}\n`;\nexport default DEFAULT_CSS_CONTENT;\n","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\": \"8px\",\n color: \"rgba(0,0,0,0.5)\",\n background: \"#f7f7f7\",\n margin: \"2em 8px\",\n },\n\n blockquote_p: {\n \"letter-spacing\": \"0.1em\",\n color: \"rgb(80, 80, 80)\",\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\": \"8px\",\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\";\nimport prettierCss from \"prettier/parser-postcss\";\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 custom_theme.block.ul = Object.assign(custom_theme.block.ul, jsonString.ul);\n custom_theme.block.ol = Object.assign(custom_theme.block.ol, jsonString.ol);\n custom_theme.inline.listitem = Object.assign(\n custom_theme.inline.listitem,\n jsonString.li\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 * 将编辑器内容保存到 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/**\n * 格式化文档\n * @param {文档内容} content\n */\nexport function formatDoc(content) {\n const doc = prettier.format(content, {\n parser: \"markdown\",\n plugins: [prettierMarkdown],\n });\n return doc;\n}\n\n/**\n * 格式化css\n * @param {css内容}} content\n */\nexport function formatCss(content) {\n const doc = prettier.format(content, {\n parser: \"css\",\n plugins: [prettierCss],\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\n/**\n * 导出原始 Markdown 文档\n * @param {文档内容} doc\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\n/**\n * 导出 HTML 生成内容\n */\nexport function exportHTML() {\n const element = document.querySelector(\"#output\");\n setStyles(element);\n const htmlStr = element.innerHTML;\n\n const downLink = document.createElement(\"a\");\n\n downLink.download = \"content.html\";\n downLink.style.display = \"none\";\n let blob = new Blob([\n `${htmlStr}
`,\n ]);\n\n downLink.href = URL.createObjectURL(blob);\n document.body.appendChild(downLink);\n downLink.click();\n document.body.removeChild(downLink);\n\n function setStyles(element) {\n switch (true) {\n case isSection(element):\n case isPre(element):\n case isCode(element):\n case isSpan(element):\n element.setAttribute(\"style\", getElementStyles(element));\n default:\n }\n if (element.children.length) {\n Array.from(element.children).forEach((child) => setStyles(child));\n }\n\n // 判断是否是包裹代码块的 section 元素\n function isSection(element) {\n return (\n element.tagName === \"SECTION\" &&\n Array.from(element.classList).includes(\"code-snippet__github\")\n );\n }\n // 判断是否是包裹代码块的 pre 元素\n function isPre(element) {\n return (\n element.tagName === \"PRE\" &&\n Array.from(element.classList).includes(\"code__pre\")\n );\n }\n // 判断是否是包裹代码块的 code 元素\n function isCode(element) {\n return (\n element.tagName === \"CODE\" &&\n Array.from(element.classList).includes(\"prettyprint\")\n );\n }\n // 判断是否是包裹代码字符的 span 元素\n function isSpan(element) {\n return (\n element.tagName === \"SPAN\" &&\n (isCode(element.parentElement) ||\n isCode(element.parentElement.parentElement))\n );\n }\n }\n}\n\n/**\n * 生成列表字符串\n * @param {*} data 对应内容集合\n * @param {*} rows 行\n * @param {*} cols 列\n */\nexport function createTable({ data, rows, cols }) {\n let table = \"\";\n let currRow = [];\n for (let i = 0; i < rows + 2; ++i) {\n table += \"|\\t\";\n currRow = [];\n for (let j = 0; j < cols; ++j) {\n const rowIdx = i > 1 ? i - 1 : i;\n i === 1\n ? currRow.push(\"---\\t\")\n : currRow.push(data[`k_${rowIdx}_${j}`] || \"\");\n }\n table += currRow.join(\"\\t|\\t\");\n table += \"\\t|\\n\";\n }\n\n return table;\n}\n\nexport const toBase64 = (file) =>\n new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result.split(\",\").pop());\n reader.onerror = (error) => reject(error);\n });\n\nexport function checkImage(file) {\n // check filename suffix\n const isValidSuffix = /\\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(file.name);\n if (!isValidSuffix) {\n return {\n ok: false,\n msg: \"请上传 JPG/PNG/GIF 格式的图片\",\n };\n }\n\n // check file size\n const maxSize = 5;\n const isLt5M = file.size / 1024 / 1024 <= maxSize;\n if (!isLt5M) {\n return {\n ok: false,\n msg: `由于公众号限制,图片大小不能超过 ${maxSize}M`,\n };\n }\n return { ok: true };\n}\n\n/**\n * 获取一个 DOM 元素的所有样式,\n * @param {DOM 元素} element DOM 元素\n * @param {排除的属性} excludes 如果某些属性对结果有不良影响,可以使用这个参数来排除\n * @returns 行内样式拼接结果\n */\nfunction getElementStyles(element, excludes = [\"width\", \"height\"]) {\n const styles = getComputedStyle(element, null);\n return Object.entries(styles)\n .filter(([key]) => styles.getPropertyValue(key) && !excludes.includes(key))\n .map(([key, value]) => `${key}:${value};`)\n .join(\"\");\n}\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 { setColor, formatDoc, formatCss } 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 localStorage.setItem(\"nightMode\", state.nightMode);\n },\n initEditorState(state) {\n state.currentFont =\n localStorage.getItem(\"fonts\") || config.builtinFonts[0].value;\n state.currentColor =\n localStorage.getItem(\"color\") || config.colorOption[0].value;\n state.currentSize =\n localStorage.getItem(\"size\") || config.sizeOption[2].value;\n state.codeTheme =\n localStorage.getItem(\"codeTheme\") || config.codeThemeOption[0].value;\n state.citeStatus = localStorage.getItem(\"citeStatus\") === \"true\";\n state.nightMode = localStorage.getItem(\"nightMode\") === \"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 const editorDom = document.getElementById(\"editor\");\n\n if (!editorDom.value) {\n editorDom.value =\n localStorage.getItem(\"__editor_content\") || formatDoc(DEFAULT_CONTENT);\n }\n state.editor = CodeMirror.fromTextArea(editorDom, {\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 \"Ctrl-S\": function save(editor) {},\n },\n });\n },\n initCssEditorEntity(state) {\n const cssEditorDom = document.getElementById(\"cssEditor\");\n\n if (!cssEditorDom.value) {\n cssEditorDom.value =\n localStorage.getItem(\"__css_content\") || DEFAULT_CSS_CONTENT;\n }\n state.cssEditor = CodeMirror.fromTextArea(cssEditorDom, {\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 doc = formatCss(editor.getValue(0));\n localStorage.setItem(\"__css_content\", doc);\n editor.setValue(doc);\n },\n \"Ctrl-S\": function save(editor) {},\n },\n });\n },\n editorRefresh(state) {\n let output = marked(state.editor.getValue(0), {\n renderer: state.wxRenderer.getRenderer(state.citeStatus),\n });\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\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});\n","import Vue from \"vue\";\nimport {\n Loading,\n Message,\n} from \"element-ui\";\n\nVue.component(Message.name, Message);\n\nVue.prototype.$loading = Loading.service;\nVue.prototype.$message = Message;\n","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,\"export\":_vm.exportEditorContent,\"showCssEditor\":function($event){_vm.showCssEditor = !_vm.showCssEditor},\"show-about-dialog\":function($event){_vm.aboutDialogVisible = true},\"show-dialog-form\":function($event){_vm.dialogFormVisible = true},\"show-dialog-upload-img\":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',{staticClass:\"codeMirror-wrapper\",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:{\n 'preview-wrapper_night': _vm.nightMode && _vm.isCoping,\n },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\"}],staticClass:\"cssEditor-wrapper\",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},\"beforeUpload\":_vm.beforeUpload,\"uploadImage\":_vm.uploadImage,\"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('div',{staticClass:\"left-side\"},[_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('show-dialog-upload-img')}}})]),_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\":\"导出 HTML 页面\",\"placement\":\"bottom-start\"}},[_c('i',{staticClass:\"el-icon-document\",attrs:{\"size\":\"medium\"},on:{\"click\":function($event){return _vm.$emit('export')}}})]),_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('show-dialog-form')}}})]),_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),_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),_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),_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('div',{staticClass:\"right-side\"},[_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('show-about-dialog')}}},[_vm._v(\"关于\")]),_c('el-tooltip',{attrs:{\"content\":_vm.btnContent,\"effect\":_vm.effect,\"placement\":\"bottom-start\"}},[(_vm.nightMode)?_c('div',{staticClass:\"mode__switch mode__switch_black\",on:{\"click\":_vm.themeChanged}}):_c('div',{staticClass:\"mode__switch\",on:{\"click\":_vm.themeChanged}})])],1),_c('resetDialog',{attrs:{\"showResetConfirm\":_vm.showResetConfirm},on:{\"confirm\":_vm.confirmReset,\"close\":_vm.cancelReset}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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(html, {\n inlinePseudoElements: true,\n preserveImportant: true,\n });\n return res;\n}\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 \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!./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=68392714&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=68392714&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 \"68392714\",\n null\n \n)\n\nexport default component.exports","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ font.label }} \n Abc \n \n \n \n \n {{ size.label }} \n {{ size.desc }} \n \n \n \n \n {{ color.label }} \n {{ color.desc }} \n \n \n \n \n \n \n \n \n
\n \n
\n \n \n
复制 \n
关于 \n
\n
\n
\n \n
\n \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!./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=54b819f8&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=54b819f8&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 \"54b819f8\",\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
一款高度简洁的微信 Markdown 编辑器 \n \n \n
扫码关注我的公众号,原创技术文章第一时间推送!
\n
\n
\n \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!./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=70c50907&scoped=true&\"\nimport script from \"./aboutDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./aboutDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./aboutDialog.vue?vue&type=style&index=0&id=70c50907&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 \"70c50907\",\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',[_vm._v(\" 行数: \"),_c('el-input-number',{attrs:{\"controls-position\":\"right\",\"min\":1,\"max\":100,\"size\":\"small\"},model:{value:(_vm.rowNum),callback:function ($$v) {_vm.rowNum=$$v},expression:\"rowNum\"}})],1),_c('el-col',[_vm._v(\" 列数: \"),_c('el-input-number',{attrs:{\"controls-position\":\"right\",\"min\":1,\"max\":100,\"size\":\"small\"},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 \n \n \n 列数:\n \n \n \n \n \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!./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=4dd4e7e2&scoped=true&\"\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&id=4dd4e7e2&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 \"4dd4e7e2\",\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.menu),function(menuItem,index){return _c('div',{key:index,staticClass:\"menu__group\"},_vm._l((menuItem),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)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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=a704a2f8&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=a704a2f8&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 \"a704a2f8\",\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:\"upload__dialog\",attrs:{\"title\":\"本地上传\",\"visible\":_vm.value},on:{\"close\":function($event){return _vm.$emit('close')}}},[_c('el-tabs',{attrs:{\"type\":\"activeName\",\"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',{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.beforeImageUpload,\"http-request\":_vm.uploadImage}},[_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\":\"Gitee 图床\",\"name\":\"gitee\"}},[_c('el-form',{staticClass:\"setting-form\",attrs:{\"model\":_vm.formGitee,\"label-position\":\"right\",\"label-width\":\"140px\"}},[_c('el-form-item',{attrs:{\"label\":\"Gitee 仓库\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:gitee.com/yanglbme/resource\"},model:{value:(_vm.formGitee.repo),callback:function ($$v) {_vm.$set(_vm.formGitee, \"repo\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formGitee.repo\"}})],1),_c('el-form-item',{attrs:{\"label\":\"分支\"}},[_c('el-input',{attrs:{\"placeholder\":\"如:release,可不填,默认 master\"},model:{value:(_vm.formGitee.branch),callback:function ($$v) {_vm.$set(_vm.formGitee, \"branch\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formGitee.branch\"}})],1),_c('el-form-item',{attrs:{\"label\":\"私人令牌\",\"required\":true}},[_c('el-input',{attrs:{\"show-password\":\"\",\"placeholder\":\"如:cc1d0c1426d0fd0902bd2d7184b14da61b8abc46\"},model:{value:(_vm.formGitee.accessToken),callback:function ($$v) {_vm.$set(_vm.formGitee, \"accessToken\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formGitee.accessToken\"}}),_c('el-link',{attrs:{\"type\":\"primary\",\"href\":\"https://gitee.com/profile/personal_access_tokens\",\"target\":\"_blank\"}},[_vm._v(\"请在 Gitee「设置->安全设置->私人令牌」中生成\")])],1),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.saveGiteeConfiguration}},[_vm._v(\"保存配置\")])],1)],1)],1),_c('el-tab-pane',{staticClass:\"github-panel\",attrs:{\"label\":\"GitHub 图床\",\"name\":\"github\"}},[_c('el-form',{staticClass:\"setting-form\",attrs:{\"model\":_vm.formGitHub,\"label-position\":\"right\",\"label-width\":\"140px\"}},[_c('el-form-item',{attrs:{\"label\":\"GitHub 仓库\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:github.com/yanglbme/resource\"},model:{value:(_vm.formGitHub.repo),callback:function ($$v) {_vm.$set(_vm.formGitHub, \"repo\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formGitHub.repo\"}})],1),_c('el-form-item',{attrs:{\"label\":\"分支\"}},[_c('el-input',{attrs:{\"placeholder\":\"如:release,可不填,默认 master\"},model:{value:(_vm.formGitHub.branch),callback:function ($$v) {_vm.$set(_vm.formGitHub, \"branch\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formGitHub.branch\"}})],1),_c('el-form-item',{attrs:{\"label\":\"Token\",\"required\":true}},[_c('el-input',{attrs:{\"show-password\":\"\",\"placeholder\":\"如:cc1d0c1426d0fd0902bd2d7184b14da61b8abc46\"},model:{value:(_vm.formGitHub.accessToken),callback:function ($$v) {_vm.$set(_vm.formGitHub, \"accessToken\", (typeof $$v === 'string'? $$v.trim(): $$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.saveGitHubConfiguration}},[_vm._v(\"保存配置\")])],1)],1)],1),_c('el-tab-pane',{staticClass:\"github-panel\",attrs:{\"label\":\"阿里云 OSS\",\"name\":\"aliOSS\"}},[_c('el-form',{staticClass:\"setting-form\",attrs:{\"model\":_vm.formAliOSS,\"label-position\":\"right\",\"label-width\":\"140px\"}},[_c('el-form-item',{attrs:{\"label\":\"AccessKey ID\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:LTAI4GdoocsmdoxUf13ylbaNHk\"},model:{value:(_vm.formAliOSS.accessKeyId),callback:function ($$v) {_vm.$set(_vm.formAliOSS, \"accessKeyId\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formAliOSS.accessKeyId\"}})],1),_c('el-form-item',{attrs:{\"label\":\"AccessKey Secret\",\"required\":true}},[_c('el-input',{attrs:{\"show-password\":\"\",\"placeholder\":\"如:cc1d0c142doocs0902bd2d7md4b14da6ylbabc46\"},model:{value:(_vm.formAliOSS.accessKeySecret),callback:function ($$v) {_vm.$set(_vm.formAliOSS, \"accessKeySecret\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formAliOSS.accessKeySecret\"}})],1),_c('el-form-item',{attrs:{\"label\":\"Bucket\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:doocs\"},model:{value:(_vm.formAliOSS.bucket),callback:function ($$v) {_vm.$set(_vm.formAliOSS, \"bucket\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formAliOSS.bucket\"}})],1),_c('el-form-item',{attrs:{\"label\":\"Bucket 所在区域\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:oss-cn-shenzhen\"},model:{value:(_vm.formAliOSS.region),callback:function ($$v) {_vm.$set(_vm.formAliOSS, \"region\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formAliOSS.region\"}})],1),_c('el-form-item',{attrs:{\"label\":\"自定义 CDN 域名\",\"required\":false}},[_c('el-input',{attrs:{\"placeholder\":\"如:https://imagecdn.alidaodao.com,可不填\"},model:{value:(_vm.formAliOSS.cdnHost),callback:function ($$v) {_vm.$set(_vm.formAliOSS, \"cdnHost\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formAliOSS.cdnHost\"}})],1),_c('el-form-item',{attrs:{\"label\":\"存储路径\"}},[_c('el-input',{attrs:{\"placeholder\":\"如:img,可不填,默认为根目录\"},model:{value:(_vm.formAliOSS.path),callback:function ($$v) {_vm.$set(_vm.formAliOSS, \"path\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formAliOSS.path\"}}),_c('el-link',{attrs:{\"type\":\"primary\",\"href\":\"https://help.aliyun.com/document_detail/31883.html\",\"target\":\"_blank\"}},[_vm._v(\"如何使用阿里云 OSS?\")])],1),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.saveAliOSSConfiguration}},[_vm._v(\"保存配置\")])],1)],1)],1),_c('el-tab-pane',{staticClass:\"github-panel\",attrs:{\"label\":\"腾讯云 COS\",\"name\":\"txCOS\"}},[_c('el-form',{staticClass:\"setting-form\",attrs:{\"model\":_vm.formTxCOS,\"label-position\":\"right\",\"label-width\":\"140px\"}},[_c('el-form-item',{attrs:{\"label\":\"SecretId\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:AKIDnQp1w3DOOCSs8F5MDp9tdoocsmdUPonW3\"},model:{value:(_vm.formTxCOS.secretId),callback:function ($$v) {_vm.$set(_vm.formTxCOS, \"secretId\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formTxCOS.secretId\"}})],1),_c('el-form-item',{attrs:{\"label\":\"SecretKey\",\"required\":true}},[_c('el-input',{attrs:{\"show-password\":\"\",\"placeholder\":\"如:ukLmdtEJ9271f3DOocsMDsCXdS3YlbW0\"},model:{value:(_vm.formTxCOS.secretKey),callback:function ($$v) {_vm.$set(_vm.formTxCOS, \"secretKey\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formTxCOS.secretKey\"}})],1),_c('el-form-item',{attrs:{\"label\":\"Bucket\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:doocs-3212520134\"},model:{value:(_vm.formTxCOS.bucket),callback:function ($$v) {_vm.$set(_vm.formTxCOS, \"bucket\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formTxCOS.bucket\"}})],1),_c('el-form-item',{attrs:{\"label\":\"Bucket 所在区域\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:ap-guangzhou\"},model:{value:(_vm.formTxCOS.region),callback:function ($$v) {_vm.$set(_vm.formTxCOS, \"region\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formTxCOS.region\"}})],1),_c('el-form-item',{attrs:{\"label\":\"自定义 CDN 域名\",\"required\":false}},[_c('el-input',{attrs:{\"placeholder\":\"如:https://imagecdn.alidaodao.com,可不填\"},model:{value:(_vm.formTxCOS.cdnHost),callback:function ($$v) {_vm.$set(_vm.formTxCOS, \"cdnHost\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formTxCOS.cdnHost\"}})],1),_c('el-form-item',{attrs:{\"label\":\"存储路径\"}},[_c('el-input',{attrs:{\"placeholder\":\"如:img,可不填,默认根目录\"},model:{value:(_vm.formTxCOS.path),callback:function ($$v) {_vm.$set(_vm.formTxCOS, \"path\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formTxCOS.path\"}}),_c('el-link',{attrs:{\"type\":\"primary\",\"href\":\"https://cloud.tencent.com/document/product/436/38484\",\"target\":\"_blank\"}},[_vm._v(\"如何使用腾讯云 COS?\")])],1),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.saveTxCOSConfiguration}},[_vm._v(\"保存配置\")])],1)],1)],1),_c('el-tab-pane',{staticClass:\"github-panel\",attrs:{\"label\":\"七牛云 Kodo\",\"name\":\"qiniu\"}},[_c('el-form',{staticClass:\"setting-form\",attrs:{\"model\":_vm.formQiniu,\"label-position\":\"right\",\"label-width\":\"140px\"}},[_c('el-form-item',{attrs:{\"label\":\"AccessKey\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:6DD3VaLJ_SQgOdoocsyTV_YWaDmdnL2n8EGx7kG\"},model:{value:(_vm.formQiniu.accessKey),callback:function ($$v) {_vm.$set(_vm.formQiniu, \"accessKey\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formQiniu.accessKey\"}})],1),_c('el-form-item',{attrs:{\"label\":\"SecretKey\",\"required\":true}},[_c('el-input',{attrs:{\"show-password\":\"\",\"placeholder\":\"如:qgZa5qrvDOOcsmdKStD1oCjZ9nB7MDvJUs_34SIm\"},model:{value:(_vm.formQiniu.secretKey),callback:function ($$v) {_vm.$set(_vm.formQiniu, \"secretKey\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formQiniu.secretKey\"}})],1),_c('el-form-item',{attrs:{\"label\":\"Bucket\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:md\"},model:{value:(_vm.formQiniu.bucket),callback:function ($$v) {_vm.$set(_vm.formQiniu, \"bucket\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formQiniu.bucket\"}})],1),_c('el-form-item',{attrs:{\"label\":\"Bucket 对应域名\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:https://images.123ylb.cn\"},model:{value:(_vm.formQiniu.domain),callback:function ($$v) {_vm.$set(_vm.formQiniu, \"domain\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formQiniu.domain\"}})],1),_c('el-form-item',{attrs:{\"label\":\"存储区域\",\"required\":true}},[_c('el-input',{attrs:{\"placeholder\":\"如:z2\"},model:{value:(_vm.formQiniu.region),callback:function ($$v) {_vm.$set(_vm.formQiniu, \"region\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formQiniu.region\"}})],1),_c('el-form-item',{attrs:{\"label\":\"存储路径\",\"required\":false}},[_c('el-input',{attrs:{\"placeholder\":\"如:img,可不填,默认为根目录\"},model:{value:(_vm.formQiniu.path),callback:function ($$v) {_vm.$set(_vm.formQiniu, \"path\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"formQiniu.path\"}}),_c('el-link',{attrs:{\"type\":\"primary\",\"href\":\"https://developer.qiniu.com/kodo\",\"target\":\"_blank\"}},[_vm._v(\"如何使用七牛云 Kodo?\")])],1),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.saveQiniuConfiguration}},[_vm._v(\"保存配置\")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n \n \n \n \n 将图片拖到此处,或\n 点击上传 \n
\n \n \n \n \n \n \n \n \n \n \n \n \n 请在 Gitee「设置->安全设置->私人令牌」中生成 \n \n \n 保存配置 \n \n \n \n \n \n \n \n \n \n \n \n \n \n 如何获取 GitHub Token? \n \n \n 保存配置 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 如何使用阿里云 OSS? \n \n \n 保存配置 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 如何使用腾讯云 COS? \n \n \n 保存配置 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 如何使用七牛云 Kodo? \n \n \n 保存配置 \n \n \n \n \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!./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=fc5ed8b0&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=fc5ed8b0&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 \"fc5ed8b0\",\n null\n \n)\n\nexport default component.exports","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 },\n (error) => {\n Promise.reject(error);\n }\n);\n\nservice.interceptors.response.use(\n (res) => {\n return res.data ? res.data : Promise.reject(res);\n },\n (error) => Promise.reject(error)\n);\n\nexport default service;\n","const githubConfig = {\n username: \"filess\",\n repoList: Array.from(\n [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],\n (e) => `img${e}`\n ),\n branch: \"main\",\n accessTokenList: [\n \"7715d7ca67b5d3837cfdoocsmde8c38421815aa423510af\",\n \"c411415bf95dbe39625doocsmd5047ba9b7a2a6c9642abe\",\n \"2821cd8819fa345c053doocsmdca86ac653f8bc20db1f1b\",\n \"445f0dae46ef1f2a4d6doocsmdc797301e94797b4750a4c\",\n \"cc1d0c1426d0fd0902bdoocsmdd2d7184b14da61b86ec46\",\n \"b67e9d15cb6f910492fdoocsmdac6b44d379c953bb19eff\",\n \"618c4dc2244ccbbc088doocsmd125d17fd31b7d06a50cf3\",\n \"a4b581732e1c1507458doocsmdc5b223b27dae5e2e16a55\",\n \"77904db41aee57ad79bdoocsmd760f848201dac9c96fd5e\",\n \"02f251cb14ac62ab100doocsmdddbfc8527d773f1f04ce1\",\n \"eb321079a95ba7028d9doocsmde2e84c502dac70de7cf08\",\n \"22f74fcfb071a961fa2doocsmde28dabc746f0503a15e5d\",\n \"85124c2bfe7abba0938doocsmd0af7f67918b99d085a5fd\",\n \"0a561b4d4bbecb2de7edoocsmdd9ba3833d11dbc5e430f5\",\n \"e8a01491188d8d5a097doocsmd03ede0aad1fe9e3af24e9\",\n \"36e1f420d7e5bdebd67doocsmd65463562f5f25b20b8377\",\n ],\n};\n\nconst giteeConfig = {\n username: \"filesss\",\n repoList: Array.from(\n [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],\n (e) => `img${e}`\n ),\n branch: \"main\",\n accessTokenList: [\n \"ed5fc9866bd6c2fdoocsmddd433f806fd2f399c\",\n \"5448ffebbbf1151doocsmdc4e337cf814fc8a62\",\n \"25b05efd2557ca2doocsmd75b5c0835e3395911\",\n \"11628c7a5aef015doocsmd2eeff9fb9566f0458\",\n \"cb2f5145ed938dedoocsmdbd063b4ed244eecf8\",\n \"d8c0b57500672c1doocsmd55f48b866b5ebcd98\",\n \"78c56eadb88e453doocsmd43ddd95753351771a\",\n \"03e1a688003948fdoocsmda16fcf41e6f03f1f0\",\n \"c49121cf4d191fbdoocsmdd6a7877ed537e474a\",\n \"adfeb2fadcdc4aadoocsmdfe1ee869ac9c968ff\",\n \"116c94549ca4a0ddoocsmd192653af5c0694616\",\n \"ecf30ed7f2eb184doocsmd51ea4ec8300371d9e\",\n \"5837cf2bd5afd93doocsmd73904bed31934949e\",\n \"b5b7e1c7d57e01fdoocsmd5266f552574297d78\",\n \"684d55564ffbd0bdoocsmd7d747e5cc23aed6d6\",\n \"3fc04a9d272ab71doocsmd010c56cb57d88d2ba\",\n ],\n};\n\nexport { githubConfig, giteeConfig };\n","export function utf16to8(str) {\n var out, i, len, c;\n out = \"\";\n len = str.length;\n for (i = 0; i < len; i++) {\n c = str.charCodeAt(i);\n if (c >= 0x0001 && c <= 0x007f) {\n out += str.charAt(i);\n } else if (c > 0x07ff) {\n out += String.fromCharCode(0xe0 | ((c >> 12) & 0x0f));\n out += String.fromCharCode(0x80 | ((c >> 6) & 0x3f));\n out += String.fromCharCode(0x80 | ((c >> 0) & 0x3f));\n } else {\n out += String.fromCharCode(0xc0 | ((c >> 6) & 0x1f));\n out += String.fromCharCode(0x80 | ((c >> 0) & 0x3f));\n }\n }\n return out;\n}\n\nexport function utf8to16(str) {\n var out, i, len, c;\n var char2, char3;\n out = \"\";\n len = str.length;\n i = 0;\n while (i < len) {\n c = str.charCodeAt(i++);\n switch (c >> 4) {\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n // 0xxxxxxx\n out += str.charAt(i - 1);\n break;\n case 12:\n case 13:\n // 110x xxxx 10xx xxxx\n char2 = str.charCodeAt(i++);\n out += String.fromCharCode(((c & 0x1f) << 6) | (char2 & 0x3f));\n break;\n case 14:\n // 1110 xxxx 10xx xxxx 10xx xxxx\n char2 = str.charCodeAt(i++);\n char3 = str.charCodeAt(i++);\n out += String.fromCharCode(\n ((c & 0x0f) << 12) | ((char2 & 0x3f) << 6) | ((char3 & 0x3f) << 0)\n );\n break;\n }\n }\n return out;\n}\n\nconst base64EncodeChars =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\";\nconst base64DecodeChars = new Array(\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n 62,\n -1,\n -1,\n -1,\n 63,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 59,\n 60,\n 61,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51,\n -1,\n -1,\n -1,\n -1,\n -1\n);\nexport function base64encode(str) {\n var out, i, len;\n var c1, c2, c3;\n len = str.length;\n i = 0;\n out = \"\";\n while (i < len) {\n c1 = str.charCodeAt(i++) & 0xff;\n if (i == len) {\n out += base64EncodeChars.charAt(c1 >> 2);\n out += base64EncodeChars.charAt((c1 & 0x3) << 4);\n out += \"==\";\n break;\n }\n c2 = str.charCodeAt(i++);\n if (i == len) {\n out += base64EncodeChars.charAt(c1 >> 2);\n out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xf0) >> 4));\n out += base64EncodeChars.charAt((c2 & 0xf) << 2);\n out += \"=\";\n break;\n }\n c3 = str.charCodeAt(i++);\n out += base64EncodeChars.charAt(c1 >> 2);\n out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xf0) >> 4));\n out += base64EncodeChars.charAt(((c2 & 0xf) << 2) | ((c3 & 0xc0) >> 6));\n out += base64EncodeChars.charAt(c3 & 0x3f);\n }\n return out;\n}\n\nexport function base64decode(str) {\n var c1, c2, c3, c4;\n var i, len, out;\n len = str.length;\n i = 0;\n out = \"\";\n while (i < len) {\n /* c1 */\n do {\n c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];\n } while (i < len && c1 == -1);\n if (c1 == -1) break;\n /* c2 */\n do {\n c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];\n } while (i < len && c2 == -1);\n if (c2 == -1) break;\n out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));\n /* c3 */\n do {\n c3 = str.charCodeAt(i++) & 0xff;\n if (c3 == 61) return out;\n c3 = base64DecodeChars[c3];\n } while (i < len && c3 == -1);\n if (c3 == -1) break;\n out += String.fromCharCode(((c2 & 0xf) << 4) | ((c3 & 0x3c) >> 2));\n /* c4 */\n do {\n c4 = str.charCodeAt(i++) & 0xff;\n if (c4 == 61) return out;\n c4 = base64DecodeChars[c4];\n } while (i < len && c4 == -1);\n if (c4 == -1) break;\n out += String.fromCharCode(((c3 & 0x03) << 6) | c4);\n }\n return out;\n}\n\nexport function safe64(base64) {\n base64 = base64.replace(/\\+/g, \"-\");\n base64 = base64.replace(/\\//g, \"_\");\n return base64;\n}\n","import fetch from \"./fetch\";\nimport { githubConfig, giteeConfig } from \"./config\";\nimport CryptoJS from \"crypto-js\";\nimport OSS from \"ali-oss\";\nimport COS from \"cos-js-sdk-v5\";\nimport Buffer from \"buffer-from\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport * as qiniu from \"qiniu-js\";\nimport { utf16to8, base64encode, safe64 } from \"../assets/scripts/tokenTools\";\n\nfunction getConfig(useDefault, platform) {\n if (useDefault) {\n // load default config file\n const config = platform === \"github\" ? githubConfig : giteeConfig;\n const { username, repoList, branch, accessTokenList } = config;\n\n // choose random token from access_token list\n const tokenIndex = Math.floor(Math.random() * accessTokenList.length);\n const accessToken = accessTokenList[tokenIndex].replace(\"doocsmd\", \"\");\n\n // choose random repo from repo list\n const repoIndex = Math.floor(Math.random() * repoList.length);\n const repo = repoList[repoIndex];\n\n return { username, repo, branch, accessToken };\n }\n\n // load configuration from localStorage\n const customConfig = JSON.parse(localStorage.getItem(`${platform}Config`));\n\n // split username/repo\n const repoUrl = customConfig.repo\n .replace(`https://${platform}.com/`, \"\")\n .replace(`http://${platform}.com/`, \"\")\n .replace(`${platform}.com/`, \"\")\n .split(\"/\");\n return {\n username: repoUrl[0],\n repo: repoUrl[1],\n branch: customConfig.branch || \"master\",\n accessToken: customConfig.accessToken,\n };\n}\n\nfunction getDir() {\n const date = new Date();\n const year = date.getFullYear();\n const month = (date.getMonth() + 1).toString().padStart(2, \"0\");\n const day = date.getDate().toString().padStart(2, \"0\");\n return `${year}/${month}/${day}`;\n}\n\nfunction getDateFilename(filename) {\n const currentTimestamp = new Date().getTime();\n const fileSuffix = filename.split(\".\")[1];\n return `${currentTimestamp}-${uuidv4()}.${fileSuffix}`;\n}\n\n//-----------------------------------------------------------------------\n// GitHub File Upload\n//-----------------------------------------------------------------------\n\nasync function ghFileUpload(content, filename) {\n const useDefault = localStorage.getItem(\"imgHost\") === \"default\";\n const { username, repo, branch, accessToken } = getConfig(\n useDefault,\n \"github\"\n );\n const dir = getDir();\n const url = `https://api.github.com/repos/${username}/${repo}/contents/${dir}/`;\n const dateFilename = getDateFilename(filename);\n const res = await fetch({\n url: url + dateFilename,\n method: \"put\",\n headers: {\n Authorization: `token ${accessToken}`,\n },\n data: {\n content,\n branch,\n message: `Upload by ${window.location.href}`,\n },\n });\n\n const githubResourceUrl = `raw.githubusercontent.com/${username}/${repo}/${branch}/`;\n const cdnResourceUrl = `cdn.jsdelivr.net/gh/${username}/${repo}@${branch}/`;\n return useDefault\n ? res.data.content.download_url.replace(githubResourceUrl, cdnResourceUrl)\n : res.data.content.download_url;\n}\n\n//-----------------------------------------------------------------------\n// Gitee File Upload\n//-----------------------------------------------------------------------\n\nasync function giteeUpload(content, filename) {\n const useDefault = localStorage.getItem(\"imgHost\") === \"default\";\n const { username, repo, branch, accessToken } = getConfig(\n useDefault,\n \"gitee\"\n );\n const dir = getDir();\n const dateFilename = getDateFilename(filename);\n const url = `https://gitee.com/api/v5/repos/${username}/${repo}/contents/${dir}/${dateFilename}`;\n const res = await fetch({\n url,\n method: \"POST\",\n data: {\n content,\n branch,\n access_token: accessToken,\n message: `Upload by ${window.location.href}`,\n },\n });\n return encodeURI(res.data.content.download_url);\n}\n\n//-----------------------------------------------------------------------\n// Qiniu File Upload\n//-----------------------------------------------------------------------\n\nfunction getQiniuToken(accessKey, secretKey, putPolicy) {\n const policy = JSON.stringify(putPolicy);\n const encoded = base64encode(utf16to8(policy));\n const hash = CryptoJS.HmacSHA1(encoded, secretKey);\n const encodedSigned = hash.toString(CryptoJS.enc.Base64);\n return `${accessKey}:${safe64(encodedSigned)}:${encoded}`;\n}\n\nasync function qiniuUpload(file) {\n const { accessKey, secretKey, bucket, region, path, domain } = JSON.parse(\n localStorage.getItem(\"qiniuConfig\")\n );\n const token = getQiniuToken(accessKey, secretKey, {\n scope: bucket,\n deadline: Math.trunc(new Date().getTime() / 1000) + 3600,\n });\n const dir = path ? `${path}/` : \"\";\n const dateFilename = dir + getDateFilename(file.name);\n const observable = qiniu.upload(file, dateFilename, token, {}, { region });\n return new Promise((resolve, reject) => {\n observable.subscribe({\n next: (result) => {\n console.log(result);\n },\n error: (err) => {\n reject(err.message);\n },\n complete: (result) => {\n resolve(`${domain}/${result.key}`);\n },\n });\n });\n}\n\n//-----------------------------------------------------------------------\n// AliOSS File Upload\n//-----------------------------------------------------------------------\n\nasync function aliOSSFileUpload(content, filename) {\n const dateFilename = getDateFilename(filename);\n const { region, bucket, accessKeyId, accessKeySecret, cdnHost, path } =\n JSON.parse(localStorage.getItem(\"aliOSSConfig\"));\n const buffer = Buffer(content, \"base64\");\n const dir = `${path}/${dateFilename}`;\n const client = new OSS({\n region,\n bucket,\n accessKeyId,\n accessKeySecret,\n });\n try {\n const res = await client.put(dir, buffer);\n if (cdnHost == \"\") return res.url;\n return `${cdnHost}/${path == \"\" ? dateFilename : dir}`;\n } catch (e) {\n return Promise.reject(e);\n }\n}\n\n//-----------------------------------------------------------------------\n// TxCOS File Upload\n//-----------------------------------------------------------------------\n\nasync function txCOSFileUpload(file) {\n const dateFilename = getDateFilename(file.name);\n const { secretId, secretKey, bucket, region, path, cdnHost } = JSON.parse(\n localStorage.getItem(\"txCOSConfig\")\n );\n const cos = new COS({\n SecretId: secretId,\n SecretKey: secretKey,\n });\n return new Promise((resolve, reject) => {\n cos.putObject(\n {\n Bucket: bucket,\n Region: region,\n Key: `${path}/${dateFilename}`,\n Body: file,\n },\n function (err, data) {\n if (err) {\n reject(err);\n } else if (cdnHost) {\n resolve(\n path == \"\"\n ? `${cdnHost}/${dateFilename}`\n : `${cdnHost}/${path}/${dateFilename}`\n );\n } else {\n resolve(`https://${data.Location}`);\n }\n }\n );\n });\n}\n\nfunction fileUpload(content, file) {\n const imgHost = localStorage.getItem(\"imgHost\");\n !imgHost && localStorage.setItem(\"imgHost\", \"default\");\n switch (imgHost) {\n case \"aliOSS\":\n return aliOSSFileUpload(content, file.name);\n case \"txCOS\":\n return txCOSFileUpload(file);\n case \"qiniu\":\n return qiniuUpload(file);\n case \"gitee\":\n return giteeUpload(content, file.name);\n case \"github\":\n return ghFileUpload(content, file.name);\n default:\n // return file.size / 1024 < 1024\n // ? giteeUpload(content, file.name)\n // : ghFileUpload(content, file.name);\n return ghFileUpload(content, file.name);\n }\n}\n\nexport default {\n fileUpload,\n};\n","\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n \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!./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=7acf9643&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=7acf9643&lang=less&scoped=true&\"\nimport style1 from \"./CodemirrorEditor.vue?vue&type=style&index=1&id=7acf9643&lang=less&scoped=true&\"\nimport style2 from \"./CodemirrorEditor.vue?vue&type=style&index=2&id=7acf9643&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 \"7acf9643\",\n null\n \n)\n\nexport default component.exports","\n \n \n \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!./index.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!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=8e90ad4c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=8e90ad4c&scoped=true&lang=css&\"\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 \"8e90ad4c\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport index from '@/pages/index/index'\n\nVue.use(VueRouter)\n\nconst routes = [\n {\n path: `/`,\n name: `index`,\n component: index,\n }\n]\n\nconst router = new VueRouter({\n mode: `history`,\n base: process.env.BASE_URL,\n routes,\n})\n\nexport default router\n","import Vue from \"vue\";\nimport App from \"./App\";\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/xq-light.css\";\nimport \"codemirror/mode/css/css\";\nimport \"codemirror/mode/markdown/markdown\";\nimport \"codemirror/addon/edit/closebrackets\";\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 router from './router';\n\nVue.use(ElementUI);\n\nVue.config.productionTip = false;\n\nApp.mpType = \"app\";\n\nconst app = new Vue({\n router,\n store,\n ...App,\n});\napp.$mount(\"#app\");\n","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/@vue/cli-service/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&id=4dd4e7e2&lang=less&scoped=true&\"","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/@vue/cli-service/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&id=7acf9643&lang=less&scoped=true&\"","export * from \"-!../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../node_modules/@vue/cli-service/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!./App.vue?vue&type=style&index=0&lang=less&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/@vue/cli-service/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=a704a2f8&lang=less&scoped=true&\"","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/@vue/cli-service/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=7acf9643&lang=less&scoped=true&\"","export * from \"-!../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../node_modules/@vue/cli-service/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!./App.vue?vue&type=style&index=1&lang=less&\"","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../node_modules/@vue/cli-service/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=2&id=7acf9643&lang=less&scoped=true&\"","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 }","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/@vue/cli-service/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!./aboutDialog.vue?vue&type=style&index=0&id=70c50907&lang=less&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&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/@vue/cli-service/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=fc5ed8b0&lang=less&scoped=true&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/@vue/cli-service/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=54b819f8&lang=less&scoped=true&\""],"sourceRoot":""}
\ No newline at end of file