{"version":3,"sources":["../node_modules/codemirror/mode lazy /^/.//.*/.js$/ groupOptions: {} namespace object","icon/Copy.js","icon/Down.js","icon/Environment.js","icon/GitHub.js","icon/Inbox.js","icon/More.js","icon/Rabbit.js","icon/Smile.js","icon/Mobile.js","icon/PC.js","icon/Wechat.js","icon/Zhihu.js","icon/Juejin.js","icon/Close.js","icon/FontCase.js","icon/Replace.js","icon/ReplaceAll.js","icon/index.js","utils/constant.js","component/ImageHosting/AliOSS.js","component/ImageHosting/QiniuOSS.js","store/imageHosting.js","utils/markdown-it-math.js","utils/markdown-it-span.js","utils/markdown-it-linkfoot.js","utils/markdown-it-imageflow.js","utils/langHighlight.js","utils/markdown-it-li.js","utils/helper.js","utils/markdown-it-removepre.js","utils/imageHosting.js","utils/appContext.js","component/Dialog/ImageDialog.js","component/Dialog/LinkDialog.js","component/Dialog/AboutDialog.js","component/Dialog/FormDialog.js","component/LocalHistory/index.js","component/LocalHistory/util.js","component/LocalHistory/indexdb.js","component/Dialog/HistoryDialog.js","utils/sitdownConverter.js","component/Dialog/SitDownDialog.js","layout/Dialog.js","component/MenuLeft/File/ExportMarkdown.js","component/MenuLeft/File/ExportPdf.js","component/MenuLeft/File/ImportFile.js","component/MenuLeft/File.js","component/MenuLeft/Help/About.js","component/MenuLeft/Help.js","utils/editorKeyEvents.js","utils/hotkey.js","component/MenuLeft/Pattern/Bold.js","component/MenuLeft/Pattern/Code.js","component/MenuLeft/Pattern/Del.js","component/MenuLeft/Pattern/Italic.js","component/MenuLeft/Pattern/Link.js","component/MenuLeft/Pattern/Form.js","component/MenuLeft/Pattern/Image.js","component/MenuLeft/Pattern/Format.js","component/MenuLeft/Pattern/LinkToFoot.js","component/MenuLeft/Pattern/Font.js","component/MenuLeft/Pattern/InlineCode.js","component/MenuLeft/Pattern.js","template/index.js","template/basic.js","template/markdown/blue.js","template/markdown/blueMountain.js","template/markdown/blueCyan.js","template/markdown/normal.js","template/markdown/custom.js","template/markdown/cyan.js","template/markdown/geekBlack.js","template/markdown/green.js","template/markdown/ink.js","template/markdown/orangeHeart.js","template/markdown/purple.js","template/markdown/red.js","template/markdown/scienceBlue.js","template/markdown/shanchui.js","template/markdown/simple.js","template/markdown/wechatFormat.js","template/markdown/rose.js","template/markdown/cuteGreen.js","template/markdown/fullStackBlue.js","template/markdown/nightPurple.js","template/markdown/extremeBlack.js","template/code/atomOneDark.js","template/code/atomOneLight.js","template/code/github.js","template/code/monokai.js","template/code/vs2015.js","template/code/xcode.js","template/macCode/macAtomOneDark.js","template/macCode/macAtomOneLight.js","template/macCode/macGithub.js","template/macCode/macMonokai.js","template/macCode/macVs2015.js","template/macCode/macXcode.js","component/MenuLeft/Function/Reset.js","component/MenuLeft/Function/Search.js","component/MenuLeft/Function/History.js","component/MenuLeft/Function/SitDown.js","component/MenuLeft/Function.js","component/MenuLeft/Theme.js","component/MenuLeft/CodeTheme.js","component/MenuLeft/Setting/SyncScroll.js","component/MenuLeft/Setting/ContainImgName.js","component/MenuLeft/Setting.js","component/MenuLeft/View/FullScreen.js","component/MenuLeft/View/EditArea.js","component/MenuLeft/View/PreviewArea.js","component/MenuLeft/View/ThemeArea.js","component/MenuLeft/View.js","layout/Navbar.js","component/Sidebar/PreviewType.js","utils/converter.js","component/Sidebar/Wechat.js","component/Sidebar/Zhihu.js","component/Sidebar/Juejin.js","layout/Sidebar.js","layout/StyleEditor.js","layout/EditorMenu.js","component/SearchBox/index.js","utils/pluginCenter.js","App.js","store/content.js","store/userInfo.js","store/navbar.js","store/dialog.js","store/view.js","Lib.js","serviceWorker.js","index.js"],"names":["map","./apl/apl.js","./asciiarmor/asciiarmor.js","./asn.1/asn.1.js","./asterisk/asterisk.js","./brainfuck/brainfuck.js","./clike/clike.js","./clojure/clojure.js","./cmake/cmake.js","./cobol/cobol.js","./coffeescript/coffeescript.js","./commonlisp/commonlisp.js","./crystal/crystal.js","./css/css.js","./cypher/cypher.js","./d/d.js","./dart/dart.js","./diff/diff.js","./django/django.js","./dockerfile/dockerfile.js","./dtd/dtd.js","./dylan/dylan.js","./ebnf/ebnf.js","./ecl/ecl.js","./eiffel/eiffel.js","./elm/elm.js","./erlang/erlang.js","./factor/factor.js","./fcl/fcl.js","./forth/forth.js","./fortran/fortran.js","./gas/gas.js","./gfm/gfm.js","./gherkin/gherkin.js","./go/go.js","./groovy/groovy.js","./haml/haml.js","./handlebars/handlebars.js","./haskell-literate/haskell-literate.js","./haskell/haskell.js","./haxe/haxe.js","./htmlembedded/htmlembedded.js","./htmlmixed/htmlmixed.js","./http/http.js","./idl/idl.js","./javascript/javascript.js","./jinja2/jinja2.js","./jsx/jsx.js","./julia/julia.js","./livescript/livescript.js","./lua/lua.js","./markdown/markdown.js","./mathematica/mathematica.js","./mbox/mbox.js","./meta.js","./mirc/mirc.js","./mllike/mllike.js","./modelica/modelica.js","./mscgen/mscgen.js","./mumps/mumps.js","./nginx/nginx.js","./nsis/nsis.js","./ntriples/ntriples.js","./octave/octave.js","./oz/oz.js","./pascal/pascal.js","./pegjs/pegjs.js","./perl/perl.js","./php/php.js","./pig/pig.js","./powershell/powershell.js","./properties/properties.js","./protobuf/protobuf.js","./pug/pug.js","./puppet/puppet.js","./python/python.js","./q/q.js","./r/r.js","./rpm/rpm.js","./rst/rst.js","./ruby/ruby.js","./rust/rust.js","./sas/sas.js","./sass/sass.js","./scheme/scheme.js","./shell/shell.js","./sieve/sieve.js","./slim/slim.js","./smalltalk/smalltalk.js","./smarty/smarty.js","./solr/solr.js","./soy/soy.js","./sparql/sparql.js","./spreadsheet/spreadsheet.js","./sql/sql.js","./stex/stex.js","./stylus/stylus.js","./swift/swift.js","./tcl/tcl.js","./textile/textile.js","./tiddlywiki/tiddlywiki.js","./tiki/tiki.js","./toml/toml.js","./tornado/tornado.js","./troff/troff.js","./ttcn-cfg/ttcn-cfg.js","./ttcn/ttcn.js","./turtle/turtle.js","./twig/twig.js","./vb/vb.js","./vbscript/vbscript.js","./velocity/velocity.js","./verilog/verilog.js","./vhdl/vhdl.js","./vue/vue.js","./webidl/webidl.js","./xml/xml.js","./xquery/xquery.js","./yacas/yacas.js","./yaml-frontmatter/yaml-frontmatter.js","./yaml/yaml.js","./z80/z80.js","webpackAsyncContext","req","ids","Promise","all","slice","__webpack_require__","e","then","id","t","resolve","Error","code","keys","Object","module","exports","Copy","fill","style","className","viewBox","react_default","a","createElement","xmlns","xmlnsXlink","d","p-id","Down","Environment","GitHub","Inbox","More","Rabbit","Smile","Mobile","PC","icon_Wechat","icon_Zhihu","icon_Juejin","Close","FontCase","Replace","ReplaceAll","props","name","SM_MS_PROXY","IS_CONTAIN_IMG_NAME","FONT_THEME_ID","LAYOUT_ID","IMAGE_HOSTING_NAMES","RIGHT_SYMBOL","ENTER_DELAY","LEAVE_DELAY","TEMPLATE_OPTIONS","author","isNew","TEMPLATE_CUSTOM_NUM","length","CODE_OPTIONS","macId","SITDOWN_OPTIONS","key","value","formItemLayout","labelCol","xs","span","wrapperCol","AliOSS","inject","observer","Component","constructor","super","this","regionChange","imageHosting","state","region","target","setState","localStorage","setItem","JSON","stringify","accessKeyIdChange","accessKeyId","accessKeySecretChange","accessKeySecret","bucketChange","bucket","parse","getItem","render","es_form","Item","label","formItem","input","onChange","placeholder","rel","href","marginBottom","Option","Select","QiniuOSS","accessKeyChange","accessKey","secretKeyChange","secretKey","linkChange","link","domain","namespaceChange","namespace","split","es_select","addonBefore","store","[object Object]","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","_descriptor8","observable","action","type","url","hostingUrl","hostingName","hostingList","push","window","alioss","qiniuoss","isValidDelim","pos","prevChar","nextChar","max","posMax","can_open","can_close","src","charCodeAt","math_inline","silent","start","match","token","pending","indexOf","markup","content","math_block","end","firstLine","lastLine","next","lastPos","found","bMarks","tShift","eMarks","trim","blkIndent","lastIndexOf","line","block","getLines","markdown_it_math","md","options","inline","ruler","after","alt","renderer","rules","tokens","idx","latex","displayMode","error","throwOnError","console","log","katexInline","katexBlock","slugify","s","spaceRegex","RegExp","utils","lib","ucmicro","Z","source","encodeURIComponent","replace","markdown_it_span","opts","defaults","anchorClass","addHeadingSpan","assign","core","i","headingInlineToken","spanTokenPre","Token","children","unshift","spanTokenPost","makeRule","renderFootnoteAnchorName","env","n","Number","meta","toString","prefix","docId","renderFootnoteCaption","subId","renderFootnoteWord","slf","renderFootnoteRef","footnote_caption","renderFootnoteBlockOpen","renderFootnoteBlockClose","renderFootnoteOpen","footnote_anchor_name","renderFootnoteClose","isSpace","linkFoot","attrs","res","ref","title","footnoteContent","parseReference","oldPos","labelStart","labelEnd","helpers","parseLinkLabel","parseLinkDestination","ok","normalizeLink","str","validateLink","parseLinkTitle","references","toUpperCase","footnotes","list","footnoteId","tokenize","footnoteTail","l","lastParagraph","current","currentLabel","insideRef","refTokens","filter","tok","concat","pop","footnote_ref","footnote_word","footnote_block_open","footnote_block_close","footnote_open","footnote_close","at","defaultOption","limitless","limit","imageFlowPlugin","opt","imageFlow","contents","wrappedContent","forEach","before","srcLine","exec","images","highlightjs","registerLanguage","bash","clojure","cpp","cs","css","dart","dockerfile","erlang","go","gradle","groovy","haskell","java","javascript","json","julia","kotlin","lisp","lua","makefile","markdown","matlab","objectivec","perl","php","python","r","ruby","rust","scala","shell","sql","swift","tex","typescript","verilog","vhdl","xml","yaml","diff","list_item_open","list_item_close","axios","create","baseURL","headers","Accept","Content-Type","axiosMdnice","markdownParserWechat","MarkdownIt","html","highlight","lang","lines","codeLines","numbers","join","use","markdownItSpan","oldFence","fence","old","preReg","pre","post","markdownItMath","markdownItLinkfoot","markdownItTableOfContents","transformLink","includeLevel","markerPattern","markdownItRuby","markdownItImplicitFigures","figcaption","markdownItDeflist","markdownItLiReplacer","markdownItImageFlow","markdownParser","getLanguage","escapeHtml","replaceStyle","document","getElementById","innerHTML","styleSheet","cssText","getElementsByTagName","appendChild","toBlob","base64","fileType","bytes","atob","u8arr","Uint8Array","Blob","dateFormat","date","fmt","o","M+","getMonth","d+","getDate","h+","getHours","m+","getMinutes","s+","getSeconds","q+","Math","floor","S","getMilliseconds","k","test","$1","getFullYear","substr","isPC","userAgentInfo","navigator","userAgent","Agents","flag","v","getOSSName","originName","names","suffix","Date","updateMathjax","MathJax","texReset","typesetClear","typesetPromise","isPlatformWindows","showUploadNoti","message","loading","uploadError","description","hideUploadNoti","destroy","success","writeToEditor","image","isContainImgName","text","filename","markdownEditor","cursor","getCursor","replaceSelection","setContent","getValue","aliOSSUpload","file","onSuccess","onError","config","base64Reader","FileReader","readAsDataURL","onload","urlData","result","shift","blob","bufferReader","readAsArrayBuffer","event","buffer","OSS","Buffer","client","OSSName","put","response","setTimeout","catch","aliOSSPutObject","uploadAdaptor","args","async","formData","FormData","append","postURL","encodeURI","data","customImageUpload","onProgress","withCredentials","onUploadProgress","total","loaded","percent","parseInt","round","toFixed","smmsUpload","get","conf","useCdnDomain","qiniu","imageObserver","err","complete","fname","params","mimeType","subscribe","qiniuOSSUpload","appContext","React","createContext","Dragger","Upload","TabPane","Tabs","ImageDialog_Option","ImageDialog","handleOk","navbar","dialog","setImageOpen","ch","setCursor","focus","handleCancel","customRequest","abort","typeChange","setType","columns","option","index","imageHostingSwitch","width","modal","okText","cancelText","visible","isImageOpen","onOk","onCancel","bodyStyle","paddingTop","utils_appContext","Consumer","useImageHosting","tabs","tabBarExtraContent","tab","multiple","src_icon","svgIcon","isAliyunOpen","ImageHosting_AliOSS","isQiniuyunOpen","ImageHosting_QiniuOSS","height","LinkDialog","getSelection","setLinkOpen","handleChange","isLinkOpen","AboutDialog","setAboutOpen","handleVersion","setVersionOpen","isAboutOpen","footer","es_button","onClick","headerMargin","noBorder","img","lineHeight","leftImgWidth","rightImgWidth","marginTop","color","padding","margin","marginLeft","display","border","FormDialog","buildRow","rowNum","columnNum","appendText","buildFormFormat","formFormat","initialState","setFormOpen","isFormOpen","input_number","min","defaultValue","NOOP","DiffMatchPath","LocalHistory","getDiffHtml","diff_linesToChars_","lineText1","chars1","lineText2","chars2","diffs","diff_main","diff_charsToLines_","lineArray","diff_prettyHtml","selectNav","selectedKeys","Content","documents","find","doc","String","handleModeChange","mode","react","menu","onSelect","SaveTime","toLocaleString","esm","readOnly","theme","lineWrapping","lineNumbers","dangerouslySetInnerHTML","__html","es_radio","Group","onEdit","defaultProps","saveTimeSort","b","getTime","setLocalDocuments","db","localDocuments","draftIndex","reject","transaction","objectStore","sort","add","onsuccess","onerror","setLocalDraft","draft","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","IndexDB","storeName","storeOptions","storeInit","request","open","initEvent","errorCode","onupgradeneeded","initStore","func","createObjectStore","HistoryDialog","timer","closeDialog","setHistoryOpen","editLocalDocument","autoSave","isRecent","DocumentID","documentID","setLocalDocumentMethod","overrideLocalDocuments","initIndexDB","componentWillUnmount","clearInterval","editor","indexDB","keyPath","autoIncrement","createIndex","unique","init","setInterval","on","debouce","keyRange","IDBKeyRange","only","openCursor","continue","getLocalDocuments","centered","isHistoryOpen","component_LocalHistory","empty","gfm","Sitdown","keepFilter","codeBlockStyle","juejin","bulletListMarker","hr","applyJuejinRule","wechat","applyWechatRule","zhihu","applyZhihuRule","csdn","methods","GFM","HTMLToMD","Juejin","Zhihu","Wechat","root","RootNode","footLinks","extraFootLinks","wechatToMD","CSDN","SitDownDialog_Option","TextArea","Input","SitDownDialog","platform","sourceCode","sourceCodeDom","DOMParser","parseFromString","articleDom","SitDownConverter","getElementsByClassName","setSitDownOpen","handlePlatform","handleSourceCode","isSitDownOpen","rows","Dialog","Dialog_ImageDialog","Dialog_LinkDialog","Dialog_AboutDialog","Dialog_FormDialog","Dialog_HistoryDialog","Dialog_SitDownDialog","ExportMarkdown","handleClick","eleLink","download","URL","createObjectURL","body","click","removeChild","warn","ExportPdf","print","ImportFile","files","reader","readAsText","htmlFor","accept","hidden","File_ExportMarkdown","File_ExportPdf","File_ImportFile","File","dropdown","overlay","trigger","overlayClassName","About","Help_About","Help","wrapChar","parseLinkToFoot","footReg","filterRes","val","comment","matchValue","newVal","handleWechatOuterLink","formatDoc","prettier","format","parser","plugins","prettierMarkdown","handlePrettierDoc","bold","selection","del","italic","inlineCode","handlePressHotkey","keyEvents","editorContent","hotKeys","form","linkToFoot","search","betterTab","cm","somethingSelected","indentSelection","getOption","Array","rightClick","oncontextmenu","element","oEvent","ev","scrollTop","documentElement","top","clientY","scrollLeft","left","clientX","onclick","bindHotkeys","Ctrl-B","Ctrl-U","Ctrl-I","Ctrl-Alt-C","Ctrl-Alt-V","Ctrl-Alt-1","Ctrl-Alt-2","Ctrl-Alt-3","Ctrl-K","Ctrl-Alt-I","Ctrl-Alt-T","Ctrl-Alt-S","Ctrl-Alt-L","Ctrl-Alt-F","Ctrl-F","setSearchOpen","isSearchOpen","Cmd-B","Cmd-U","Cmd-I","Cmd-Alt-C","Cmd-Alt-V","Cmd-Alt-1","Cmd-Alt-2","Cmd-Alt-3","Cmd-K","Cmd-Alt-I","Cmd-Alt-T","Cmd-Alt-S","Cmd-Alt-L","Cmd-Alt-F","Cmd-F","Bold","Code","Del","Italic","Link","showModal","Form","Image","Format","handleFormat","Font","toggleFont","isSerif","InlineCode","Pattern_Del","Pattern_Bold","Pattern_Italic","Pattern_Code","Pattern_InlineCode","Divider","Pattern_Link","Pattern_Form","Pattern_Image","Pattern_Font","LinkToFoot","Pattern_Format","Pattern","template","basic","blue","blueMountain","blueCyan","normal","custom","cyan","geekBlack","green","ink","orangeHeart","purple","red","scienceBlue","shanchui","simple","wechatFormat","rose","cuteGreen","fullStackBlue","nightPurple","extremeBlack","atomOneDark","atomOneLight","github","monokai","vs2015","xcode","macAtomOneDark","macAtomOneLight","macGithub","macMonokai","macVs2015","macXcode","Reset","showConfirm","Modal","confirm","okType","TEMPLATE","setStyle","setCustomStyle","setTemplateNum","Search","History","SitDownFunction","Function_Reset","Function_Search","Function_History","SitDown","Function","Theme","changeTemplate","item","view","setStyleEditorOpen","toggleStyleEditor","isStyleEditorOpen","templateNum","mdMenu","CodeTheme","changeCodeTheme","isMacCode","codeNum","setMacCode","setCodeNum","codeMenu","SyncScroll","isSyncScroll","setSyncScroll","setContainImgName","Setting_SyncScroll","ContainImgName","Setting","FullScreen","toggleFullScreen","docEl","requestFullScreen","requestFullscreen","mozRequestFullScreen","webkitRequestFullScreen","msRequestFullscreen","cancelFullScreen","exitFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","call","EditArea","isEditAreaOpen","setEditAreaOpen","PreviewArea","isPreviewAreaOpen","setPreviewAreaOpen","ThemeArea","View_FullScreen","View_EditArea","View_PreviewArea","View_ThemeArea","View","Navbar","isImmersiveEditing","niceNavbarClass","classnames","nice-navbar","nice-navbar-hide","MenuLeft_File","MenuLeft_Pattern","MenuLeft_Function","MenuLeft_View","component_MenuLeft_Theme","component_MenuLeft_CodeTheme","MenuLeft_Setting","MenuLeft_Help","PreviewType","setPreviewType","targetType","previewType","tooltip","placement","mouseEnterDelay","mouseLeaveDelay","solveWeChatMath","mjxs","mjx","hasAttribute","removeAttribute","svg","firstChild","getAttribute","solveZhihuMath","outerHTML","solveHtml","inner","setAttribute","basicStyle","innerText","markdownStyle","codeStyle","fontStyle","juice","inlineContent","inlinePseudoElements","preserveImportant","copySafari","position","zIndex","setSelectionRange","addEventListener","copyCall","preventDefault","clipboardData","setData","removeEventListener","execCommand","copyWechat","layout","copyZhihu","warning","copyJuejin","solveJuejinMath","juejinSuffix","Sidebar","niceSidebarClass","nice-sidebar","nice-sidebar-hide","component_Sidebar_Wechat","component_Sidebar_Zhihu","component_Sidebar_Juejin","component_Sidebar_PreviewType","StyleEditor","getStyleInstance","instance","styleEditor","keyCode","showHint","completeSingle","changeStyle","handleFocus","handleBlur","keyMap","onFocus","onBlur","EditorMenu","WrappedButton","undefined","tipText","icon","SearchBox","posChange","direction","clearMarks","searchText","atOccurrence","handleCaseFold","prevState","caseFold","getSearchCursor","handleScroll","offset","getScrollInfo","scrollTo","isReplaceOpen","componentDidMount","searchRef","setSelection","findContent","from","to","scrollIntoView","replaceText","replaceAll","searchReg","replaced","handelFoldClick","handleClose","createRef","data-replace","size","onPressEnter","pluginCenter","mathjax","App","setCustomImageHosting","isSmmsOpen","setHostingUrl","setHostingName","addImageHosting","setEditorContent","defaultText","solveScreenChange","setImmersiveEditing","getInstance","setMarkdownEditor","cmData","editorToTop","editorScrollHeight","clientHeight","scale","previewWrap","offsetHeight","previewContainer","editorTop","onTextChange","handleDrop","dataTransfer","handlePaste","handleUpdateMathjax","throttle","inlineMath","displayMath","tags","fontCache","renderActions","addMenu","addContainer","math","require","componentDidUpdate","setCurrentIndex","spanClass","cls","typesetRoot","adaptor","node","class","parseHtml","mdEditingClass","nice-md-editing","nice-md-editing-immersive","nice-md-editing-hide","styleEditingClass","nice-style-editing","nice-style-editing-hide","richTextClass","nice-marked-text","nice-marked-text-pc","nice-marked-text-hide","richTextBoxClass","nice-wx-box","nice-wx-box-pc","textContainerClass","nice-text-container","nice-text-container-immersive","defaultTitle","src_layout_Navbar","onMouseOver","component_SearchBox","extraKeys","Tab","RightClick","onScroll","onDrop","onPaste","src_layout_Sidebar","data-tool","data-website","layout_StyleEditor","layout_Dialog","src_layout_EditorMenu","content_initializerDefineProperty","content_descriptor","content_descriptor2","content_descriptor3","content_descriptor4","content_descriptor5","content_descriptor6","content_descriptor7","userInfo","userInfo_initializerDefineProperty","userInfo_descriptor","userInfo_descriptor2","userInfo_descriptor3","userInfo_descriptor4","userRepoList","userRepo","navbar_initializerDefineProperty","navbar_descriptor","navbar_descriptor2","navbar_descriptor3","navbar_descriptor4","navbar_descriptor5","navbar_descriptor6","navbar_descriptor7","navbar_descriptor8","_descriptor9","_descriptor10","_descriptor11","_descriptor12","navbar_macId","navbar_id","dialog_initializerDefineProperty","dialog_descriptor","dialog_descriptor2","dialog_descriptor3","dialog_descriptor4","dialog_descriptor5","dialog_descriptor6","dialog_descriptor7","dialog_descriptor8","dialog_descriptor9","dialog_descriptor10","dialog_descriptor11","dialog_descriptor12","_descriptor13","_descriptor14","_descriptor15","_descriptor16","isVersionOpen","view_initializerDefineProperty","view_descriptor","view_descriptor2","view_descriptor3","view_descriptor4","view_descriptor5","view_descriptor6","view_descriptor7","view_descriptor8","Lib","getWeChatHtml","getZhihuHtml","appCtx","index_module","Provider","src_App_0","es_result","subTitle","extra","propTypes","PropTypes","string","shape","bool","isLocalhost","Boolean","location","hostname","registerValidSW","swUrl","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","onUpdate","ReactDOM","src_Lib","process","origin","fetch","contentType","status","ready","unregister","reload","checkValidServiceWorker"],"mappings":"mLAAA,IAAAA,EAAA,CACAC,eAAA,CACA,IACA,IAEAC,6BAAA,CACA,IACA,IAEAC,mBAAA,CACA,IACA,IAEAC,yBAAA,CACA,IACA,IAEAC,2BAAA,CACA,IACA,IAEAC,mBAAA,CACA,IACA,GAEAC,uBAAA,CACA,IACA,IAEAC,mBAAA,CACA,IACA,IAEAC,mBAAA,CACA,IACA,IAEAC,iCAAA,CACA,IACA,IAEAC,6BAAA,CACA,IACA,IAEAC,uBAAA,CACA,IACA,IAEAC,eAAA,CACA,KAEAC,qBAAA,CACA,IACA,IAEAC,WAAA,CACA,IACA,IAEAC,iBAAA,CACA,IACA,EACA,IAEAC,iBAAA,CACA,IACA,IAEAC,qBAAA,CACA,IACA,EACA,IAEAC,6BAAA,CACA,IACA,IAEAC,eAAA,CACA,IACA,IAEAC,mBAAA,CACA,IACA,IAEAC,iBAAA,CACA,IACA,IAEAC,eAAA,CACA,IACA,IAEAC,qBAAA,CACA,IACA,IAEAC,eAAA,CACA,IACA,IAEAC,qBAAA,CACA,IACA,IAEAC,qBAAA,CACA,IACA,IAEAC,eAAA,CACA,IACA,IAEAC,mBAAA,CACA,IACA,IAEAC,uBAAA,CACA,IACA,IAEAC,eAAA,CACA,IACA,IAEAC,eAAA,CACA,IACA,EACA,IAEAC,uBAAA,CACA,IACA,IAEAC,aAAA,CACA,IACA,IAEAC,qBAAA,CACA,IACA,IAEAC,iBAAA,CACA,IACA,EACA,IAEAC,6BAAA,CACA,IACA,IAEAC,yCAAA,CACA,IACA,IAEAC,uBAAA,CACA,IACA,IAEAC,iBAAA,CACA,IACA,IAEAC,iCAAA,CACA,IACA,EACA,GAEAC,2BAAA,CACA,IACA,EACA,IAEAC,iBAAA,CACA,IACA,IAEAC,eAAA,CACA,IACA,IAEAC,6BAAA,CACA,IACA,GAEAC,qBAAA,CACA,IACA,IAEAC,eAAA,CACA,IACA,EACA,IAEAC,mBAAA,CACA,IACA,IAEAC,6BAAA,CACA,IACA,IAEAC,eAAA,CACA,IACA,IAEAC,yBAAA,CACA,IACA,GAEAC,+BAAA,CACA,IACA,IAEAC,iBAAA,CACA,IACA,IAEAC,YAAA,CACA,KAEAC,iBAAA,CACA,IACA,IAEAC,qBAAA,CACA,IACA,IAEAC,yBAAA,CACA,IACA,IAEAC,qBAAA,CACA,IACA,IAEAC,mBAAA,CACA,IACA,IAEAC,mBAAA,CACA,IACA,IAEAC,iBAAA,CACA,IACA,IAEAC,yBAAA,CACA,IACA,IAEAC,qBAAA,CACA,IACA,IAEAC,aAAA,CACA,IACA,IAEAC,qBAAA,CACA,IACA,IAEAC,mBAAA,CACA,IACA,EACA,IAEAC,iBAAA,CACA,IACA,IAEAC,eAAA,CACA,IACA,EACA,EACA,IAEAC,eAAA,CACA,IACA,IAEAC,6BAAA,CACA,IACA,IAEAC,6BAAA,CACA,IACA,IAEAC,yBAAA,CACA,IACA,IAEAC,eAAA,CACA,IACA,EACA,GAEAC,qBAAA,CACA,IACA,IAEAC,qBAAA,CACA,IACA,IAEAC,WAAA,CACA,IACA,IAEAC,WAAA,CACA,IACA,IAEAC,eAAA,CACA,IACA,IAEAC,eAAA,CACA,IACA,IAEAC,iBAAA,CACA,IACA,IAEAC,iBAAA,CACA,IACA,IAEAC,eAAA,CACA,IACA,IAEAC,iBAAA,CACA,IACA,IAEAC,qBAAA,CACA,IACA,IAEAC,mBAAA,CACA,IACA,IAEAC,mBAAA,CACA,IACA,IAEAC,iBAAA,CACA,IACA,EACA,IAEAC,2BAAA,CACA,IACA,IAEAC,qBAAA,CACA,IACA,IAEAC,iBAAA,CACA,IACA,IAEAC,eAAA,CACA,IACA,EACA,IAEAC,qBAAA,CACA,IACA,IAEAC,+BAAA,CACA,IACA,IAEAC,eAAA,CACA,IACA,IAEAC,iBAAA,CACA,IACA,KAEAC,qBAAA,CACA,IACA,GAEAC,mBAAA,CACA,IACA,KAEAC,eAAA,CACA,IACA,KAEAC,uBAAA,CACA,IACA,KAEAC,6BAAA,CACA,IACA,KAEAC,iBAAA,CACA,IACA,KAEAC,iBAAA,CACA,IACA,KAEAC,uBAAA,CACA,IACA,EACA,IAEAC,mBAAA,CACA,IACA,KAEAC,yBAAA,CACA,IACA,KAEAC,iBAAA,CACA,IACA,KAEAC,qBAAA,CACA,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","file":"static/js/main.501e0a1c.chunk.js","sourcesContent":["var map = {\n\t\"./apl/apl.js\": [\n\t\t667,\n\t\t28\n\t],\n\t\"./asciiarmor/asciiarmor.js\": [\n\t\t668,\n\t\t29\n\t],\n\t\"./asn.1/asn.1.js\": [\n\t\t669,\n\t\t30\n\t],\n\t\"./asterisk/asterisk.js\": [\n\t\t670,\n\t\t31\n\t],\n\t\"./brainfuck/brainfuck.js\": [\n\t\t671,\n\t\t32\n\t],\n\t\"./clike/clike.js\": [\n\t\t656,\n\t\t1\n\t],\n\t\"./clojure/clojure.js\": [\n\t\t672,\n\t\t33\n\t],\n\t\"./cmake/cmake.js\": [\n\t\t673,\n\t\t34\n\t],\n\t\"./cobol/cobol.js\": [\n\t\t674,\n\t\t35\n\t],\n\t\"./coffeescript/coffeescript.js\": [\n\t\t657,\n\t\t36\n\t],\n\t\"./commonlisp/commonlisp.js\": [\n\t\t675,\n\t\t37\n\t],\n\t\"./crystal/crystal.js\": [\n\t\t676,\n\t\t38\n\t],\n\t\"./css/css.js\": [\n\t\t155\n\t],\n\t\"./cypher/cypher.js\": [\n\t\t677,\n\t\t39\n\t],\n\t\"./d/d.js\": [\n\t\t678,\n\t\t40\n\t],\n\t\"./dart/dart.js\": [\n\t\t679,\n\t\t1,\n\t\t41\n\t],\n\t\"./diff/diff.js\": [\n\t\t680,\n\t\t42\n\t],\n\t\"./django/django.js\": [\n\t\t681,\n\t\t0,\n\t\t10\n\t],\n\t\"./dockerfile/dockerfile.js\": [\n\t\t682,\n\t\t20\n\t],\n\t\"./dtd/dtd.js\": [\n\t\t683,\n\t\t43\n\t],\n\t\"./dylan/dylan.js\": [\n\t\t684,\n\t\t44\n\t],\n\t\"./ebnf/ebnf.js\": [\n\t\t685,\n\t\t45\n\t],\n\t\"./ecl/ecl.js\": [\n\t\t686,\n\t\t46\n\t],\n\t\"./eiffel/eiffel.js\": [\n\t\t687,\n\t\t47\n\t],\n\t\"./elm/elm.js\": [\n\t\t688,\n\t\t48\n\t],\n\t\"./erlang/erlang.js\": [\n\t\t689,\n\t\t49\n\t],\n\t\"./factor/factor.js\": [\n\t\t690,\n\t\t21\n\t],\n\t\"./fcl/fcl.js\": [\n\t\t691,\n\t\t50\n\t],\n\t\"./forth/forth.js\": [\n\t\t692,\n\t\t51\n\t],\n\t\"./fortran/fortran.js\": [\n\t\t693,\n\t\t52\n\t],\n\t\"./gas/gas.js\": [\n\t\t694,\n\t\t53\n\t],\n\t\"./gfm/gfm.js\": [\n\t\t695,\n\t\t3,\n\t\t19\n\t],\n\t\"./gherkin/gherkin.js\": [\n\t\t696,\n\t\t54\n\t],\n\t\"./go/go.js\": [\n\t\t697,\n\t\t55\n\t],\n\t\"./groovy/groovy.js\": [\n\t\t698,\n\t\t56\n\t],\n\t\"./haml/haml.js\": [\n\t\t699,\n\t\t0,\n\t\t13\n\t],\n\t\"./handlebars/handlebars.js\": [\n\t\t658,\n\t\t15\n\t],\n\t\"./haskell-literate/haskell-literate.js\": [\n\t\t700,\n\t\t24\n\t],\n\t\"./haskell/haskell.js\": [\n\t\t659,\n\t\t57\n\t],\n\t\"./haxe/haxe.js\": [\n\t\t701,\n\t\t58\n\t],\n\t\"./htmlembedded/htmlembedded.js\": [\n\t\t702,\n\t\t0,\n\t\t9\n\t],\n\t\"./htmlmixed/htmlmixed.js\": [\n\t\t653,\n\t\t0,\n\t\t25\n\t],\n\t\"./http/http.js\": [\n\t\t703,\n\t\t59\n\t],\n\t\"./idl/idl.js\": [\n\t\t704,\n\t\t60\n\t],\n\t\"./javascript/javascript.js\": [\n\t\t654,\n\t\t0\n\t],\n\t\"./jinja2/jinja2.js\": [\n\t\t705,\n\t\t61\n\t],\n\t\"./jsx/jsx.js\": [\n\t\t706,\n\t\t0,\n\t\t26\n\t],\n\t\"./julia/julia.js\": [\n\t\t707,\n\t\t62\n\t],\n\t\"./livescript/livescript.js\": [\n\t\t708,\n\t\t63\n\t],\n\t\"./lua/lua.js\": [\n\t\t709,\n\t\t64\n\t],\n\t\"./markdown/markdown.js\": [\n\t\t664,\n\t\t3\n\t],\n\t\"./mathematica/mathematica.js\": [\n\t\t710,\n\t\t65\n\t],\n\t\"./mbox/mbox.js\": [\n\t\t711,\n\t\t66\n\t],\n\t\"./meta.js\": [\n\t\t156\n\t],\n\t\"./mirc/mirc.js\": [\n\t\t712,\n\t\t67\n\t],\n\t\"./mllike/mllike.js\": [\n\t\t713,\n\t\t68\n\t],\n\t\"./modelica/modelica.js\": [\n\t\t714,\n\t\t69\n\t],\n\t\"./mscgen/mscgen.js\": [\n\t\t715,\n\t\t70\n\t],\n\t\"./mumps/mumps.js\": [\n\t\t716,\n\t\t71\n\t],\n\t\"./nginx/nginx.js\": [\n\t\t717,\n\t\t72\n\t],\n\t\"./nsis/nsis.js\": [\n\t\t718,\n\t\t22\n\t],\n\t\"./ntriples/ntriples.js\": [\n\t\t719,\n\t\t73\n\t],\n\t\"./octave/octave.js\": [\n\t\t720,\n\t\t74\n\t],\n\t\"./oz/oz.js\": [\n\t\t721,\n\t\t75\n\t],\n\t\"./pascal/pascal.js\": [\n\t\t722,\n\t\t76\n\t],\n\t\"./pegjs/pegjs.js\": [\n\t\t723,\n\t\t0,\n\t\t77\n\t],\n\t\"./perl/perl.js\": [\n\t\t724,\n\t\t78\n\t],\n\t\"./php/php.js\": [\n\t\t725,\n\t\t0,\n\t\t1,\n\t\t16\n\t],\n\t\"./pig/pig.js\": [\n\t\t726,\n\t\t79\n\t],\n\t\"./powershell/powershell.js\": [\n\t\t727,\n\t\t80\n\t],\n\t\"./properties/properties.js\": [\n\t\t728,\n\t\t81\n\t],\n\t\"./protobuf/protobuf.js\": [\n\t\t729,\n\t\t82\n\t],\n\t\"./pug/pug.js\": [\n\t\t665,\n\t\t0,\n\t\t2\n\t],\n\t\"./puppet/puppet.js\": [\n\t\t730,\n\t\t83\n\t],\n\t\"./python/python.js\": [\n\t\t660,\n\t\t84\n\t],\n\t\"./q/q.js\": [\n\t\t731,\n\t\t85\n\t],\n\t\"./r/r.js\": [\n\t\t732,\n\t\t86\n\t],\n\t\"./rpm/rpm.js\": [\n\t\t733,\n\t\t87\n\t],\n\t\"./rst/rst.js\": [\n\t\t734,\n\t\t12\n\t],\n\t\"./ruby/ruby.js\": [\n\t\t655,\n\t\t88\n\t],\n\t\"./rust/rust.js\": [\n\t\t735,\n\t\t23\n\t],\n\t\"./sas/sas.js\": [\n\t\t736,\n\t\t89\n\t],\n\t\"./sass/sass.js\": [\n\t\t662,\n\t\t90\n\t],\n\t\"./scheme/scheme.js\": [\n\t\t737,\n\t\t91\n\t],\n\t\"./shell/shell.js\": [\n\t\t738,\n\t\t92\n\t],\n\t\"./sieve/sieve.js\": [\n\t\t739,\n\t\t93\n\t],\n\t\"./slim/slim.js\": [\n\t\t740,\n\t\t0,\n\t\t14\n\t],\n\t\"./smalltalk/smalltalk.js\": [\n\t\t741,\n\t\t94\n\t],\n\t\"./smarty/smarty.js\": [\n\t\t742,\n\t\t95\n\t],\n\t\"./solr/solr.js\": [\n\t\t743,\n\t\t96\n\t],\n\t\"./soy/soy.js\": [\n\t\t744,\n\t\t0,\n\t\t17\n\t],\n\t\"./sparql/sparql.js\": [\n\t\t745,\n\t\t97\n\t],\n\t\"./spreadsheet/spreadsheet.js\": [\n\t\t746,\n\t\t98\n\t],\n\t\"./sql/sql.js\": [\n\t\t747,\n\t\t99\n\t],\n\t\"./stex/stex.js\": [\n\t\t661,\n\t\t100\n\t],\n\t\"./stylus/stylus.js\": [\n\t\t666,\n\t\t4\n\t],\n\t\"./swift/swift.js\": [\n\t\t748,\n\t\t101\n\t],\n\t\"./tcl/tcl.js\": [\n\t\t749,\n\t\t102\n\t],\n\t\"./textile/textile.js\": [\n\t\t750,\n\t\t103\n\t],\n\t\"./tiddlywiki/tiddlywiki.js\": [\n\t\t751,\n\t\t104\n\t],\n\t\"./tiki/tiki.js\": [\n\t\t752,\n\t\t105\n\t],\n\t\"./toml/toml.js\": [\n\t\t753,\n\t\t106\n\t],\n\t\"./tornado/tornado.js\": [\n\t\t754,\n\t\t0,\n\t\t11\n\t],\n\t\"./troff/troff.js\": [\n\t\t755,\n\t\t107\n\t],\n\t\"./ttcn-cfg/ttcn-cfg.js\": [\n\t\t757,\n\t\t108\n\t],\n\t\"./ttcn/ttcn.js\": [\n\t\t756,\n\t\t109\n\t],\n\t\"./turtle/turtle.js\": [\n\t\t758,\n\t\t110\n\t],\n\t\"./twig/twig.js\": [\n\t\t759,\n\t\t18\n\t],\n\t\"./vb/vb.js\": [\n\t\t760,\n\t\t111\n\t],\n\t\"./vbscript/vbscript.js\": [\n\t\t761,\n\t\t112\n\t],\n\t\"./velocity/velocity.js\": [\n\t\t762,\n\t\t113\n\t],\n\t\"./verilog/verilog.js\": [\n\t\t763,\n\t\t114\n\t],\n\t\"./vhdl/vhdl.js\": [\n\t\t764,\n\t\t115\n\t],\n\t\"./vue/vue.js\": [\n\t\t765,\n\t\t0,\n\t\t4,\n\t\t2,\n\t\t8\n\t],\n\t\"./webidl/webidl.js\": [\n\t\t766,\n\t\t116\n\t],\n\t\"./xml/xml.js\": [\n\t\t652,\n\t\t117\n\t],\n\t\"./xquery/xquery.js\": [\n\t\t767,\n\t\t118\n\t],\n\t\"./yacas/yacas.js\": [\n\t\t768,\n\t\t119\n\t],\n\t\"./yaml-frontmatter/yaml-frontmatter.js\": [\n\t\t769,\n\t\t27\n\t],\n\t\"./yaml/yaml.js\": [\n\t\t663,\n\t\t120\n\t],\n\t\"./z80/z80.js\": [\n\t\t770,\n\t\t121\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\tvar id = ids[0];\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 302;\nmodule.exports = webpackAsyncContext;","import React from \"react\";\nimport \"./index.css\";\n\nexport default ({fill = \"rgba(0,0,0,0.65)\", style = {}, className = \"icon\", viewBox = \"0 0 1024 1024\"}) => (\n \n \n \n);\n","import React from \"react\";\nimport \"./index.css\";\n\nexport default ({style = {}, className = \"icon\", viewBox = \"0 0 1024 1024\"}) => (\n \n \n \n \n);\n","import React from \"react\";\nimport \"./index.css\";\n\nexport default ({fill = \"#1890ff\", style = {}, className = \"icon\", viewBox = \"0 0 1024 1024\"}) => (\n \n \n \n);\n","import React from \"react\";\nimport \"./index.css\";\n\nexport default ({fill = \"rgba(0,0,0,0.65)\", style = {}, className = \"icon\", viewBox = \"0 0 1024 1024\"}) => (\n \n \n \n);\n","import React from \"react\";\nimport \"./index.css\";\n\nexport default ({fill = \"rgba(0,0,0,0.65)\", style = {}, className = \"icon\", viewBox = \"0 0 1024 1024\"}) => (\n \n \n \n);\n","import React from \"react\";\nimport \"./index.css\";\n\nexport default ({fill = \"#1890ff\", style = {}, className = \"icon\", viewBox = \"0 0 1024 1024\"}) => (\n \n \n \n);\n","import React from \"react\";\nimport \"./index.css\";\n\nexport default ({fill = \"#333333\", style = {}, className = \"icon\", viewBox = \"0 0 1024 1024\"}) => (\n \n \n \n \n \n \n \n);\n","import React from \"react\";\nimport \"./index.css\";\n\nexport default ({fill = \"rgba(0,0,0,0.65)\", style = {}, className = \"icon\", viewBox = \"0 0 1024 1024\"}) => (\n \n \n \n \n \n);\n","import React from \"react\";\nimport \"./index.css\";\n\nexport default ({fill = \"rgba(0,0,0,0.65)\", style = {}, className = \"icon\", viewBox = \"0 0 1024 1024\"}) => (\n \n \n \n);\n","import React from \"react\";\nimport \"./index.css\";\n\nexport default ({fill = \"rgba(0,0,0,0.65)\", style = {}, className = \"icon\", viewBox = \"0 0 1024 1024\"}) => (\n \n \n \n);\n","import React from \"react\";\nimport \"./index.css\";\n\nexport default ({fill = \"rgba(0,0,0,0.65)\", style = {}, className = \"icon\", viewBox = \"0 0 40 40\"}) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n","import React from \"react\";\nimport \"./index.css\";\n\nexport default ({fill = \"rgba(0,0,0,0.65)\", style = {}, className = \"icon\", viewBox = \"0 0 1024 1024\"}) => (\n \n \n \n);\n","import React from \"react\";\nimport \"./index.css\";\n\nexport default ({fill = \"rgba(0,0,0,0.65)\", style = {}, className = \"icon\", viewBox = \"0 0 1024 1024\"}) => (\n \n \n \n);\n","import React from \"react\";\nimport \"./index.css\";\n\nexport default ({fill = \"rgba(0,0,0,0.65)\", style = {}, className = \"icon\", viewBox = \"0 0 1024 1024\"}) => (\n \n \n \n);\n","import React from \"react\";\nimport \"./index.css\";\n\nexport default ({fill = \"rgba(0,0,0,0.65)\", style = {}, className = \"icon\", viewBox = \"0 0 1024 1024\"}) => (\n \n \n \n);\n","import React from \"react\";\nimport \"./index.css\";\n\nexport default ({fill = \"rgba(0,0,0,0.65)\", style = {}, className = \"icon\", viewBox = \"0 0 1024 1024\"}) => (\n \n \n \n);\n","import React from \"react\";\nimport \"./index.css\";\n\nexport default ({fill = \"rgba(0,0,0,0.65)\", style = {}, className = \"icon\", viewBox = \"0 0 1024 1024\"}) => (\n \n \n \n);\n","import React from \"react\";\n\nimport Copy from \"./Copy\";\nimport Down from \"./Down\";\nimport Environment from \"./Environment\";\nimport GitHub from \"./GitHub\";\nimport Inbox from \"./Inbox\";\nimport More from \"./More\";\nimport Rabbit from \"./Rabbit\";\nimport Smile from \"./Smile\";\nimport Mobile from \"./Mobile\";\nimport PC from \"./PC\";\nimport Wechat from \"./Wechat\";\nimport Zhihu from \"./Zhihu\";\nimport Juejin from \"./Juejin\";\nimport Close from \"./Close\";\nimport FontCase from \"./FontCase\";\nimport Replace from \"./Replace\";\nimport ReplaceAll from \"./ReplaceAll\";\n\nexport default (props) => {\n switch (props.name) {\n case \"copy\":\n return ;\n case \"down\":\n return ;\n case \"environment\":\n return ;\n case \"github\":\n return ;\n case \"inbox\":\n return ;\n case \"more\":\n return ;\n case \"rabbit\":\n return ;\n case \"smile\":\n return ;\n case \"pc\":\n return ;\n case \"mobile\":\n return ;\n case \"wechat\":\n return ;\n case \"zhihu\":\n return ;\n case \"juejin\":\n return ;\n case \"close\":\n return ;\n case \"fontCase\":\n return ;\n case \"replace\":\n return ;\n case \"replaceAll\":\n return ;\n default:\n return ;\n }\n};\n","export const CLIENT_ID = process.env.NODE_ENV === \"development\" ? \"e791aa2a7a64b3f766a2\" : \"b3a3c46bd66318367efa\";\nexport const CLIENT_SECRET =\n process.env.NODE_ENV === \"development\"\n ? \"e80cde65c7071286086077892f3336bc2a3f4576\"\n : \"dfd9fdc1da6a6b10e473280bf0a379513f1d154d\";\n\nexport const PROXY = \"https://cors-anywhere.herokuapp.com/https://github.com/login/oauth/access_token\";\nexport const SM_MS_PROXY = \"https://cors-anywhere.herokuapp.com/https://sm.ms/api/upload\";\nexport const ACCESS_TOKEN = \"ACCESS_TOKEN\";\nexport const MJX_DATA_FORMULA = \"data-formula\";\nexport const MJX_DATA_FORMULA_TYPE = \"data-formula-type\";\n\nexport const CONTENT = \"content\";\nexport const STYLE = \"style\";\nexport const TEMPLATE_NUM = \"template_num\";\nexport const CODE_NUM = \"code_num\";\nexport const PREVIEW_TYPE = \"preview_type\";\nexport const IS_SYNC_SCROLL = \"is_sync_scroll\";\nexport const IS_CONTAIN_IMG_NAME = \"is_contain_img_name\";\nexport const IS_MAC_CODE = \"is_mac_code\";\nexport const NEWEST_VERSION = \"newest_version\";\nexport const ALIOSS_IMAGE_HOSTING = \"alioss_image_hosting\";\nexport const QINIUOSS_IMAGE_HOSTING = \"qiniuoss_image_hosting\";\nexport const IMAGE_HOSTING_TYPE = \"image_hosting_type\";\nexport const BASIC_THEME_ID = \"basic-theme\";\nexport const CODE_THEME_ID = \"code-theme\";\nexport const MARKDOWN_THEME_ID = \"markdown-theme\";\nexport const FONT_THEME_ID = \"font-theme\";\nexport const LAYOUT_ID = \"nice\";\nexport const BOX_ID = \"nice-rich-text-box\";\nexport const IMAGE_HOSTING_NAMES = {\n smms: \"SM.MS\",\n aliyun: \"阿里云\",\n qiniuyun: \"七牛云\",\n};\n\nexport const RIGHT_SYMBOL = \"✔️\";\nexport const EXPORT_FILENAME_SUFFIX = \".md\";\n\nexport const STYLE_LABELS = [\"basic-theme\", \"markdown-theme\", \"code-theme\", \"font-theme\"];\n\nexport const ENTER_DELAY = 0.5;\nexport const LEAVE_DELAY = 0.0;\n\nexport const TEMPLATE_OPTIONS = [\n {\n id: \"normal\",\n name: \"默认主题\",\n author: \"zhning12\",\n },\n {\n id: \"shanchui\",\n name: \"山吹\",\n author: \"ElyhG\",\n },\n {\n id: \"rose\",\n name: \"蔷薇紫\",\n author: \"HeyRain\",\n },\n {\n id: \"fullStackBlue\",\n name: \"全栈蓝\",\n author: \"Nealyang\",\n },\n {\n id: \"nightPurple\",\n name: \"凝夜紫\",\n author: \"童欧巴\",\n isNew: true,\n },\n {\n id: \"cuteGreen\",\n name: \"萌绿\",\n author: \"koala\",\n },\n {\n id: \"extremeBlack\",\n name: \"极简黑\",\n author: \"小鱼\",\n isNew: true,\n },\n {\n id: \"orangeHeart\",\n name: \"橙心\",\n author: \"zhning12\",\n },\n {\n id: \"ink\",\n name: \"墨黑\",\n author: \"Mayandev\",\n },\n {\n id: \"purple\",\n name: \"姹紫\",\n author: \"djmaxwow\",\n },\n {\n id: \"green\",\n name: \"绿意\",\n author: \"夜尽天明\",\n },\n {\n id: \"cyan\",\n name: \"嫩青\",\n author: \"画手\",\n },\n {\n id: \"wechatFormat\",\n name: \"WeChat-Format\",\n author: \"画手\",\n },\n {\n id: \"blueCyan\",\n name: \"兰青\",\n author: \"Krahets\",\n },\n {\n id: \"blueMountain\",\n name: \"前端之巅同款\",\n author: \"HeyRain\",\n },\n {\n id: \"geekBlack\",\n name: \"极客黑\",\n author: \"hyper-xx\",\n },\n {\n id: \"red\",\n name: \"红绯\",\n author: \"HeyRain\",\n },\n {\n id: \"blue\",\n name: \"蓝莹\",\n author: \"谭淞宸\",\n },\n {\n id: \"scienceBlue\",\n name: \"科技蓝\",\n author: \"夜尽天明\",\n },\n {\n id: \"simple\",\n name: \"简\",\n author: \"aco\",\n },\n {\n id: \"custom\",\n name: \"自定义\",\n author: \"\",\n },\n];\n\nexport const TEMPLATE_CUSTOM_NUM = TEMPLATE_OPTIONS.length - 1;\n\nexport const CODE_OPTIONS = [\n {\n id: \"wechat\",\n name: \"微信代码主题\",\n },\n {\n id: \"atomOneDark\",\n macId: \"macAtomOneDark\",\n name: \"atom-one-dark\",\n },\n {\n id: \"atomOneLight\",\n macId: \"macAtomOneLight\",\n name: \"atom-one-light\",\n },\n {\n id: \"monokai\",\n macId: \"macMonokai\",\n name: \"monokai\",\n },\n {\n id: \"github\",\n macId: \"macGithub\",\n name: \"github\",\n },\n {\n id: \"vs2015\",\n macId: \"macVs2015\",\n name: \"vs2015\",\n },\n {\n id: \"xcode\",\n macId: \"macXcode\",\n name: \"xcode\",\n },\n];\n\nexport const SITDOWN_OPTIONS = [\n {\n key: \"wechat\",\n value: \"微信公众号 - https://mp.weixin.qq.com/\",\n },\n {\n key: \"zhihu\",\n value: \"知乎专栏 - https://zhuanlan.zhihu.com/\",\n },\n {\n key: \"juejin\",\n value: \"掘金 - https://juejin.im/post/\",\n },\n {\n key: \"csdn\",\n value: \"CSDN - https://blog.csdn.net/\",\n },\n {\n key: \"other\",\n value: \"其他\",\n },\n];\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\nimport {Input, Form} from \"antd\";\nimport {ALIOSS_IMAGE_HOSTING} from \"../../utils/constant\";\n\nconst formItemLayout = {\n labelCol: {\n xs: {span: 6},\n },\n wrapperCol: {\n xs: {span: 16},\n },\n};\n\n@inject(\"imageHosting\")\n@observer\nclass AliOSS extends Component {\n constructor(props) {\n super(props);\n // 从localstorage里面读取\n const imageHosting = JSON.parse(localStorage.getItem(ALIOSS_IMAGE_HOSTING));\n this.state = {\n imageHosting,\n };\n }\n\n regionChange = (e) => {\n const {imageHosting} = this.state;\n imageHosting.region = e.target.value;\n this.setState({imageHosting});\n localStorage.setItem(ALIOSS_IMAGE_HOSTING, JSON.stringify(imageHosting));\n };\n\n accessKeyIdChange = (e) => {\n const {imageHosting} = this.state;\n imageHosting.accessKeyId = e.target.value;\n this.setState({imageHosting});\n localStorage.setItem(ALIOSS_IMAGE_HOSTING, JSON.stringify(imageHosting));\n };\n\n accessKeySecretChange = (e) => {\n const {imageHosting} = this.state;\n imageHosting.accessKeySecret = e.target.value;\n this.setState({imageHosting});\n localStorage.setItem(ALIOSS_IMAGE_HOSTING, JSON.stringify(imageHosting));\n };\n\n bucketChange = (e) => {\n const {imageHosting} = this.state;\n imageHosting.bucket = e.target.value;\n this.setState({imageHosting});\n localStorage.setItem(ALIOSS_IMAGE_HOSTING, JSON.stringify(imageHosting));\n };\n\n render() {\n const {region, accessKeyId, accessKeySecret, bucket} = this.state.imageHosting;\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n 配置后请在右上角进行切换,\n \n 阿里云图床配置文档\n \n \n
\n );\n }\n}\n\nconst style = {\n formItem: {\n marginBottom: \"10px\",\n },\n};\n\nexport default AliOSS;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\nimport {Input, Select, Form} from \"antd\";\nimport {QINIUOSS_IMAGE_HOSTING} from \"../../utils/constant\";\n\nconst {Option} = Select;\nconst formItemLayout = {\n labelCol: {\n xs: {span: 6},\n },\n wrapperCol: {\n xs: {span: 16},\n },\n};\n\n@inject(\"imageHosting\")\n@observer\nclass QiniuOSS extends Component {\n constructor(props) {\n super(props);\n // 从localstorage里面读取\n const imageHosting = JSON.parse(localStorage.getItem(QINIUOSS_IMAGE_HOSTING));\n const link = imageHosting.domain.split(\"://\")[1];\n this.state = {\n imageHosting,\n link,\n };\n }\n\n regionChange = (value) => {\n const {imageHosting} = this.state;\n imageHosting.region = value;\n this.setState({imageHosting});\n localStorage.setItem(QINIUOSS_IMAGE_HOSTING, JSON.stringify(imageHosting));\n };\n\n accessKeyChange = (e) => {\n const {imageHosting} = this.state;\n imageHosting.accessKey = e.target.value;\n this.setState({imageHosting});\n localStorage.setItem(QINIUOSS_IMAGE_HOSTING, JSON.stringify(imageHosting));\n };\n\n secretKeyChange = (e) => {\n const {imageHosting} = this.state;\n imageHosting.secretKey = e.target.value;\n this.setState({imageHosting});\n localStorage.setItem(QINIUOSS_IMAGE_HOSTING, JSON.stringify(imageHosting));\n };\n\n bucketChange = (e) => {\n const {imageHosting} = this.state;\n imageHosting.bucket = e.target.value;\n this.setState({imageHosting});\n localStorage.setItem(QINIUOSS_IMAGE_HOSTING, JSON.stringify(imageHosting));\n };\n\n linkChange = (e) => {\n this.setState({link: e.target.value});\n\n const {imageHosting} = this.state;\n imageHosting.domain = \"https://\" + e.target.value;\n this.setState({imageHosting});\n localStorage.setItem(QINIUOSS_IMAGE_HOSTING, JSON.stringify(imageHosting));\n };\n\n namespaceChange = ({target: {value}}) => {\n const {imageHosting} = this.state;\n imageHosting.namespace = value;\n this.setState({imageHosting});\n localStorage.setItem(QINIUOSS_IMAGE_HOSTING, JSON.stringify(imageHosting));\n };\n\n render() {\n const {region, accessKey, secretKey, bucket, namespace} = this.state.imageHosting;\n const {link} = this.state;\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 配置后请在右上角进行切换,\n \n 七牛云图床配置文档\n \n \n
\n );\n }\n}\n\nconst style = {\n formItem: {\n marginBottom: \"10px\",\n },\n};\n\nexport default QiniuOSS;\n","import {observable, action} from \"mobx\";\nimport {IMAGE_HOSTING_TYPE, ALIOSS_IMAGE_HOSTING, QINIUOSS_IMAGE_HOSTING} from \"../utils/constant\";\n\nclass ImageHosting {\n @observable type = \"\";\n\n @observable hostingList = [];\n\n @observable hostingUrl = \"\";\n\n @observable hostingName = \"\";\n\n @action\n setType = (type) => {\n this.type = type;\n };\n\n @action\n setHostingUrl = (url) => {\n this.hostingUrl = url;\n };\n\n @action\n setHostingName = (name) => {\n this.hostingName = name;\n };\n\n @action\n addImageHosting = (name) => {\n this.hostingList.push({\n value: name,\n label: name,\n });\n };\n}\n\nconst store = new ImageHosting();\n\n// 如果为空先把数据放进去\nif (!window.localStorage.getItem(ALIOSS_IMAGE_HOSTING)) {\n const alioss = JSON.stringify({\n region: \"\",\n accessKeyId: \"\",\n accessKeySecret: \"\",\n bucket: \"\",\n });\n window.localStorage.setItem(ALIOSS_IMAGE_HOSTING, alioss);\n}\n\n// 如果为空先把数据放进去\nif (!window.localStorage.getItem(QINIUOSS_IMAGE_HOSTING)) {\n const qiniuoss = JSON.stringify({\n region: \"\",\n accessKey: \"\",\n secretKey: \"\",\n bucket: \"\",\n domain: \"https://\",\n namespace: \"\",\n });\n window.localStorage.setItem(QINIUOSS_IMAGE_HOSTING, qiniuoss);\n}\n\nstore.type = window.localStorage.getItem(IMAGE_HOSTING_TYPE);\n\nexport default store;\n","/* Process inline math */\n/*\nLike markdown-it-simplemath, this is a stripped down, simplified version of:\nhttps://github.com/runarberg/markdown-it-math\nIt differs in that it takes (a subset of) LaTeX as input and relies on KaTeX\nfor rendering output.\n*/\n/* eslint-disable */\n// var katex = require(\"katex\");\n\n// Test if potential opening or closing delimieter\n// Assumes that there is a \"$\" at state.src[pos]\nfunction isValidDelim(state, pos) {\n var prevChar,\n nextChar,\n max = state.posMax,\n can_open = true,\n can_close = true;\n\n prevChar = pos > 0 ? state.src.charCodeAt(pos - 1) : -1;\n nextChar = pos + 1 <= max ? state.src.charCodeAt(pos + 1) : -1;\n\n // Check non-whitespace conditions for opening and closing, and\n // check that closing delimeter isn't followed by a number\n if (\n prevChar === 0x20 /* \" \" */ ||\n prevChar === 0x09 /* \\t */ ||\n (nextChar >= 0x30 /* \"0\" */ && nextChar <= 0x39) /* \"9\" */\n ) {\n can_close = false;\n }\n if (nextChar === 0x20 /* \" \" */ || nextChar === 0x09 /* \\t */) {\n can_open = false;\n }\n\n return {\n can_open: can_open,\n can_close: can_close,\n };\n}\n\nfunction math_inline(state, silent) {\n var start, match, token, res, pos, esc_count;\n\n if (state.src[state.pos] !== \"$\") {\n return false;\n }\n\n res = isValidDelim(state, state.pos);\n if (!res.can_open) {\n if (!silent) {\n state.pending += \"$\";\n }\n state.pos += 1;\n return true;\n }\n\n // First check for and bypass all properly escaped delimieters\n // This loop will assume that the first leading backtick can not\n // be the first character in state.src, which is known since\n // we have found an opening delimieter already.\n start = state.pos + 1;\n match = start;\n while ((match = state.src.indexOf(\"$\", match)) !== -1) {\n // Found potential $, look for escapes, pos will point to\n // first non escape when complete\n pos = match - 1;\n while (state.src[pos] === \"\\\\\") {\n pos -= 1;\n }\n\n // Even number of escapes, potential closing delimiter found\n if ((match - pos) % 2 == 1) {\n break;\n }\n match += 1;\n }\n\n // No closing delimter found. Consume $ and continue.\n if (match === -1) {\n if (!silent) {\n state.pending += \"$\";\n }\n state.pos = start;\n return true;\n }\n\n // Check if we have empty content, ie: $$. Do not parse.\n if (match - start === 0) {\n if (!silent) {\n state.pending += \"$$\";\n }\n state.pos = start + 1;\n return true;\n }\n\n // Check for valid closing delimiter\n res = isValidDelim(state, match);\n if (!res.can_close) {\n if (!silent) {\n state.pending += \"$\";\n }\n state.pos = start;\n return true;\n }\n\n if (!silent) {\n token = state.push(\"math_inline\", \"math\", 0);\n token.markup = \"$\";\n token.content = state.src.slice(start, match);\n }\n\n state.pos = match + 1;\n return true;\n}\n\nfunction math_block(state, start, end, silent) {\n var firstLine,\n lastLine,\n next,\n lastPos,\n found = false,\n token,\n pos = state.bMarks[start] + state.tShift[start],\n max = state.eMarks[start];\n\n if (pos + 2 > max) {\n return false;\n }\n if (state.src.slice(pos, pos + 2) !== \"$$\") {\n return false;\n }\n\n pos += 2;\n firstLine = state.src.slice(pos, max);\n\n if (silent) {\n return true;\n }\n if (firstLine.trim().slice(-2) === \"$$\") {\n // Single line expression\n firstLine = firstLine.trim().slice(0, -2);\n found = true;\n }\n\n for (next = start; !found; ) {\n next++;\n\n if (next >= end) {\n break;\n }\n\n pos = state.bMarks[next] + state.tShift[next];\n max = state.eMarks[next];\n\n if (pos < max && state.tShift[next] < state.blkIndent) {\n // non-empty line with negative indent should stop the list:\n break;\n }\n\n if (\n state.src\n .slice(pos, max)\n .trim()\n .slice(-2) === \"$$\"\n ) {\n lastPos = state.src.slice(0, max).lastIndexOf(\"$$\");\n lastLine = state.src.slice(pos, lastPos);\n found = true;\n }\n }\n\n state.line = next + 1;\n\n token = state.push(\"math_block\", \"math\", 0);\n token.block = true;\n token.content =\n (firstLine && firstLine.trim() ? firstLine + \"\\n\" : \"\") +\n state.getLines(start + 1, next, state.tShift[start], true) +\n (lastLine && lastLine.trim() ? lastLine : \"\");\n token.map = [start, state.line];\n token.markup = \"$$\";\n return true;\n}\n\nexport default (md, options) => {\n // Default options\n\n options = options || {};\n\n // set KaTeX as the renderer for markdown-it-simplemath\n var katexInline = function(latex) {\n options.displayMode = false;\n try {\n return \"$\" + latex + \"$\";\n // return katex.renderToString(latex, options);\n } catch (error) {\n if (options.throwOnError) {\n console.log(error);\n }\n return latex;\n }\n };\n\n var inlineRenderer = function(tokens, idx) {\n return katexInline(tokens[idx].content);\n };\n\n var katexBlock = function(latex) {\n options.displayMode = true;\n try {\n // console.log(latex);\n return \"$$\" + latex + \"$$\";\n // return \"

\" + katex.renderToString(latex, options) + \"

\";\n } catch (error) {\n if (options.throwOnError) {\n console.log(error);\n }\n return latex;\n }\n };\n\n var blockRenderer = function(tokens, idx) {\n return katexBlock(tokens[idx].content) + \"\\n\";\n };\n\n md.inline.ruler.after(\"escape\", \"math_inline\", math_inline);\n md.block.ruler.after(\"blockquote\", \"math_block\", math_block, {\n alt: [\"paragraph\", \"reference\", \"blockquote\", \"list\"],\n });\n md.renderer.rules.math_inline = inlineRenderer;\n md.renderer.rules.math_block = blockRenderer;\n};\n","function slugify(s, md) {\n // Unicode-friendly\n var spaceRegex = new RegExp(md.utils.lib.ucmicro.Z.source, \"g\");\n return encodeURIComponent(s.replace(spaceRegex, \"\"));\n}\n\nfunction makeRule(md, options) {\n return function addHeadingAnchors(state) {\n // Go to length-2 because we're going to be peeking ahead.\n for (var i = 0; i < state.tokens.length - 1; i++) {\n if (state.tokens[i].type !== \"heading_open\" || state.tokens[i + 1].type !== \"inline\") {\n continue;\n }\n\n var headingInlineToken = state.tokens[i + 1];\n\n if (!headingInlineToken.content) {\n continue;\n }\n\n if (options.addHeadingSpan) {\n var spanTokenPre = new state.Token(\"html_inline\", \"\", 0);\n spanTokenPre.content = ``;\n headingInlineToken.children.unshift(spanTokenPre);\n var spanTokenPost = new state.Token(\"html_inline\", \"\", 0);\n spanTokenPost.content = ``;\n headingInlineToken.children.push(spanTokenPost);\n }\n\n // Advance past the inline and heading_close tokens.\n i += 2;\n }\n };\n}\n\nexport default (md, opts) => {\n var defaults = {\n anchorClass: \"markdown-it-headingspan\",\n addHeadingSpan: true,\n slugify: slugify,\n };\n var options = md.utils.assign(defaults, opts);\n md.core.ruler.push(\"heading_span\", makeRule(md, options));\n};\n","function renderFootnoteAnchorName(tokens, idx, options, env) {\n const n = Number(tokens[idx].meta.id + 1).toString();\n let prefix = \"\";\n\n if (typeof env.docId === \"string\") {\n prefix = \"-\" + env.docId + \"-\";\n }\n\n return prefix + n;\n}\n\nfunction renderFootnoteCaption(tokens, idx) {\n let n = Number(tokens[idx].meta.id + 1).toString();\n\n if (tokens[idx].meta.subId > 0) {\n n += \":\" + tokens[idx].meta.subId;\n }\n\n return \"[\" + n + \"]\";\n}\n\n// eslint-disable-next-line\nfunction renderFootnoteWord(tokens, idx, options, env, slf) {\n return '' + tokens[idx].content + \"\";\n}\n\nfunction renderFootnoteRef(tokens, idx, options, env, slf) {\n // var id = slf.rules.footnote_anchor_name(tokens, idx, options, env, slf);\n const caption = slf.rules.footnote_caption(tokens, idx, options, env, slf);\n return '' + caption + \"\";\n}\n\n// eslint-disable-next-line\nfunction renderFootnoteBlockOpen(tokens, idx, options) {\n return '

\\n
\\n';\n}\n\nfunction renderFootnoteBlockClose() {\n return \"
\\n\";\n}\n\nfunction renderFootnoteOpen(tokens, idx, options, env, slf) {\n let id = slf.rules.footnote_anchor_name(tokens, idx, options, env, slf);\n\n if (tokens[idx].meta.subId > 0) {\n id += \":\" + tokens[idx].meta.subId;\n }\n\n return '[' + id + \"] \";\n}\n\nfunction renderFootnoteClose() {\n return \"\\n\";\n}\n\n// Process [link]( \"stuff\")\nfunction isSpace(code) {\n switch (code) {\n case 0x09:\n case 0x20:\n return true;\n default:\n }\n return false;\n}\n\nfunction normalizeReference(str) {\n // use .toUpperCase() instead of .toLowerCase()\n // here to avoid a conflict with Object.prototype\n // members (most notably, `__proto__`)\n return str\n .trim()\n .replace(/\\s+/g, \" \")\n .toUpperCase();\n}\n\nfunction linkFoot(state, silent) {\n let attrs,\n code,\n label,\n pos,\n res,\n ref,\n title,\n token,\n href = \"\",\n start = state.pos,\n footnoteContent,\n parseReference = true;\n const oldPos = state.pos;\n const max = state.posMax;\n\n if (state.src.charCodeAt(state.pos) !== 0x5b /* [ */) {\n return false;\n }\n\n const labelStart = state.pos + 1;\n const labelEnd = state.md.helpers.parseLinkLabel(state, state.pos, true);\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) {\n return false;\n }\n\n pos = labelEnd + 1;\n if (pos < max && state.src.charCodeAt(pos) === 0x28 /* ( */) {\n //\n // Inline link\n //\n\n // might have found a valid shortcut link, disable reference parsing\n parseReference = false;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0a) {\n break;\n }\n }\n if (pos >= max) {\n return false;\n }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos;\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax);\n if (res.ok) {\n href = state.md.normalizeLink(res.str);\n footnoteContent = res.str;\n if (state.md.validateLink(href)) {\n pos = res.pos;\n } else {\n href = \"\";\n }\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0a) {\n break;\n }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0a) {\n break;\n }\n }\n } else {\n title = \"\";\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29 /* ) */) {\n // parsing a valid shortcut link failed, fallback to reference\n parseReference = true;\n }\n pos++;\n }\n\n if (parseReference) {\n //\n // Link reference\n //\n if (typeof state.env.references === \"undefined\") {\n return false;\n }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5b /* [ */) {\n start = pos + 1;\n pos = state.md.helpers.parseLinkLabel(state, pos);\n if (pos >= 0) {\n label = state.src.slice(start, pos++);\n } else {\n pos = labelEnd + 1;\n }\n } else {\n pos = labelEnd + 1;\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) {\n label = state.src.slice(labelStart, labelEnd);\n }\n\n ref = state.env.references[normalizeReference(label)];\n if (!ref) {\n state.pos = oldPos;\n return false;\n }\n href = ref.href;\n title = ref.title;\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n // 如果存在标题则转成脚注\n if (title) {\n state.pos = labelStart;\n state.posMax = labelEnd;\n\n let tokens;\n\n if (!state.env.footnotes) {\n state.env.footnotes = {};\n }\n if (!state.env.footnotes.list) {\n state.env.footnotes.list = [];\n }\n\n const footnoteId = state.env.footnotes.list.length;\n\n // *用来让链接倾斜\n state.md.inline.parse(`${title}: *${footnoteContent}*`, state.md, state.env, (tokens = []));\n\n token = state.push(\"footnote_word\", \"\", 0);\n token.content = state.src.slice(labelStart, labelEnd);\n\n token = state.push(\"footnote_ref\", \"\", 0);\n token.meta = {id: footnoteId};\n\n state.env.footnotes.list[footnoteId] = {tokens: tokens};\n }\n // 不存在标题则判断域名\n else {\n state.pos = labelStart;\n state.posMax = labelEnd;\n\n token = state.push(\"link_open\", \"a\", 1);\n attrs = [[\"href\", href]];\n token.attrs = attrs;\n if (title) {\n attrs.push([\"title\", title]);\n }\n\n state.md.inline.tokenize(state);\n\n token = state.push(\"link_close\", \"a\", -1);\n }\n }\n\n state.pos = pos;\n state.posMax = max;\n\n return true;\n}\n\n// Glue footnote tokens to end of token stream\nfunction footnoteTail(state) {\n var i,\n l,\n lastParagraph,\n list,\n token,\n tokens,\n current,\n currentLabel,\n insideRef = false,\n refTokens = {};\n\n if (!state.env.footnotes) {\n return;\n }\n\n state.tokens = state.tokens.filter((tok) => {\n if (tok.type === \"footnote_reference_open\") {\n insideRef = true;\n current = [];\n currentLabel = tok.meta.label;\n return false;\n }\n if (tok.type === \"footnote_reference_close\") {\n insideRef = false;\n // prepend ':' to avoid conflict with Object.prototype members\n refTokens[\":\" + currentLabel] = current;\n return false;\n }\n if (insideRef) {\n current.push(tok);\n }\n return !insideRef;\n });\n\n if (!state.env.footnotes.list) {\n return;\n }\n list = state.env.footnotes.list;\n\n token = new state.Token(\"footnote_block_open\", \"\", 1);\n state.tokens.push(token);\n\n for (i = 0, l = list.length; i < l; i++) {\n token = new state.Token(\"footnote_open\", \"\", 1);\n token.meta = {id: i, label: list[i].label};\n state.tokens.push(token);\n\n if (list[i].tokens) {\n tokens = [];\n\n token = new state.Token(\"paragraph_open\", \"p\", 1);\n token.block = true;\n tokens.push(token);\n\n token = new state.Token(\"inline\", \"\", 0);\n token.children = list[i].tokens;\n token.content = \"\";\n tokens.push(token);\n\n token = new state.Token(\"paragraph_close\", \"p\", -1);\n token.block = true;\n tokens.push(token);\n } else if (list[i].label) {\n tokens = refTokens[\":\" + list[i].label];\n }\n\n state.tokens = state.tokens.concat(tokens);\n if (state.tokens[state.tokens.length - 1].type === \"paragraph_close\") {\n lastParagraph = state.tokens.pop();\n } else {\n lastParagraph = null;\n }\n\n if (lastParagraph) {\n state.tokens.push(lastParagraph);\n }\n\n token = new state.Token(\"footnote_close\", \"\", -1);\n state.tokens.push(token);\n }\n\n token = new state.Token(\"footnote_block_close\", \"\", -1);\n state.tokens.push(token);\n}\n\nexport default (md) => {\n md.renderer.rules.footnote_ref = renderFootnoteRef;\n md.renderer.rules.footnote_word = renderFootnoteWord;\n md.renderer.rules.footnote_block_open = renderFootnoteBlockOpen;\n md.renderer.rules.footnote_block_close = renderFootnoteBlockClose;\n md.renderer.rules.footnote_open = renderFootnoteOpen;\n md.renderer.rules.footnote_close = renderFootnoteClose;\n\n // helpers (only used in other rules, no tokens are attached to those)\n md.renderer.rules.footnote_caption = renderFootnoteCaption;\n md.renderer.rules.footnote_anchor_name = renderFootnoteAnchorName;\n\n md.inline.ruler.at(\"link\", linkFoot);\n md.core.ruler.after(\"inline\", \"footnote_tail\", footnoteTail);\n};\n","const defaultOption = {\n limitless: false, // 限制图片数量\n limit: 10, // 图片数量上限\n};\n\nconst imageFlowPlugin = (md, opt) => {\n const options = opt || defaultOption;\n\n const tokenize = (state, start) => {\n let token;\n\n const matchReg = /^<((!\\[[^[\\]]*\\]\\([^()]+\\)(,?\\s*(?=>)|,\\s*(?!>)))+)>/;\n const srcLine = state.src.slice(state.bMarks[start], state.eMarks[start]);\n\n if (srcLine.charCodeAt(0) !== 0x3c /* < */) {\n return false;\n }\n const match = matchReg.exec(srcLine);\n\n if (match) {\n const images = match[1].match(/\\[[^\\]]*\\]\\([^)]+\\)/g);\n if (!options.limitless && images.length <= options.limit) {\n token = state.push(\"imageFlow\", \"\", 0);\n token.meta = images;\n token.block = true;\n\n // update line\n state.line++;\n return true;\n }\n }\n return false;\n };\n\n md.renderer.rules.imageFlow = (tokens, idx) => {\n const start = `
`;\n const end = `
`;\n const contents = tokens[idx].meta;\n let wrappedContent = \"\";\n let alt;\n let src;\n contents.forEach((content) => {\n [, alt] = content.match(/\\[([^[\\]]*)\\]/);\n [, src] = content.match(/[^[]*\\(([^()]*)\\)[^\\]]*/);\n wrappedContent += `
\"${alt}\"
`;\n });\n\n return start + wrappedContent + end;\n };\n\n md.block.ruler.before(\"paragraph\", \"imageFlow\", tokenize);\n};\n\nexport default imageFlowPlugin;\n","// 缩小highlight包大小,按需引入,900kb->90kb\nimport highlightjs from \"highlight.js/lib/highlight\";\n\nimport bash from \"highlight.js/lib/languages/bash\";\nimport clojure from \"highlight.js/lib/languages/clojure\";\nimport cpp from \"highlight.js/lib/languages/cpp\";\nimport cs from \"highlight.js/lib/languages/cs\";\nimport css from \"highlight.js/lib/languages/css\";\nimport dart from \"highlight.js/lib/languages/dart\";\nimport dockerfile from \"highlight.js/lib/languages/dockerfile\";\nimport erlang from \"highlight.js/lib/languages/erlang\";\nimport go from \"highlight.js/lib/languages/go\";\nimport gradle from \"highlight.js/lib/languages/gradle\";\nimport groovy from \"highlight.js/lib/languages/groovy\";\nimport haskell from \"highlight.js/lib/languages/haskell\";\nimport java from \"highlight.js/lib/languages/java\";\nimport javascript from \"highlight.js/lib/languages/javascript\";\nimport json from \"highlight.js/lib/languages/json\";\nimport julia from \"highlight.js/lib/languages/julia\";\nimport kotlin from \"highlight.js/lib/languages/kotlin\";\nimport lisp from \"highlight.js/lib/languages/lisp\";\nimport lua from \"highlight.js/lib/languages/lua\";\nimport makefile from \"highlight.js/lib/languages/makefile\";\nimport markdown from \"highlight.js/lib/languages/markdown\";\nimport matlab from \"highlight.js/lib/languages/matlab\";\nimport objectivec from \"highlight.js/lib/languages/objectivec\";\nimport perl from \"highlight.js/lib/languages/perl\";\nimport php from \"highlight.js/lib/languages/php\";\nimport python from \"highlight.js/lib/languages/python\";\nimport r from \"highlight.js/lib/languages/r\";\nimport ruby from \"highlight.js/lib/languages/ruby\";\nimport rust from \"highlight.js/lib/languages/rust\";\nimport scala from \"highlight.js/lib/languages/scala\";\nimport shell from \"highlight.js/lib/languages/shell\";\nimport sql from \"highlight.js/lib/languages/sql\";\nimport swift from \"highlight.js/lib/languages/swift\";\nimport tex from \"highlight.js/lib/languages/tex\";\nimport typescript from \"highlight.js/lib/languages/typescript\";\nimport verilog from \"highlight.js/lib/languages/verilog\";\nimport vhdl from \"highlight.js/lib/languages/vhdl\";\nimport xml from \"highlight.js/lib/languages/xml\";\nimport yaml from \"highlight.js/lib/languages/yaml\";\nimport diff from \"highlight.js/lib/languages/diff\";\n\nhighlightjs.registerLanguage(\"bash\", bash);\nhighlightjs.registerLanguage(\"clojure\", clojure);\nhighlightjs.registerLanguage(\"cpp\", cpp);\nhighlightjs.registerLanguage(\"cs\", cs);\nhighlightjs.registerLanguage(\"css\", css);\nhighlightjs.registerLanguage(\"dart\", dart);\nhighlightjs.registerLanguage(\"dockerfile\", dockerfile);\nhighlightjs.registerLanguage(\"erlang\", erlang);\nhighlightjs.registerLanguage(\"go\", go);\nhighlightjs.registerLanguage(\"gradle\", gradle);\nhighlightjs.registerLanguage(\"groovy\", groovy);\nhighlightjs.registerLanguage(\"haskell\", haskell);\nhighlightjs.registerLanguage(\"java\", java);\nhighlightjs.registerLanguage(\"javascript\", javascript);\nhighlightjs.registerLanguage(\"json\", json);\nhighlightjs.registerLanguage(\"julia\", julia);\nhighlightjs.registerLanguage(\"kotlin\", kotlin);\nhighlightjs.registerLanguage(\"lisp\", lisp);\nhighlightjs.registerLanguage(\"lua\", lua);\nhighlightjs.registerLanguage(\"makefile\", makefile);\nhighlightjs.registerLanguage(\"markdown\", markdown);\nhighlightjs.registerLanguage(\"matlab\", matlab);\nhighlightjs.registerLanguage(\"objectivec\", objectivec);\nhighlightjs.registerLanguage(\"perl\", perl);\nhighlightjs.registerLanguage(\"php\", php);\nhighlightjs.registerLanguage(\"python\", python);\nhighlightjs.registerLanguage(\"r\", r);\nhighlightjs.registerLanguage(\"ruby\", ruby);\nhighlightjs.registerLanguage(\"rust\", rust);\nhighlightjs.registerLanguage(\"scala\", scala);\nhighlightjs.registerLanguage(\"shell\", shell);\nhighlightjs.registerLanguage(\"sql\", sql);\nhighlightjs.registerLanguage(\"swift\", swift);\nhighlightjs.registerLanguage(\"tex\", tex);\nhighlightjs.registerLanguage(\"typescript\", typescript);\nhighlightjs.registerLanguage(\"verilog\", verilog);\nhighlightjs.registerLanguage(\"vhdl\", vhdl);\nhighlightjs.registerLanguage(\"xml\", xml);\nhighlightjs.registerLanguage(\"yaml\", yaml);\nhighlightjs.registerLanguage(\"diff\", diff);\n\nexport default highlightjs;\n","function makeRule(md) {\n return function replaceListItem() {\n md.renderer.rules.list_item_open = function replaceOpen() {\n return \"
  • \";\n };\n md.renderer.rules.list_item_close = function replaceClose() {\n return \"
  • \";\n };\n };\n}\n\nexport default (md) => {\n md.core.ruler.push(\"replace-li\", makeRule(md));\n};\n","import axios from \"axios\";\nimport MarkdownIt from \"markdown-it\";\nimport markdownItMath from \"./markdown-it-math\";\nimport markdownItDeflist from \"markdown-it-deflist\";\nimport markdownItImplicitFigures from \"markdown-it-implicit-figures\";\nimport markdownItTableOfContents from \"markdown-it-table-of-contents\";\nimport markdownItRuby from \"markdown-it-ruby\";\nimport markdownItSpan from \"./markdown-it-span\";\nimport markdownItRemovepre from \"./markdown-it-removepre\";\nimport markdownItLinkfoot from \"./markdown-it-linkfoot\";\nimport markdownItImageFlow from \"./markdown-it-imageflow\";\nimport highlightjs from \"./langHighlight\";\nimport markdownItLiReplacer from \"./markdown-it-li\";\n\nexport const axiosGithub = axios.create({\n baseURL: \"https://api.github.com\",\n headers: {\n Accept: \"application/json\",\n },\n});\n\nexport const axiosJSON = axios.create({\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n});\n\nexport const axiosMdnice = axios.create({\n // baseURL: process.env.NODE_ENV === \"development\" ? \"http://localhost:8081\" : \"https://math.mdnice.com\",\n baseURL: process.env.NODE_ENV === \"development\" ? \"https://math.mdnice.com\" : \"https://math.mdnice.com\",\n});\n\nexport const queryParse = (search = window.location.search) => {\n if (!search) return {};\n const queryString = search[0] === \"?\" ? search.substring(1) : search;\n const query = {};\n queryString.split(\"&\").forEach((queryStr) => {\n const [key, value] = queryStr.split(\"=\");\n /* istanbul ignore else */\n if (key) query[decodeURIComponent(key)] = decodeURIComponent(value);\n });\n return query;\n};\n\nexport const transCode = (str) => {\n return window.btoa(unescape(encodeURIComponent(str)));\n};\n\nexport const deCode = (str) => {\n return decodeURIComponent(escape(window.atob(str)));\n};\n\n// 专门微信代码高亮的解析器\nexport const markdownParserWechat = new MarkdownIt({\n html: true,\n highlight: (str, lang) => {\n const text = str.replace(//g, \">\");\n const lines = text.split(\"\\n\");\n const codeLines = [];\n const numbers = [];\n for (let i = 0; i < lines.length - 1; i++) {\n codeLines.push('' + (lines[i] || \"
    \") + \"
    \");\n numbers.push(\"
  • \");\n }\n return (\n '
    ' +\n '
      ' +\n numbers.join(\"\") +\n \"
    \" +\n '
    ' +\n      codeLines.join(\"\") +\n      \"
    \"\n );\n },\n});\n\nmarkdownParserWechat\n .use(markdownItSpan) // 在标题标签中添加span\n .use(markdownItRemovepre) // 移除代码段中的 pre code\n .use(markdownItMath) // 数学公式\n .use(markdownItLinkfoot) // 修改脚注\n .use(markdownItTableOfContents, {\n transformLink: () => \"\",\n includeLevel: [2, 3],\n markerPattern: /^\\[toc\\]/im,\n }) // TOC仅支持二级和三级标题\n .use(markdownItRuby) // 注音符号\n .use(markdownItImplicitFigures, {figcaption: true}) // 图示\n .use(markdownItDeflist) // 定义列表\n .use(markdownItLiReplacer) // li 标签中加入 p 标签\n .use(markdownItImageFlow); // 横屏移动插件\n\n// 普通解析器,代码高亮用highlight\nexport const markdownParser = new MarkdownIt({\n html: true,\n highlight: (str, lang) => {\n // 加上custom则表示自定义样式,而非微信专属,避免被remove pre\n if (lang && highlightjs.getLanguage(lang)) {\n try {\n const formatted = highlightjs\n .highlight(lang, str, true)\n .value.replace(/\\n/g, \"
    \") // 换行用br表示\n .replace(/\\s/g, \" \") // 用nbsp替换空格\n .replace(/span /g, \"span \"); // span标签修复\n return '
    ' + formatted + \"
    \";\n } catch (e) {\n console.log(e);\n }\n }\n return '
    ' + markdownParser.utils.escapeHtml(str) + \"
    \";\n },\n});\n\nmarkdownParser\n .use(markdownItSpan) // 在标题标签中添加span\n .use(markdownItMath) // 数学公式\n .use(markdownItLinkfoot) // 修改脚注\n .use(markdownItTableOfContents, {\n transformLink: () => \"\",\n includeLevel: [2, 3],\n markerPattern: /^\\[toc\\]/im,\n }) // TOC仅支持二级和三级标题\n .use(markdownItRuby) // 注音符号\n .use(markdownItImplicitFigures, {figcaption: true}) // 图示\n .use(markdownItDeflist) // 定义列表\n .use(markdownItLiReplacer) // li 标签中加入 p 标签\n .use(markdownItImageFlow); // 横屏移动插件\n\nexport const replaceStyle = (id, css) => {\n const style = document.getElementById(id);\n try {\n style.innerHTML = css;\n } catch (e) {\n console.log(e);\n style.styleSheet.cssText = css;\n }\n const head = document.getElementsByTagName(\"head\")[0];\n head.appendChild(style);\n};\n\nexport const b64toBlob = (b64Data, contentType = \"\", sliceSize = 512) => {\n const byteCharacters = atob(b64Data);\n const byteArrays = [];\n\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n const slice = byteCharacters.slice(offset, offset + sliceSize);\n\n const byteNumbers = new Array(slice.length);\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i);\n }\n\n const byteArray = new Uint8Array(byteNumbers);\n\n byteArrays.push(byteArray);\n }\n\n const blob = new Blob(byteArrays, {type: contentType});\n return blob;\n};\n\n// base64转blob\nexport const toBlob = (base64, fileType) => {\n const bytes = window.atob(base64);\n let n = bytes.length;\n const u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bytes.charCodeAt(n);\n }\n return new Blob([u8arr], {type: fileType});\n};\n\nexport const dateFormat = (date, fmt) => {\n var o = {\n \"M+\": date.getMonth() + 1, // 月份\n \"d+\": date.getDate(), // 日\n \"h+\": date.getHours(), // 小时\n \"m+\": date.getMinutes(), // 分\n \"s+\": date.getSeconds(), // 秒\n \"q+\": Math.floor((date.getMonth() + 3) / 3), // 季度\n S: date.getMilliseconds(), // 毫秒\n };\n if (/(y+)/.test(fmt)) {\n fmt = fmt.replace(RegExp.$1, (date.getFullYear() + \"\").substr(4 - RegExp.$1.length));\n }\n for (var k in o) {\n if (new RegExp(\"(\" + k + \")\").test(fmt)) {\n fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : (\"00\" + o[k]).substr((\"\" + o[k]).length));\n }\n }\n return fmt;\n};\n\n// export const url2Blob = (imgUrl) => {\n// window.URL = window.URL || window.webkitURL;\n// var xhr = new XMLHttpRequest();\n// xhr.open(\"get\", imgUrl, true);\n// xhr.responseType = \"blob\";\n// xhr.onload = function () {\n// if (this.status == 200) {\n// //得到一个blob对象\n// var blob = this.response;\n// console.log(\"blob\", blob)\n// }\n// }\n// xhr.send();\n// }\n\nfunction getBase64Image(img) {\n var canvas = document.createElement(\"canvas\");\n canvas.width = img.width;\n canvas.height = img.height;\n var ctx = canvas.getContext(\"2d\");\n ctx.drawImage(img, 0, 0, img.width, img.height);\n var dataURL = canvas.toDataURL(\"image/png\"); // 可选其他值 image/jpeg\n return dataURL;\n}\n\nexport const url2Blob = (src, cb) => {\n var image = new Image();\n image.src = src + \"?v=\" + Math.random(); // 处理缓存\n image.crossOrigin = \"Anonymous\"; // 支持跨域图片\n image.onload = () => {\n var base64 = getBase64Image(image);\n cb && cb(base64);\n };\n};\n\n// 是否为PC端\nexport const isPC = () => {\n var userAgentInfo = navigator.userAgent;\n var Agents = [\"Android\", \"iPhone\", \"SymbianOS\", \"Windows Phone\", \"iPad\", \"iPod\"];\n var flag = true;\n for (var v = 0; v < Agents.length; v++) {\n if (userAgentInfo.indexOf(Agents[v]) > 0) {\n flag = false;\n break;\n }\n }\n return flag;\n};\n\nexport const getOSSName = (originName, namespace = \"\") => {\n const names = originName.split(\".\");\n let key = \"\";\n if (names.length > 1) {\n const suffix = names.pop();\n key = `${names.join(\".\")}_${dateFormat(new Date(), \"yyyyMMddhhmmss\")}.${suffix}`;\n } else {\n key = originName + \"_\" + dateFormat(new Date(), \"yyyyMMddhhmmss\");\n }\n return `${namespace}${key}`;\n};\n\nexport const addStyleLabel = (styleLabels) => {\n const add = (name) => {\n const style = document.createElement(\"style\");\n style.id = name;\n const head = document.getElementsByTagName(\"head\")[0];\n head.appendChild(style);\n };\n styleLabels.forEach((name) => add(name));\n};\n\nexport const updateMathjax = () => {\n window.MathJax.texReset();\n window.MathJax.typesetClear();\n window.MathJax.typesetPromise();\n};\n\nexport const download = (content, filename) => {\n const eleLink = document.createElement(\"a\");\n eleLink.download = filename;\n eleLink.style.display = \"none\";\n // 字符内容转变成blob地址\n const blob = new Blob([content]);\n eleLink.href = URL.createObjectURL(blob);\n // 触发点击\n document.body.appendChild(eleLink);\n eleLink.click();\n // 然后移除\n document.body.removeChild(eleLink);\n};\n\nexport const isPlatformWindows = /windows|win32/i.test(navigator.userAgent);\n","// 用来移除微信自定义代码前方的 pre code\nexport default (md) => {\n const oldFence = md.renderer.rules.fence;\n md.renderer.rules.fence = (tokens, idx, options, env, slf) => {\n const old = oldFence(tokens, idx, options, env, slf);\n const preReg = /
    /;\n    // 微信专属\n    if (preReg.exec(old)) {\n      const pre = preReg.exec(old)[0];\n      const post = `
    `;\n return old.replace(pre, \"\").replace(post, \"\");\n }\n // 自定义\n else {\n return old;\n }\n };\n};\n","/**\n * 图片上传\n */\nimport * as qiniu from \"qiniu-js\";\nimport {message} from \"antd\";\nimport axios from \"axios\";\nimport OSS from \"ali-oss\";\nimport imageHosting from \"../store/imageHosting\";\n\nimport {\n SM_MS_PROXY,\n ALIOSS_IMAGE_HOSTING,\n QINIUOSS_IMAGE_HOSTING,\n IMAGE_HOSTING_TYPE,\n IS_CONTAIN_IMG_NAME,\n IMAGE_HOSTING_NAMES,\n} from \"./constant\";\nimport {toBlob, getOSSName, axiosMdnice} from \"./helper\";\n\nfunction showUploadNoti() {\n message.loading(\"图片上传中\", 0);\n}\n\nfunction uploadError(description = \"图片上传失败\") {\n message.error(description, 3);\n}\n\nfunction hideUploadNoti() {\n message.destroy();\n message.success(\"图片上传成功\");\n}\n\nfunction writeToEditor({content, image}) {\n const isContainImgName = window.localStorage.getItem(IS_CONTAIN_IMG_NAME) === \"true\";\n console.log(isContainImgName);\n let text = \"\";\n if (isContainImgName) {\n text = `\\n![${image.filename}](${image.url})\\n`;\n } else {\n text = `\\n![](${image.url})\\n`;\n }\n const {markdownEditor} = content;\n const cursor = markdownEditor.getCursor();\n markdownEditor.replaceSelection(text, cursor);\n content.setContent(markdownEditor.getValue());\n}\n\n// 七牛云对象存储上传\nexport const qiniuOSSUpload = async ({\n file = {},\n onSuccess = () => {},\n onError = () => {},\n onProgress = () => {},\n images = [],\n content = null, // store content\n}) => {\n showUploadNoti();\n const config = JSON.parse(window.localStorage.getItem(QINIUOSS_IMAGE_HOSTING));\n try {\n let {domain} = config;\n const {namespace} = config;\n // domain可能配置时末尾没有加‘/’\n if (domain[domain.length - 1] !== \"/\") {\n domain += \"/\";\n }\n const result = await axiosMdnice.get(`/qiniu/${config.bucket}/${config.accessKey}/${config.secretKey}`);\n const token = result.data;\n\n const base64Reader = new FileReader();\n\n base64Reader.readAsDataURL(file);\n\n base64Reader.onload = (e) => {\n const urlData = e.target.result;\n const base64 = urlData.split(\",\").pop();\n const fileType = urlData\n .split(\";\")\n .shift()\n .split(\":\")\n .pop();\n\n // base64转blob\n const blob = toBlob(base64, fileType);\n\n const conf = {\n useCdnDomain: true,\n region: qiniu.region[config.region], // 区域\n };\n\n const putExtra = {\n fname: \"\",\n params: {},\n mimeType: [] || null,\n };\n\n const OSSName = getOSSName(file.name, namespace);\n\n // 这里第一个参数的形式是blob\n const imageObservable = qiniu.upload(blob, OSSName, token, putExtra, conf);\n\n // 上传成功后回调\n const complete = (response) => {\n // console.log(response);\n const names = file.name.split(\".\");\n names.pop();\n const filename = names.join(\".\");\n const image = {\n filename, // 名字不变并且去掉后缀\n url: encodeURI(`${domain}${response.key}`),\n };\n images.push(image);\n\n if (content) {\n writeToEditor({content, image});\n }\n onSuccess(response);\n setTimeout(() => {\n hideUploadNoti();\n }, 500);\n };\n\n // 上传过程回调\n const next = (response) => {\n // console.log(response);\n const percent = parseInt(Math.round(response.total.percent.toFixed(2)), 10);\n onProgress(\n {\n percent,\n },\n file,\n );\n };\n\n // 上传错误回调\n const error = (err) => {\n hideUploadNoti();\n uploadError();\n onError(err, err.toString());\n };\n\n const imageObserver = {\n next,\n error,\n complete,\n };\n // 注册 imageObserver 对象\n imageObservable.subscribe(imageObserver);\n };\n } catch (err) {\n onError(err, err.toString());\n }\n};\n\n// 用户自定义的图床上传\nexport const customImageUpload = async ({\n formData = new FormData(),\n file = {},\n onSuccess = () => {},\n onError = () => {},\n images = [],\n content = null,\n}) => {\n showUploadNoti();\n try {\n formData.append(\"file\", file);\n const config = {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n };\n const postURL = imageHosting.hostingUrl;\n const result = await axios.post(postURL, formData, config);\n const names = file.name.split(\".\");\n names.pop();\n const filename = names.join(\".\");\n const image = {\n filename,\n url: encodeURI(result.data.data), // 这里要和外接图床规定好数据逻辑,否则会接入失败\n };\n\n if (content) {\n writeToEditor({content, image});\n }\n images.push(image);\n onSuccess(result);\n setTimeout(() => {\n hideUploadNoti();\n }, 500);\n } catch (error) {\n message.destroy();\n uploadError(error.toString());\n onError(error, error.toString());\n }\n};\n\n// SM.MS存储上传\nexport const smmsUpload = ({\n formData = new FormData(),\n file = {},\n action = SM_MS_PROXY,\n onProgress = () => {},\n onSuccess = () => {},\n onError = () => {},\n headers = {},\n withCredentials = false,\n images = [],\n content = null, // store content\n}) => {\n showUploadNoti();\n // SM.MS图床必须这里命名为smfile\n formData.append(\"smfile\", file);\n axios\n .post(action, formData, {\n withCredentials,\n headers,\n onUploadProgress: ({total, loaded}) => {\n onProgress(\n {\n percent: parseInt(Math.round((loaded / total) * 100).toFixed(2), 10),\n },\n file,\n );\n },\n })\n .then(({data: response}) => {\n if (response.code === \"exception\") {\n throw response.message;\n }\n const image = {\n filename: response.data.filename,\n url: response.data.url,\n };\n if (content) {\n writeToEditor({content, image});\n }\n images.push(image);\n onSuccess(response, file);\n setTimeout(() => {\n hideUploadNoti();\n }, 500);\n })\n .catch((error) => {\n hideUploadNoti();\n uploadError(error.toString());\n onError(error, error.toString());\n });\n};\n\n// 阿里对象存储,上传部分\nconst aliOSSPutObject = ({config, file, buffer, onSuccess, onError, images, content}) => {\n let client;\n try {\n client = new OSS(config);\n } catch (error) {\n message.error(\"OSS配置错误,请根据文档检查配置项\");\n return;\n }\n\n const OSSName = getOSSName(file.name);\n\n client\n .put(OSSName, buffer)\n .then((response) => {\n const names = file.name.split(\".\");\n names.pop();\n const filename = names.join(\".\");\n const image = {\n filename, // 名字不变并且去掉后缀\n url: response.url,\n };\n if (content) {\n writeToEditor({content, image});\n }\n images.push(image);\n onSuccess(response, file);\n setTimeout(() => {\n hideUploadNoti();\n }, 500);\n })\n .catch((error) => {\n console.log(error);\n\n hideUploadNoti();\n uploadError(\"请根据文档检查配置项\");\n onError(error, error.toString());\n });\n};\n\n// 阿里云对象存储上传,处理部分\nexport const aliOSSUpload = ({\n file = {},\n onSuccess = () => {},\n onError = () => {},\n images = [],\n content = null, // store content\n}) => {\n showUploadNoti();\n const config = JSON.parse(window.localStorage.getItem(ALIOSS_IMAGE_HOSTING));\n const base64Reader = new FileReader();\n base64Reader.readAsDataURL(file);\n base64Reader.onload = (e) => {\n const urlData = e.target.result;\n const base64 = urlData.split(\",\").pop();\n const fileType = urlData\n .split(\";\")\n .shift()\n .split(\":\")\n .pop();\n\n // base64转blob\n const blob = toBlob(base64, fileType);\n\n // blob转arrayBuffer\n const bufferReader = new FileReader();\n bufferReader.readAsArrayBuffer(blob);\n bufferReader.onload = (event) => {\n const buffer = new OSS.Buffer(event.target.result);\n aliOSSPutObject({config, file, buffer, onSuccess, onError, images, content});\n };\n };\n};\n\n// 自动检测上传配置,进行上传\nexport const uploadAdaptor = (...args) => {\n const type = localStorage.getItem(IMAGE_HOSTING_TYPE); // SM.MS | 阿里云 | 七牛云 | 用户自定义图床\n const userType = imageHosting.hostingName;\n if (type === userType) {\n return customImageUpload(...args);\n } else if (type === IMAGE_HOSTING_NAMES.smms) {\n return smmsUpload(...args);\n } else if (type === IMAGE_HOSTING_NAMES.qiniuyun) {\n const config = JSON.parse(window.localStorage.getItem(QINIUOSS_IMAGE_HOSTING));\n if (\n !config.region.length ||\n !config.accessKey.length ||\n !config.secretKey.length ||\n !config.bucket.length ||\n !config.domain.length\n ) {\n message.error(\"请先配置七牛云图床\");\n return false;\n }\n return qiniuOSSUpload(...args);\n } else if (type === IMAGE_HOSTING_NAMES.aliyun) {\n const config = JSON.parse(window.localStorage.getItem(ALIOSS_IMAGE_HOSTING));\n if (\n !config.region.length ||\n !config.accessKeyId.length ||\n !config.accessKeySecret.length ||\n !config.bucket.length\n ) {\n message.error(\"请先配置阿里云图床\");\n return false;\n }\n return aliOSSUpload(...args);\n }\n return true;\n};\n","import React from \"react\";\n\nconst appContext = React.createContext(null);\n\nexport default appContext;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\nimport {Modal, Upload, Tabs, Select} from \"antd\";\n\nimport SvgIcon from \"../../icon\";\n\nimport AliOSS from \"../ImageHosting/AliOSS\";\nimport QiniuOSS from \"../ImageHosting/QiniuOSS\";\n\nimport {uploadAdaptor} from \"../../utils/imageHosting\";\nimport {SM_MS_PROXY, IMAGE_HOSTING_TYPE, IMAGE_HOSTING_NAMES} from \"../../utils/constant\";\nimport appContext from \"../../utils/appContext\";\n\nconst {Dragger} = Upload;\nconst {TabPane} = Tabs;\nconst {Option} = Select;\n\n@inject(\"dialog\")\n@inject(\"content\")\n@inject(\"imageHosting\")\n@inject(\"navbar\")\n@observer\nclass ImageDialog extends Component {\n constructor(props) {\n super(props);\n this.images = [];\n }\n\n // 确认后将内容更新到编辑器上\n handleOk = () => {\n let text = \"\";\n // 成功后添加url\n if (this.props.navbar.isContainImgName) {\n this.images.forEach((value) => {\n text += `![${value.filename}](${value.url})\\n`;\n });\n } else {\n this.images.forEach((value) => {\n text += `![](${value.url})\\n`;\n });\n }\n // 重新初始化\n this.images = [];\n const {markdownEditor} = this.props.content;\n const cursor = markdownEditor.getCursor();\n markdownEditor.replaceSelection(text, cursor);\n // 上传后实时更新内容\n const content = markdownEditor.getValue();\n this.props.content.setContent(content);\n\n this.props.dialog.setImageOpen(false);\n cursor.ch += 2;\n markdownEditor.setCursor(cursor);\n markdownEditor.focus();\n };\n\n handleCancel = () => {\n this.props.dialog.setImageOpen(false);\n };\n\n customRequest = ({action, data, file, headers, onError, onProgress, onSuccess, withCredentials}) => {\n const formData = new FormData();\n const {images} = this;\n if (data) {\n Object.keys(data).forEach((key) => {\n formData.append(key, data[key]);\n });\n }\n // 使用阿里云图床\n if (this.props.imageHosting.type === \"阿里云\") {\n // const configAli = JSON.parse(window.localStorage.getItem(ALIOSS_IMAGE_HOSTING));\n uploadAdaptor({file, onSuccess, onError, images});\n }\n // 使用七牛云图床\n else if (this.props.imageHosting.type === \"七牛云\") {\n // const config = JSON.parse(window.localStorage.getItem(QINIUOSS_IMAGE_HOSTING));\n uploadAdaptor({file, onSuccess, onError, onProgress, images});\n }\n // 使用SM.MS图床\n else if (this.props.imageHosting.type === \"SM.MS\") {\n uploadAdaptor({formData, file, action, onProgress, onSuccess, onError, headers, withCredentials});\n // this.smmsUpload(formData, file, action, onProgress, onSuccess, onError, headers, withCredentials);\n }\n // 使用用户提供的图床或是默认mdnice图床\n else {\n uploadAdaptor({formData, file, onSuccess, onError, images});\n }\n\n return {\n abort() {\n console.log(\"upload progress is aborted.\");\n },\n };\n };\n\n typeChange = (type) => {\n this.props.imageHosting.setType(type);\n window.localStorage.setItem(IMAGE_HOSTING_TYPE, type);\n };\n\n render() {\n const {hostingList, type} = this.props.imageHosting;\n\n const columns = hostingList.map((option, index) => (\n \n ));\n\n const imageHostingSwitch = (\n \n );\n\n return (\n \n \n {({useImageHosting}) => (\n \n \n \n

    \n \n

    \n

    点击或拖拽一张或多张照片上传

    \n

    {\"正在使用\" + type + \"图床\"}

    \n
    \n
    \n {useImageHosting.isAliyunOpen ? (\n \n \n \n ) : null}\n {useImageHosting.isQiniuyunOpen ? (\n \n \n \n ) : null}\n
    \n )}\n
    \n \n );\n }\n}\n\nconst style = {\n svgIcon: {\n width: \"48px\",\n height: \"48px\",\n },\n};\n\nexport default ImageDialog;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\nimport {Modal, Input, Form} from \"antd\";\n\n@inject(\"dialog\")\n@inject(\"content\")\n@observer\nclass LinkDialog extends Component {\n constructor(props) {\n super(props);\n this.state = {\n link: \"\",\n };\n }\n\n handleOk = () => {\n const {markdownEditor} = this.props.content;\n const cursor = markdownEditor.getCursor();\n const selection = markdownEditor.getSelection();\n const text = `[${selection}](${this.state.link})`;\n markdownEditor.replaceSelection(text, cursor);\n\n // 上传后实时更新内容\n const content = markdownEditor.getValue();\n this.props.content.setContent(content);\n\n this.setState({link: \"\"});\n this.props.dialog.setLinkOpen(false);\n cursor.ch += 1;\n markdownEditor.setCursor(cursor);\n markdownEditor.focus();\n };\n\n handleCancel = () => {\n this.setState({link: \"\"});\n this.props.dialog.setLinkOpen(false);\n };\n\n handleChange = (e) => {\n this.setState({link: e.target.value});\n };\n\n render() {\n return (\n \n \n \n \n \n );\n }\n}\n\nexport default LinkDialog;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\nimport {Modal, Button} from \"antd\";\n\n@inject(\"dialog\")\n@observer\nclass AboutDialog extends Component {\n handleOk = () => {\n this.props.dialog.setAboutOpen(false);\n };\n\n handleCancel = () => {\n this.props.dialog.setAboutOpen(false);\n };\n\n handleVersion = () => {\n this.props.dialog.setAboutOpen(false);\n this.props.dialog.setVersionOpen(true);\n };\n\n render() {\n return (\n \n 确认\n ,\n ]}\n bodyStyle={{\n paddingTop: \"5px\",\n }}\n >\n

    \n Markdown Nice\n \n \"\"\n \n

    \n\n

    \n 本项目 fork 自\n \n  Markdown Nice \n \n ,基于 [master 分支的 8f5205c] 进行的二次修改。\n

    \n

    支持自定义样式的 Markdown 编辑器;

    \n

    支持微信公众号、知乎和稀土掘金;

    \n

    \n \n  本项目 GitHub 仓库 \n \n

    \n \n );\n }\n}\n\nconst style = {\n leftImgWidth: {\n width: \"40%\",\n height: \"100%\",\n },\n rightImgWidth: {\n width: \"60%\",\n height: \"100%\",\n },\n headerMargin: {\n marginTop: \"5px\",\n marginBottom: \"5px\",\n color: \"black\",\n },\n lineHeight: {\n lineHeight: \"26px\",\n color: \"black\",\n padding: 0,\n margin: 0,\n },\n img: {\n width: \"70px\",\n marginLeft: \"10px\",\n display: \"inline-block\",\n },\n noBorder: {\n border: \"none\",\n },\n};\n\nexport default AboutDialog;\n","import React from \"react\";\nimport {observer, inject} from \"mobx-react\";\nimport {Modal, InputNumber, Form} from \"antd\";\n\n@inject(\"dialog\")\n@inject(\"content\")\n@observer\nclass FormDialog extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n ...initialState,\n };\n }\n\n buildRow = (rowNum, columnNum) => {\n let appendText = \"|\";\n if (rowNum === 1) {\n appendText += \" --- |\";\n for (let i = 0; i < columnNum - 1; i++) {\n appendText += \" --- |\";\n }\n } else {\n appendText += \" |\";\n for (let i = 0; i < columnNum - 1; i++) {\n appendText += \" |\";\n }\n }\n return appendText + (/windows|win32/i.test(navigator.userAgent) ? \"\\r\\n\" : \"\\n\");\n };\n\n buildFormFormat = (rowNum, columnNum) => {\n let formFormat = \"\";\n for (let i = 0; i < 3; i++) {\n formFormat += this.buildRow(i, columnNum);\n }\n for (let i = 3; i <= rowNum; i++) {\n formFormat += this.buildRow(i, columnNum);\n }\n return formFormat;\n };\n\n handleOk = () => {\n const {markdownEditor} = this.props.content;\n const cursor = markdownEditor.getCursor();\n\n const text = this.buildFormFormat(this.state.rowNum, this.state.columnNum);\n markdownEditor.replaceSelection(text, cursor);\n\n const content = markdownEditor.getValue();\n this.props.content.setContent(content);\n\n this.handleCancel();\n cursor.ch += 2;\n markdownEditor.setCursor(cursor);\n markdownEditor.focus();\n };\n\n handleCancel = () => {\n this.setState(initialState);\n this.props.dialog.setFormOpen(false);\n };\n\n render() {\n return (\n \n \n this.setState({rowNum: value})}\n />\n \n \n this.setState({columnNum: value})}\n />\n \n \n );\n }\n}\n\nconst initialState = {\n columnNum: 1,\n rowNum: 2,\n};\n\nexport default FormDialog;\n","import * as React from \"react\";\nimport {Menu, Button, Radio} from \"antd\";\nimport CodeMirror from \"@uiw/react-codemirror\";\nimport {diff_match_patch as DiffMatchPath} from \"diff-match-patch\";\n\nimport \"./localHistory.css\";\n\nconst NOOP = () => {};\nconst prefix = \"nice-md-local-history\";\n\nconst diff = new DiffMatchPath();\n\nclass LocalHistory extends React.Component {\n constructor(props) {\n super(props);\n const {documents} = this.props;\n this.state = {\n content: documents[0].Content,\n selectedKeys: String(documents[0].id),\n mode: \"all\",\n };\n }\n\n getDiffHtml = () => {\n // eslint-disable-next-line no-underscore-dangle\n var a = diff.diff_linesToChars_(this.state.content, this.props.content);\n var lineText1 = a.chars1;\n var lineText2 = a.chars2;\n var diffs = diff.diff_main(lineText1, lineText2, false);\n // eslint-disable-next-line no-underscore-dangle\n diff.diff_charsToLines_(diffs, a.lineArray);\n const html = diff\n .diff_prettyHtml(diffs)\n .replace(/¶/g, \"\")\n .replace(/
    /g, \"​
    ​\");\n return html;\n };\n\n selectNav = ({selectedKeys}) => {\n const {Content: content} = this.props.documents.find((doc) => String(doc.id) === String(selectedKeys[0])) || {};\n this.setState({\n content,\n selectedKeys,\n });\n };\n\n handleModeChange = (e) => {\n this.setState({\n mode: e.target.value,\n });\n };\n\n render() {\n const {documents} = this.props;\n\n return (\n <>\n \n {documents.map((d) => (\n {d.SaveTime.toLocaleString()}\n ))}\n \n {this.state.content && (\n
    \n {this.state.mode === \"all\" ? (\n \n ) : (\n
    \n )}\n
    \n \n 全文\n 和当前内容对比\n \n
    \n \n {\n this.props.onEdit(this.state.content);\n }}\n >\n 恢复此版本\n \n
    \n
    \n
    \n )}\n \n );\n }\n}\n\nLocalHistory.defaultProps = {\n visible: false,\n document: [{}],\n onEdit: NOOP,\n onCancel: NOOP,\n};\n\nexport default LocalHistory;\n","import {message} from \"antd\";\n\nfunction saveTimeSort(a, b) {\n return new Date(b.SaveTime).getTime() - new Date(a.SaveTime).getTime();\n}\n\nexport const MaxLocalDocumentLength = 30;\n\n// export const AutoSaveInterval = 10 * 60 * 1000;\nexport const AutoSaveInterval = 60 * 1000;\n\nexport const getLocalDocuments = (db, DocumentID) => {\n try {\n const transaction = db.transaction([\"customers\"], \"readonly\");\n const store = transaction.objectStore(\"customers\");\n const keyRange = IDBKeyRange.only(DocumentID);\n const index = store.index(\"DocumentID\");\n const req = index.openCursor(keyRange);\n\n return new Promise((resolve, reject) => {\n const result = [];\n req.onsuccess = (event) => {\n const cursor = event.target.result;\n if (cursor) {\n // Do something with the matches.\n result.push(cursor.value);\n cursor.continue();\n } else {\n // console.log('获取成功 ');\n result.sort(saveTimeSort);\n resolve(result);\n }\n };\n req.onerror = (event) => {\n console.error(\"获取失败\");\n reject(event);\n };\n });\n } catch (e) {\n console.log(\"未知错误\", DocumentID);\n return Promise.reject(e);\n }\n};\n\nexport const setLocalDocuments = (db, localDocuments, document = {}) => {\n const draftIndex = 0;\n if (localDocuments[draftIndex + 1] && localDocuments[draftIndex + 1].Content === localDocuments[draftIndex].Content) {\n console.log(\"内容未更新,不进行本地保存。\");\n return Promise.resolve();\n }\n\n return new Promise((resolve, reject) => {\n const transaction = db.transaction([\"customers\"], \"readwrite\");\n const store = transaction.objectStore(\"customers\");\n let req = {};\n\n // Info: 长度超过用 put,没超过用 add\n if (localDocuments.length >= MaxLocalDocumentLength) {\n const {id} = localDocuments.sort(saveTimeSort)[localDocuments.length - 1];\n req = store.put({\n ...document,\n id,\n });\n } else {\n req = store.add(document);\n }\n\n req.onsuccess = () => {\n console.log(\"自动保存成功\");\n resolve();\n };\n req.onerror = (event) => {\n message.error(\"自动保存失败\");\n reject(event);\n };\n });\n};\n\nexport const setLocalDraft = (db, localDocuments, document = {}) => {\n const draft = localDocuments[0];\n if (draft && document.Content === draft.Content) {\n console.log(\"草稿未更新,不进行本地保存。\");\n return Promise.resolve();\n }\n\n return new Promise((resolve, reject) => {\n const transaction = db.transaction([\"customers\"], \"readwrite\");\n const store = transaction.objectStore(\"customers\");\n\n // Info: 更新草稿\n const {id} = draft;\n const req = store.put({\n ...document,\n id,\n });\n\n req.onsuccess = () => {\n console.log(\"自动保存草稿成功\");\n resolve();\n };\n req.onerror = (event) => {\n message.error(\"自动保存草稿失败\");\n reject(event);\n };\n });\n};\n","import {message} from \"antd\";\n\n// In the following line, you should include the prefixes of implementations you want to test.\nconst indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;\n// DON'T use \"var indexedDB = ...\" if you're not in a function.\n// Moreover, you may need references to some window.IDB* objects:\n// const IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction;\n// const IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;\n\n// (Mozilla has never prefixed these objects, so we don't need window.mozIDB*)\n\nexport default class IndexDB {\n constructor(options = {}) {\n this.options = options;\n }\n\n async init() {\n if (!indexedDB) {\n message.error(\"初始化 indexdb 失败!浏览器不支持\");\n throw Error(\"浏览器不支持 indexdb\");\n }\n\n const {name, storeName = \"\", storeOptions = {}, storeInit = () => {}} = this.options;\n\n this.storeName = storeName;\n this.storeOptions = storeOptions;\n this.storeInit = storeInit;\n\n const request = indexedDB.open(name);\n const result = await this.initEvent(request);\n return result;\n }\n\n initEvent(request) {\n return new Promise((resolve, reject) => {\n request.onerror = (event) => {\n // Do something with request.errorCode!\n message.error(\"初始化数据库失败!\", event.target.errorCode);\n reject(new Error(\"初始化数据库失败!\"));\n };\n\n request.onsuccess = (event) => {\n const db = event.target.result;\n console.log(\"成功初始化数据库\");\n // this.db = db;\n resolve(db);\n };\n\n // 该事件仅在较新的浏览器中被实现\n request.onupgradeneeded = (event) => {\n // 更新对象存储空间和索引 ....\n const db = event.target.result;\n this.initStore(db, this.storeName, this.storeOptions, this.storeInit);\n };\n });\n }\n\n initStore(db, name, options, func) {\n // 创建一个对象存储空间来持有信息。\n const objectStore = db.createObjectStore(name, options);\n if (func) func(objectStore);\n }\n}\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\nimport {Modal, Empty, message} from \"antd\";\nimport LocalHistory from \"../LocalHistory\";\nimport {AutoSaveInterval, getLocalDocuments, setLocalDocuments, setLocalDraft} from \"../LocalHistory/util\";\nimport IndexDB from \"../LocalHistory/indexdb\";\nimport debouce from \"lodash.debounce\";\n\nconst DocumentID = 1;\n\n@inject(\"dialog\")\n@inject(\"content\")\n@observer\nclass HistoryDialog extends Component {\n timer = null;\n\n db = null;\n\n constructor(props) {\n super(props);\n this.state = {\n documents: [],\n };\n }\n\n async componentDidMount() {\n await this.initIndexDB();\n }\n\n componentWillUnmount() {\n clearInterval(this.timer);\n }\n\n get editor() {\n return this.props.content.markdownEditor;\n }\n\n //\n // async UNSAFE_componentWillReceiveProps(nextProps) {\n // // 文档 id 变更\n // if (this.props.documentID !== nextProps.documentID && nextProps.documentID != null) {\n // if (this.db) {\n // await this.overrideLocalDocuments(nextProps.documentID);\n // }\n // }\n // }\n //\n\n closeDialog = () => {\n this.props.dialog.setHistoryOpen(false);\n };\n\n editLocalDocument = (content) => {\n this.props.content.setContent(content);\n message.success(\"恢复成功!\");\n this.closeDialog();\n };\n\n autoSave = async (isRecent = false) => {\n const Content = this.props.content.markdownEditor.getValue();\n if (Content.trim() !== \"\") {\n const document = {\n Content,\n DocumentID: this.props.documentID,\n SaveTime: new Date(),\n };\n const setLocalDocumentMethod = isRecent && this.state.documents.length > 0 ? setLocalDraft : setLocalDocuments;\n await setLocalDocumentMethod(this.db, this.state.documents, document);\n await this.overrideLocalDocuments(this.props.documentID);\n }\n };\n\n async initIndexDB() {\n try {\n const indexDB = new IndexDB({\n name: \"mdnice-local-history\",\n storeName: \"customers\",\n storeOptions: {keyPath: \"id\", autoIncrement: true},\n storeInit: (objectStore) => {\n objectStore.createIndex(\"DocumentID\", \"DocumentID\", {unique: false});\n objectStore.createIndex(\"SaveTime\", \"SaveTime\", {unique: false});\n },\n });\n this.db = await indexDB.init();\n\n if (this.db && this.props.documentID) {\n await this.overrideLocalDocuments(this.props.documentID);\n }\n // 每隔一段时间自动保存\n this.timer = setInterval(async () => {\n await this.autoSave();\n }, AutoSaveInterval);\n // 每改变内容自动保存最近的一条\n this.editor.on &&\n this.editor.on(\n \"change\",\n debouce(async () => {\n await this.autoSave(true);\n }, 1000),\n );\n } catch (e) {\n console.error(e);\n }\n }\n\n // 刷新本地历史文档\n async overrideLocalDocuments(documentID) {\n const localDocuments = await getLocalDocuments(this.db, +documentID);\n // console.log('refresh local',localDocuments);\n this.setState({\n documents: localDocuments,\n });\n }\n\n render() {\n return (\n \n {this.state.documents && this.state.documents.length > 0 ? (\n \n ) : (\n \n )}\n \n );\n }\n}\n\nHistoryDialog.defaultProps = {\n documentID: DocumentID,\n};\n\nexport default HistoryDialog;\n","import {Sitdown, RootNode} from \"sitdown/dist/src.esm\";\nimport {applyJuejinRule} from \"@sitdown/juejin/dist/src.esm\";\nimport {applyWechatRule, extraFootLinks} from \"@sitdown/wechat/dist/src.esm\";\nimport {applyZhihuRule} from \"@sitdown/zhihu/dist/src.esm\";\n\nconst gfm = new Sitdown({\n keepFilter: [\"style\"],\n codeBlockStyle: \"fenced\",\n});\nconst juejin = new Sitdown({\n keepFilter: [\"style\"],\n codeBlockStyle: \"fenced\",\n bulletListMarker: \"-\",\n hr: \"---\",\n});\njuejin.use(applyJuejinRule);\nconst wechat = new Sitdown({\n keepFilter: [\"style\"],\n codeBlockStyle: \"fenced\",\n bulletListMarker: \"-\",\n hr: \"---\",\n});\nwechat.use(applyWechatRule);\nconst wechatToMD = (html) => {\n const root = new RootNode(html);\n const footLinks = extraFootLinks(root);\n return wechat.HTMLToMD(html, {footLinks});\n};\nconst zhihu = new Sitdown({\n keepFilter: [\"style\"],\n codeBlockStyle: \"fenced\",\n bulletListMarker: \"-\",\n hr: \"---\",\n});\nzhihu.use(applyZhihuRule);\nconst csdn = new Sitdown({\n keepFilter: [\"style\"],\n codeBlockStyle: \"fenced\",\n bulletListMarker: \"-\",\n hr: \"---\",\n});\nconst methods = {\n GFM: (input) => gfm.HTMLToMD(input),\n Juejin: (input) => juejin.HTMLToMD(input),\n Zhihu: (input) => zhihu.HTMLToMD(input),\n Wechat: (input) => wechatToMD(input),\n CSDN: (input) => csdn.HTMLToMD(input),\n};\n\nexport default methods;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\nimport {Modal, Input, Select, message} from \"antd\";\n\nimport SitDownConverter from \"../../utils/sitdownConverter\";\nimport {SITDOWN_OPTIONS} from \"../../utils/constant\";\n\nconst {Option} = Select;\nconst {TextArea} = Input;\n\n@inject(\"dialog\")\n@inject(\"content\")\n@observer\nclass SitDownDialog extends Component {\n constructor(props) {\n super(props);\n this.state = {\n platform: \"wechat\",\n sourceCode: \"\",\n };\n }\n\n handleOk = () => {\n try {\n const {platform, sourceCode} = this.state;\n\n const domParser = new DOMParser();\n const sourceCodeDom = domParser.parseFromString(sourceCode, \"text/html\");\n\n let content = \"\";\n\n if (platform === \"csdn\") {\n const articleDom = sourceCodeDom.getElementById(\"content_views\");\n content = SitDownConverter.CSDN(articleDom);\n } else if (platform === \"juejin\") {\n const articleDom = sourceCodeDom.getElementsByClassName(\"article-content\");\n content = SitDownConverter.Juejin(articleDom[0]);\n } else if (platform === \"zhihu\") {\n const articleDom = sourceCodeDom.getElementsByClassName(\"Post-RichText\");\n content = SitDownConverter.Zhihu(articleDom[0]);\n } else if (platform === \"wechat\") {\n const articleDom = sourceCodeDom.getElementById(\"js_content\");\n content = SitDownConverter.Wechat(articleDom);\n } else {\n content = SitDownConverter.GFM(sourceCodeDom);\n }\n\n this.props.content.setContent(content);\n\n this.props.dialog.setSitDownOpen(false);\n\n const {markdownEditor} = this.props.content;\n // const cursor = markdownEditor.getCursor();\n // cursor.ch += 1;\n // markdownEditor.setCursor(cursor);\n markdownEditor.focus();\n } catch (e) {\n message.error(\"源代码与已选平台的文章域名不符\");\n }\n };\n\n handleCancel = () => {\n this.props.dialog.setSitDownOpen(false);\n };\n\n handlePlatform = (value) => {\n this.setState({platform: value});\n };\n\n handleSourceCode = (e) => {\n this.setState({sourceCode: e.target.value});\n };\n\n render() {\n const {sourceCode, platform} = this.state;\n return (\n \n \n\n \n 提示:右键->显示网页源代码->全选->复制粘贴。\n \n 详细文档\n \n \n );\n }\n}\n\nexport default SitDownDialog;\n","import React, {Component} from \"react\";\nimport ImageDialog from \"../component/Dialog/ImageDialog\";\nimport LinkDialog from \"../component/Dialog/LinkDialog\";\nimport AboutDialog from \"../component/Dialog/AboutDialog\";\nimport FormDialog from \"../component/Dialog/FormDialog\";\nimport HistoryDialog from \"../component/Dialog/HistoryDialog\";\nimport SitDownDialog from \"../component/Dialog/SitDownDialog\";\n\nclass Dialog extends Component {\n render() {\n return (\n
    \n \n \n \n \n \n \n
    \n );\n }\n}\n\nexport default Dialog;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\nimport {message} from \"antd\";\n\nimport {download, dateFormat} from \"../../../utils/helper\";\nimport {EXPORT_FILENAME_SUFFIX} from \"../../../utils/constant\";\nimport \"../common.css\";\n\n@inject(\"content\")\n@observer\nclass ExportMarkdown extends Component {\n handleClick = () => {\n const {markdownEditor} = this.props.content;\n const content = markdownEditor.getValue();\n if (\"download\" in document.createElement(\"a\")) {\n download(content, dateFormat(new Date(), \"yyyy-MM-dd\") + EXPORT_FILENAME_SUFFIX);\n } else {\n message.warn(\"浏览器不支持\");\n }\n };\n\n render() {\n return (\n
    \n \n \n 导出 Markdown\n \n
    \n );\n }\n}\n\nexport default ExportMarkdown;\n","import React, {Component} from \"react\";\n\nimport \"../common.css\";\n\nclass ExportPdf extends Component {\n handleClick = () => {\n setTimeout(() => {\n window.print();\n }, 500);\n };\n\n render() {\n return (\n
    \n \n \n 导出 PDF\n \n
    \n );\n }\n}\n\nexport default ExportPdf;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport \"../common.css\";\nimport {message} from \"antd\";\n\n@inject(\"content\")\n@observer\nclass ImportFile extends Component {\n handleChange = (e) => {\n const file = e.target.files[0];\n const reader = new FileReader();\n reader.onload = (event) => {\n this.props.content.setContent(event.target.result);\n message.success(\"导入文件成功!\");\n };\n reader.readAsText(file);\n };\n\n render() {\n return (\n \n );\n }\n}\n\nexport default ImportFile;\n","import React, {Component} from \"react\";\nimport {Menu, Dropdown} from \"antd\";\n\nimport ExportMarkdown from \"./File/ExportMarkdown\";\nimport ExportPdf from \"./File/ExportPdf\";\nimport ImportFile from \"./File/ImportFile\";\nimport \"./common.css\";\n\nconst menu = (\n \n \n \n \n \n \n \n \n \n \n \n);\n\nclass File extends Component {\n render() {\n return (\n \n \n 文件\n \n \n );\n }\n}\n\nexport default File;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport \"../common.css\";\n\n@inject(\"dialog\")\n@observer\nclass About extends Component {\n handleClick = () => {\n this.props.dialog.setAboutOpen(true);\n };\n\n render() {\n return (\n
    \n \n \n 关于\n \n
    \n );\n }\n}\n\nexport default About;\n","import React, {Component} from \"react\";\nimport {Menu, Dropdown} from \"antd\";\n\nimport About from \"./Help/About\";\n\nimport \"./common.css\";\n\nconst menu = (\n \n \n \n \n \n);\n\nclass Help extends Component {\n render() {\n return (\n \n \n 帮助\n \n \n );\n }\n}\n\nexport default Help;\n","import {message} from \"antd\";\nimport prettier from \"prettier/standalone\";\nimport prettierMarkdown from \"prettier/parser-markdown\";\n\nconst wrapChar = /windows|win32/i.test(navigator.userAgent) ? \"\\r\\n\" : \"\\n\";\n\nconst handleWechatOuterLink = (content) => {\n const linkImgReg = /(!)*\\[.*?\\]\\(((?!mp.weixin.qq.com).)*?\\)/g;\n const res = content.match(linkImgReg); // 匹配到图片、链接和脚注\n\n if (res === null) {\n return content;\n }\n\n const footReg = /.*?\\(.*?\"(.*?)\".*?\\)/;\n const filterRes = res.filter((val) => {\n const comment = val.match(footReg);\n if (val[0] === \"!\") {\n return false;\n }\n if (comment && comment[1] !== \"\") {\n return false;\n }\n return true;\n }); // 过滤掉图片和脚注\n\n if (filterRes.length > 0) {\n filterRes.forEach((val) => {\n const linkReg = /\\[(.*?)\\]\\((.*?)\\)/; // 匹配链接中具体的值\n const matchValue = val.match(linkReg);\n const name = matchValue[1];\n const url = matchValue[2].trim();\n\n const newVal = `[${name}](${url} \"${name}\")`;\n content = content.replace(val, newVal);\n });\n return content;\n } else {\n return content;\n }\n};\n\nexport const parseLinkToFoot = (content, store) => {\n content = handleWechatOuterLink(content);\n content = content.replace(/([\\u4e00-\\u9fa5])\\$/g, \"$1 $\");\n content = content.replace(/\\$([\\u4e00-\\u9fa5])/g, \"$ $1\");\n store.setContent(content);\n message.success(\"微信外链转脚注完成!\");\n};\n\nconst handlePrettierDoc = (content) => {\n const prettierRes = prettier.format(content, {\n parser: \"markdown\",\n plugins: [prettierMarkdown],\n });\n return prettierRes;\n};\n\nexport const formatDoc = (content, store) => {\n content = handlePrettierDoc(content);\n content = content.replace(/([\\u4e00-\\u9fa5])\\$/g, \"$1 $\");\n content = content.replace(/\\$([\\u4e00-\\u9fa5])/g, \"$ $1\");\n store.setContent(content);\n message.success(\"格式化文档完成!\");\n};\n\nexport const bold = (editor, selection) => {\n editor.replaceSelection(`**${selection}**`);\n const cursor = editor.getCursor();\n cursor.ch -= 2;\n editor.setCursor(cursor);\n};\n\nexport const del = (editor, selection) => {\n editor.replaceSelection(`~~${selection}~~`);\n const cursor = editor.getCursor();\n cursor.ch -= 2;\n editor.setCursor(cursor);\n};\n\nexport const italic = (editor, selection) => {\n editor.replaceSelection(`*${selection}*`);\n const cursor = editor.getCursor();\n cursor.ch -= 1;\n editor.setCursor(cursor);\n};\n\nexport const code = (editor, selection) => {\n editor.replaceSelection(`${wrapChar}\\`\\`\\`${wrapChar}${selection}${wrapChar}\\`\\`\\`${wrapChar}`);\n const cursor = editor.getCursor();\n cursor.line -= 2;\n editor.setCursor(cursor);\n};\n\nexport const inlineCode = (editor, selection) => {\n editor.replaceSelection(`\\`${selection}\\``);\n const cursor = editor.getCursor();\n cursor.ch -= 1;\n editor.setCursor(cursor);\n};\n\nexport const h1 = (editor, selection) => {\n editor.replaceSelection(`# ${selection}`);\n};\n\nexport const h2 = (editor, selection) => {\n editor.replaceSelection(`## ${selection}`);\n};\n\nexport const h3 = (editor, selection) => {\n editor.replaceSelection(`### ${selection}`);\n};\n","import * as keyEvents from \"./editorKeyEvents\";\nimport {isPlatformWindows} from \"./helper\";\n\nconst handlePressHotkey = (type, content) => {\n const {markdownEditor} = content;\n const selection = markdownEditor.getSelection();\n switch (type) {\n case \"Bold\":\n keyEvents.bold(markdownEditor, selection);\n break;\n case \"Del\":\n keyEvents.del(markdownEditor, selection);\n break;\n case \"Italic\":\n keyEvents.italic(markdownEditor, selection);\n break;\n case \"Code\":\n keyEvents.code(markdownEditor, selection);\n break;\n case \"InlineCode\":\n keyEvents.inlineCode(markdownEditor, selection);\n break;\n case \"H1\":\n keyEvents.h1(markdownEditor, selection);\n break;\n case \"H2\":\n keyEvents.h2(markdownEditor, selection);\n break;\n case \"H3\":\n keyEvents.h3(markdownEditor, selection);\n break;\n default:\n return;\n }\n\n const editorContent = markdownEditor.getValue();\n content.setContent(editorContent);\n};\n\nconst bindHotkeys = (content, dialog) =>\n isPlatformWindows\n ? {\n \"Ctrl-B\": () => {\n handlePressHotkey(\"Bold\", content);\n },\n \"Ctrl-U\": () => {\n handlePressHotkey(\"Del\", content);\n },\n \"Ctrl-I\": () => {\n handlePressHotkey(\"Italic\", content);\n },\n \"Ctrl-Alt-C\": () => {\n handlePressHotkey(\"Code\", content);\n },\n \"Ctrl-Alt-V\": () => {\n handlePressHotkey(\"InlineCode\", content);\n },\n \"Ctrl-Alt-1\": () => {\n handlePressHotkey(\"H1\", content);\n },\n \"Ctrl-Alt-2\": () => {\n handlePressHotkey(\"H2\", content);\n },\n \"Ctrl-Alt-3\": () => {\n handlePressHotkey(\"H3\", content);\n },\n \"Ctrl-K\": () => {\n dialog.setLinkOpen(true);\n },\n \"Ctrl-Alt-I\": () => {\n dialog.setImageOpen(true);\n },\n \"Ctrl-Alt-T\": () => {\n dialog.setFormOpen(true);\n },\n \"Ctrl-Alt-S\": () => {\n // Converting between sans serif and serif\n },\n \"Ctrl-Alt-L\": () => {\n keyEvents.parseLinkToFoot(content.content, content);\n },\n \"Ctrl-Alt-F\": () => {\n keyEvents.formatDoc(content.content, content);\n },\n \"Ctrl-F\": () => {\n dialog.setSearchOpen(!dialog.isSearchOpen);\n },\n }\n : {\n \"Cmd-B\": () => {\n handlePressHotkey(\"Bold\", content);\n },\n \"Cmd-U\": () => {\n handlePressHotkey(\"Del\", content);\n },\n \"Cmd-I\": () => {\n handlePressHotkey(\"Italic\", content);\n },\n \"Cmd-Alt-C\": () => {\n handlePressHotkey(\"Code\", content);\n },\n \"Cmd-Alt-V\": () => {\n handlePressHotkey(\"InlineCode\", content);\n },\n \"Cmd-Alt-1\": () => {\n handlePressHotkey(\"H1\", content);\n },\n \"Cmd-Alt-2\": () => {\n handlePressHotkey(\"H2\", content);\n },\n \"Cmd-Alt-3\": () => {\n handlePressHotkey(\"H3\", content);\n },\n \"Cmd-K\": () => {\n dialog.setLinkOpen(true);\n },\n \"Cmd-Alt-I\": () => {\n dialog.setImageOpen(true);\n },\n \"Cmd-Alt-T\": () => {\n dialog.setFormOpen(true);\n },\n \"Cmd-Alt-S\": () => {\n // Converting between sans serif and serif\n },\n \"Cmd-Alt-L\": () => {\n keyEvents.parseLinkToFoot(content.content, content);\n },\n \"Cmd-Alt-F\": () => {\n keyEvents.formatDoc(content.content, content);\n },\n \"Cmd-F\": () => {\n dialog.setSearchOpen(!dialog.isSearchOpen);\n },\n };\n\nexport const hotKeys = isPlatformWindows\n ? {\n bold: \"Ctrl+B\",\n del: \"Ctrl+U\",\n italic: \"Ctrl+I\",\n code: \"Ctrl+Alt+C\",\n inlineCode: \"Ctrl+Alt+V\",\n link: \"Ctrl+K\",\n image: \"Ctrl+Alt+I\",\n form: \"Ctrl+Alt+T\",\n format: \"Ctrl+Alt+F\",\n linkToFoot: \"Ctrl+Alt+L\",\n search: \"Ctrl+F\",\n }\n : {\n bold: \"⌘B\",\n del: \"⌘U\",\n italic: \"⌘I\",\n code: \"⌥⌘C\",\n inlineCode: \"⌥⌘V\",\n link: \"⌘K\",\n image: \"⌥⌘I\",\n form: \"⌥⌘T\",\n format: \"⌥⌘F\",\n linkToFoot: \"⌥⌘L\",\n search: \"⌘F\",\n };\n\nexport const betterTab = (cm) => {\n if (cm.somethingSelected()) {\n cm.indentSelection(\"add\");\n } else {\n cm.replaceSelection(\n cm.getOption(\"indentWithTabs\") ? \"\\t\" : Array(cm.getOption(\"indentUnit\") + 1).join(\" \"),\n \"end\",\n \"+input\",\n );\n }\n};\n\nexport const rightClick = (cm) => {\n const ele = document.getElementById(\"nice-md-editor\");\n ele.oncontextmenu = (e) => {\n const element = document.getElementById(\"nice-editor-menu\");\n element.style.display = \"block\";\n // event--ie ev--其他浏览器\n const oEvent = window.event || window.ev;\n // documentElement--其他游览器 body--谷歌\n const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n // 菜单的style样式跟随鼠标的位置\n element.style.top = oEvent.clientY + scrollTop + \"px\";\n const scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;\n element.style.left = oEvent.clientX + scrollLeft + \"px\";\n return false;\n };\n window.onclick = (e) => {\n const element = document.getElementById(\"nice-editor-menu\");\n element.style.display = \"none\";\n };\n};\nexport default bindHotkeys;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport {bold} from \"../../../utils/editorKeyEvents\";\nimport {hotKeys} from \"../../../utils/hotkey\";\n\nimport \"../common.css\";\n\n@inject(\"content\")\n@observer\nclass Bold extends Component {\n handleClick = () => {\n const {markdownEditor} = this.props.content;\n const selection = markdownEditor.getSelection();\n bold(markdownEditor, selection);\n\n // 上传后实时更新内容\n const content = markdownEditor.getValue();\n this.props.content.setContent(content);\n markdownEditor.focus();\n };\n\n render() {\n return (\n
    \n \n \n 加粗\n \n\n {hotKeys.bold}\n
    \n );\n }\n}\n\nexport default Bold;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport {code} from \"../../../utils/editorKeyEvents\";\nimport {hotKeys} from \"../../../utils/hotkey\";\n\nimport \"../common.css\";\n\n@inject(\"content\")\n@observer\nclass Code extends Component {\n handleClick = () => {\n const {markdownEditor} = this.props.content;\n const selection = markdownEditor.getSelection();\n code(markdownEditor, selection);\n\n // 上传后实时更新内容\n const content = markdownEditor.getValue();\n this.props.content.setContent(content);\n markdownEditor.focus();\n };\n\n render() {\n return (\n
    \n \n \n 代码\n \n {hotKeys.code}\n
    \n );\n }\n}\n\nexport default Code;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport {del} from \"../../../utils/editorKeyEvents\";\nimport {hotKeys} from \"../../../utils/hotkey\";\n\nimport \"../common.css\";\n\n@inject(\"content\")\n@observer\nclass Del extends Component {\n handleClick = () => {\n const {markdownEditor} = this.props.content;\n const selection = markdownEditor.getSelection();\n del(markdownEditor, selection);\n\n // 上传后实时更新内容\n const content = markdownEditor.getValue();\n this.props.content.setContent(content);\n markdownEditor.focus();\n };\n\n render() {\n return (\n
    \n \n \n 删除线\n \n {hotKeys.del}\n
    \n );\n }\n}\n\nexport default Del;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport {italic} from \"../../../utils/editorKeyEvents\";\nimport {hotKeys} from \"../../../utils/hotkey\";\n\nimport \"../common.css\";\n\n@inject(\"content\")\n@observer\nclass Italic extends Component {\n handleClick = () => {\n const {markdownEditor} = this.props.content;\n const selection = markdownEditor.getSelection();\n italic(markdownEditor, selection);\n\n // 上传后实时更新内容\n const content = markdownEditor.getValue();\n this.props.content.setContent(content);\n markdownEditor.focus();\n };\n\n render() {\n return (\n
    \n \n \n 倾斜\n \n {hotKeys.italic}\n
    \n );\n }\n}\n\nexport default Italic;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport {hotKeys} from \"../../../utils/hotkey\";\n\nimport \"../common.css\";\n\n@inject(\"dialog\")\n@observer\nclass Link extends Component {\n showModal = () => {\n this.props.dialog.setLinkOpen(true);\n };\n\n render() {\n return (\n
    \n \n \n 链接\n \n {hotKeys.link}\n
    \n );\n }\n}\n\nexport default Link;\n","import React, {Component} from \"react\";\nimport {inject, observer} from \"mobx-react\";\n\nimport {hotKeys} from \"../../../utils/hotkey\";\n\nimport \"../common.css\";\n\n@inject(\"dialog\")\n@observer\nclass Form extends Component {\n showModal = () => {\n this.props.dialog.setFormOpen(true);\n };\n\n render() {\n return (\n
    \n \n \n 表格\n \n {hotKeys.form}\n
    \n );\n }\n}\n\nexport default Form;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport {hotKeys} from \"../../../utils/hotkey\";\n\nimport \"../common.css\";\n\n@inject(\"dialog\")\n@observer\nclass Image extends Component {\n showModal = () => {\n this.props.dialog.setImageOpen(true);\n };\n\n render() {\n return (\n
    \n \n \n 图片\n \n {hotKeys.image}\n
    \n );\n }\n}\n\nexport default Image;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport {formatDoc} from \"../../../utils/editorKeyEvents\";\nimport {hotKeys} from \"../../../utils/hotkey\";\n\nimport \"../common.css\";\n\n@inject(\"content\")\n@observer\nclass Format extends Component {\n handleFormat = () => {\n const {content} = this.props.content;\n formatDoc(content, this.props.content);\n };\n\n render() {\n return (\n
    \n \n \n 格式化文档\n \n {hotKeys.format}\n
    \n );\n }\n}\n\nexport default Format;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport {parseLinkToFoot} from \"../../../utils/editorKeyEvents\";\nimport {hotKeys} from \"../../../utils/hotkey\";\n\nimport \"../common.css\";\n\n@inject(\"content\")\n@observer\nclass Format extends Component {\n handleFormat = () => {\n const {content} = this.props.content;\n parseLinkToFoot(content, this.props.content);\n };\n\n render() {\n return (\n \n );\n }\n}\n\nexport default Format;\n","import React, {Component} from \"react\";\nimport {message} from \"antd\";\n\nimport {FONT_THEME_ID, RIGHT_SYMBOL} from \"../../../utils/constant\";\nimport {replaceStyle} from \"../../../utils/helper\";\nimport \"../common.css\";\n\nclass Font extends Component {\n constructor(props) {\n super(props);\n this.state = {\n isSerif: false,\n };\n }\n\n // 衬线字体 和 非衬线字体 切换\n toggleFont = () => {\n const {isSerif} = this.state;\n const serif = `#nice { \n font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;\n }`;\n const sansSerif = `#nice { \n font-family: Roboto, Oxygen, Ubuntu, Cantarell, PingFangSC-light, PingFangTC-light, 'Open Sans', 'Helvetica Neue', sans-serif;\n }`;\n const choosen = isSerif ? serif : sansSerif;\n replaceStyle(FONT_THEME_ID, choosen);\n message.success(\"字体切换成功!\");\n this.setState({isSerif: !isSerif});\n };\n\n render() {\n return (\n
    \n \n {!this.state.isSerif && {RIGHT_SYMBOL}}\n 衬线字体\n \n
    \n );\n }\n}\n\nexport default Font;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport {inlineCode} from \"../../../utils/editorKeyEvents\";\nimport {hotKeys} from \"../../../utils/hotkey\";\n\nimport \"../common.css\";\n\n@inject(\"content\")\n@observer\nclass InlineCode extends Component {\n handleClick = () => {\n const {markdownEditor} = this.props.content;\n const selection = markdownEditor.getSelection();\n inlineCode(markdownEditor, selection);\n\n // 上传后实时更新内容\n const content = markdownEditor.getValue();\n this.props.content.setContent(content);\n markdownEditor.focus();\n };\n\n render() {\n return (\n
    \n \n \n 行内代码\n \n {hotKeys.inlineCode}\n
    \n );\n }\n}\n\nexport default InlineCode;\n","import React, {Component} from \"react\";\nimport {Menu, Dropdown} from \"antd\";\n\nimport Bold from \"./Pattern/Bold\";\nimport Code from \"./Pattern/Code\";\nimport Del from \"./Pattern/Del\";\nimport Italic from \"./Pattern/Italic\";\nimport Link from \"./Pattern/Link\";\nimport Form from \"./Pattern/Form\";\nimport Image from \"./Pattern/Image\";\nimport Format from \"./Pattern/Format\";\nimport LinkToFoot from \"./Pattern/LinkToFoot\";\nimport Font from \"./Pattern/Font\";\nimport InlineCode from \"./Pattern/InlineCode\";\n\nimport \"./common.css\";\n\nconst menu = (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n
    \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n
    \n);\n\nclass Pattern extends Component {\n render() {\n return (\n \n \n 格式\n \n \n );\n }\n}\n\nexport default Pattern;\n","import blue from \"./markdown/blue\";\nimport blueCyan from \"./markdown/blueCyan\";\nimport blueMountain from \"./markdown/blueMountain\";\nimport custom from \"./markdown/custom\";\nimport cyan from \"./markdown/cyan\";\nimport geekBlack from \"./markdown/geekBlack\";\nimport green from \"./markdown/green\";\nimport ink from \"./markdown/ink\";\nimport normal from \"./markdown/normal\";\nimport orangeHeart from \"./markdown/orangeHeart\";\nimport red from \"./markdown/red\";\nimport purple from \"./markdown/purple\";\nimport scienceBlue from \"./markdown/scienceBlue\";\nimport shanchui from \"./markdown/shanchui\";\nimport simple from \"./markdown/simple\";\nimport wechatFormat from \"./markdown/wechatFormat\";\nimport rose from \"./markdown/rose\";\nimport cuteGreen from \"./markdown/cuteGreen\";\nimport fullStackBlue from \"./markdown/fullStackBlue\";\n\nimport nightPurple from \"./markdown/nightPurple\";\nimport extremeBlack from \"./markdown/extremeBlack\";\n\nimport content from \"./content.md\";\n\nimport atomOneDark from \"./code/atomOneDark\";\nimport atomOneLight from \"./code/atomOneLight\";\nimport github from \"./code/github\";\nimport monokai from \"./code/monokai\";\nimport vs2015 from \"./code/vs2015\";\nimport xcode from \"./code/xcode\";\n\nimport macAtomOneDark from \"./macCode/macAtomOneDark\";\nimport macAtomOneLight from \"./macCode/macAtomOneLight\";\nimport macGithub from \"./macCode/macGithub\";\nimport macMonokai from \"./macCode/macMonokai\";\nimport macVs2015 from \"./macCode/macVs2015\";\nimport macXcode from \"./macCode/macXcode\";\n\nimport basic from \"./basic\";\n\nexport default {\n basic,\n style: {\n blue,\n blueMountain,\n blueCyan,\n normal,\n custom,\n cyan,\n geekBlack,\n green,\n ink,\n orangeHeart,\n purple,\n red,\n scienceBlue,\n shanchui,\n simple,\n wechatFormat,\n rose,\n cuteGreen,\n fullStackBlue,\n nightPurple,\n extremeBlack,\n },\n code: {\n atomOneDark,\n atomOneLight,\n github,\n monokai,\n vs2015,\n xcode,\n macAtomOneDark,\n macAtomOneLight,\n macGithub,\n macMonokai,\n macVs2015,\n macXcode,\n },\n content,\n};\n","export default `/*默认样式,最佳实践*/\n\n/*全局属性*/\n#nice {\n font-size: 16px;\n color: black;\n padding: 0 10px;\n line-height: 1.6;\n word-spacing: 0px;\n letter-spacing: 0px;\n word-break: break-word;\n word-wrap: break-word;\n text-align: left;\n font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;\n margin-top: -10px; /*解决开头空隙过大问题*/\n}\n\n/*段落*/\n#nice p {\n font-size: 16px;\n padding-top: 8px;\n padding-bottom: 8px;\n margin: 0;\n line-height: 26px;\n color: black;\n}\n\n/*标题*/\n#nice h1,\n#nice h2,\n#nice h3,\n#nice h4,\n#nice h5,\n#nice h6 {\n margin-top: 30px;\n margin-bottom: 15px;\n font-weight: bold;\n color: black;\n}\n#nice h1 {\n font-size: 24px;\n}\n#nice h2 {\n font-size: 22px;\n}\n#nice h3 {\n font-size: 20px;\n}\n#nice h4 {\n font-size: 18px;\n}\n#nice h5 {\n font-size: 16px;\n}\n#nice h6 {\n font-size: 16px;\n}\n\n#nice h1 .prefix,\n#nice h2 .prefix,\n#nice h3 .prefix,\n#nice h4 .prefix,\n#nice h5 .prefix,\n#nice h6 .prefix {\n display: none;\n}\n\n#nice h1 .suffix\n#nice h2 .suffix,\n#nice h3 .suffix,\n#nice h4 .suffix,\n#nice h5 .suffix,\n#nice h6 .suffix {\n display: none;\n}\n\n/*列表*/\n#nice ul,\n#nice ol {\n margin-top: 8px;\n margin-bottom: 8px;\n padding-left: 25px;\n color: black;\n}\n#nice ul {\n list-style-type: disc;\n}\n#nice ul ul {\n list-style-type: square;\n}\n\n#nice ol {\n list-style-type: decimal;\n}\n\n#nice li section {\n margin-top: 5px;\n margin-bottom: 5px;\n line-height: 26px;\n text-align: left;\n color: rgb(1,1,1); /* 只要是纯黑色微信编辑器就会把color这个属性吞掉。。。*/\n font-weight: 500;\n}\n\n/*引用*/\n#nice blockquote {\n display: block;\n font-size: 0.9em;\n overflow: auto;\n overflow-scrolling: touch;\n border-left: 3px solid rgba(0, 0, 0, 0.4);\n background: rgba(0, 0, 0, 0.05);\n color: #6a737d;\n padding-top: 10px;\n padding-bottom: 10px;\n padding-left: 20px;\n padding-right: 10px;\n margin-bottom: 20px;\n margin-top: 20px;\n}\n\n#nice blockquote p {\n margin: 0px;\n color: black;\n line-height: 26px;\n}\n\n#nice .table-of-contents a {\n border: none;\n color: black;\n font-weight: normal;\n}\n\n/*链接*/\n#nice a {\n text-decoration: none;\n color: #1e6bb8;\n word-wrap: break-word;\n font-weight: bold;\n border-bottom: 1px solid #1e6bb8;\n}\n\n/*加粗*/\n#nice strong {\n font-weight: bold;\n color: black;\n}\n\n/*斜体*/\n#nice em {\n font-style: italic;\n color: black;\n}\n\n/*加粗斜体*/\n#nice em strong {\n font-weight: bold;\n color: black;\n}\n\n/*删除线*/\n#nice del {\n font-style: italic;\n color: black;\n}\n\n/*分隔线*/\n#nice hr {\n height: 1px;\n margin: 0;\n margin-top: 10px;\n margin-bottom: 10px;\n border: none;\n border-top: 1px solid black;\n}\n\n/*代码块*/\n#nice pre {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n#nice pre code {\n display: -webkit-box;\n font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;\n border-radius: 0px;\n font-size: 12px;\n -webkit-overflow-scrolling: touch;\n}\n#nice pre code span {\n line-height: 26px;\n}\n\n/*行内代码*/\n#nice p code,\n#nice li code {\n font-size: 14px;\n word-wrap: break-word;\n padding: 2px 4px;\n border-radius: 4px;\n margin: 0 2px;\n color: #1e6bb8;\n background-color: rgba(27,31,35,.05);\n font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;\n word-break: break-all;\n}\n\n/*图片*/\n#nice img {\n display: block;\n margin: 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n/*图片*/\n#nice figure {\n margin: 0;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n\n/*图片描述文字*/\n#nice figcaption {\n margin-top: 5px;\n text-align: center;\n color: #888;\n font-size: 14px;\n}\n\n/*表格*/\n#nice table {\n display: table;\n text-align: left;\n}\n#nice tbody {\n border: 0;\n}\n\n#nice table tr {\n border: 0;\n border-top: 1px solid #ccc;\n background-color: white;\n}\n\n#nice table tr:nth-child(2n) {\n background-color: #F8F8F8;\n}\n\n#nice table tr th,\n#nice table tr td {\n font-size: 16px;\n border: 1px solid #ccc;\n padding: 5px 10px;\n text-align: left;\n}\n\n#nice table tr th {\n font-weight: bold;\n background-color: #f0f0f0;\n}\n\n/* 微信代码块 */\n#nice .code-snippet__fix {\n word-wrap: break-word !important;\n font-size: 14px;\n margin: 10px 0;\n display: block;\n color: #333;\n position: relative;\n background-color: rgba(0,0,0,0.03);\n border: 1px solid #f0f0f0;\n border-radius: 2px;\n display: flex;\n line-height: 20px;\n}\n#nice .code-snippet__fix pre {\n margin-bottom: 10px;\n margin-top: 0px;\n}\n#nice .code-snippet__fix .code-snippet__line-index {\n counter-reset: line;\n flex-shrink: 0;\n height: 100%;\n padding: 1em;\n list-style-type: none;\n padding: 16px;\n margin: 0;\n}\n#nice .code-snippet__fix .code-snippet__line-index li {\n list-style-type: none;\n text-align: right;\n line-height: 26px;\n color: black;\n margin: 0;\n}\n#nice .code-snippet__fix .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.3);\n}\n#nice .code-snippet__fix pre {\n overflow-x: auto;\n padding: 16px;\n padding-left: 0;\n white-space: normal;\n flex: 1;\n -webkit-overflow-scrolling: touch;\n}\n#nice .code-snippet__fix code {\n text-align: left;\n font-size: 14px;\n display: block;\n white-space: pre;\n display: flex;\n position: relative;\n font-family: Consolas,\"Liberation Mono\",Menlo,Courier,monospace;\n padding: 0px;\n}\n\n#nice .footnote-word {\n color: #1e6bb8;\n font-weight: bold;\n}\n\n#nice .footnote-ref {\n color: #1e6bb8;\n font-weight: bold;\n}\n\n#nice .footnote-item {\n display: flex;\n}\n\n#nice .footnote-num {\n display: inline;\n width: 10%; /*神奇,50px就不可以*/\n background: none;\n font-size: 80%;\n opacity: 0.6;\n line-height: 26px;\n font-family: ptima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;\n}\n\n#nice .footnote-item p {\n display: inline;\n font-size: 14px;\n width: 90%;\n padding: 0px;\n margin: 0;\n line-height: 26px;\n color: black;\n word-break:break-all;\n width: calc(100%-50)\n}\n\n#nice sub, sup {\n line-height: 0;\n}\n\n#nice .footnotes-sep:before {\n content: \"参考资料\";\n display: block;\n}\n\n/* 解决公式问题 */\n#nice .block-equation {\n display:block;\n text-align: center;\n overflow: auto;\n display: block;\n -webkit-overflow-scrolling: touch;\n}\n\n#nice .block-equation svg {\n max-width: 300% !important;\n -webkit-overflow-scrolling: touch;\n}\n\n#nice .inline-equation {\n}\n\n#nice .inline-equation svg {\n}\n\n#nice .imageflow-layer1 {\n margin: 1em auto;\n white-space: normal;\n border: 0px none;\n padding: 0px;\n overflow: hidden;\n}\n\n#nice .imageflow-layer2 {\n white-space: nowrap;\n width: 100%;\n overflow-x: scroll;\n}\n\n#nice .imageflow-layer3 {\n display: inline-block;\n word-wrap: break-word;\n white-space: normal;\n vertical-align: middle;\n width: 100%;\n}\n\n#nice .imageflow-img {\n display: inline-block;\n}\n\n#nice .nice-suffix-juejin-container {\n margin-top: 20px !important;\n}\n`;\n","export default `/* 全局属性 */\n\n#nice {\n font-family: \"PingFang SC\", \"Microsoft YaHei\", sans-serif;\n word-break: break-all;\n}\n\n/* 标题 */\n#nice h1 {\n font-size: 1.7em;\n font-weight: normal;\n border-bottom: 2px solid hsl(216, 100%, 68%);\n}\n\n#nice h1 .content {\n background: hsl(216, 100%, 68%);\n color: white;\n padding: 3px 10px;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n margin-right: 3px;\n}\n\n#nice h2 {\n font-weight: normal;\n color: #333;\n font-size: 1.4em;\n border-bottom: 1px solid hsl(216, 100%, 68%);\n}\n\n#nice h2 .content {\n border-bottom: 1px solid hsl(216, 100%, 68%);\n}\n\n#nice h3 {\n font-weight: normal;\n color: #333;\n font-size: 1.2em;\n}\n\n/* 特殊规定:\n * h4 → 摘要\n * h5 → 强调\n * h6 → 序号\n * em → 高亮\n */\n\n#nice h4 {\n font-weight: normal;\n font-size: 1em;\n width: 80%;\n border: 1px solid hsl(216, 100%, 68%);\n border-top: 4px solid hsl(216, 100%, 68%);\n padding: 10px;\n margin: 30px auto;\n color: #333;\n}\n\n#nice h5 {\n font-weight: normal;\n font-size: 1.3em;\n text-align: center;\n background: hsl(216, 100%, 68%);\n border: 3px double #fff;\n width: 80%;\n padding: 10px;\n margin: 30px auto;\n color: #fff;\n}\n\n#nice h6 {\n font-size: 1.5em;\n font-weight: normal;\n color: hsl(216, 100%, 68%);\n border-bottom: 1px solid hsl(216, 100%, 68%);\n}\n\n#nice em {\n font-style: normal;\n font-weight: normal;\n color: white;\n background: hsl(244, 100%, 75%);\n padding: 2px 4px;\n\tmargin: 0px 2px;\n}\n\n/* 其他块元素 */\n\n#nice ol,\n#nice ul {\n padding-left: 2em;\n}\n\n#nice hr {\n width: 90%;\n margin: 1.5em auto;\n border-top: 2px dashed hsl(216, 100%, 68%);\n}\n\n#nice table {\n margin: 1.5em auto;\n width: auto;\n}\n\n#nice img {\n width: 90%;\n margin: 0 auto;\n box-shadow: #CCC 0 10px 15px;\n}\n\n#nice blockquote {\n background: #f9f9f9;\n border-left-color: hsl(216, 100%, 68%);\n}\n\n#nice blockquote p {\n color: #999;\n padding: 3px 0;\n}\n\n#nice a {\n color: hsl(187, 100%, 45%);\n font-weight: normal;\n border-bottom-color: hsl(187, 100%, 45%);\n}\n\n#nice strong {\n color: hsl(216, 80%, 44%);\n}\n\n#nice s,\n#nice del {\n color: #999;\n}\n\n#nice p,\n#nice li,\n#nice li span,\n#nice h4,\n#nice table tr td {\n color: #666;\n}\n\n#nice table tr th {\n color: #333;\n font-weight: normal;\n}\n\n#nice p code,\n#nice li code {\n color: hsl(216, 100%, 68%);\n}\n\n#nice sup {\n line-height: 0;\n}\n\n#nice .footnote-word,\n.footnote-ref {\n font-weight: normal;\n color: hsl(187, 100%, 45%);\n}\n\n#nice .footnotes-sep {\n font-family: inherit;\n}\n\n#nice .footnote-num {\n font-family: inherit;\n}\n\n#nice .footnote-item p {\n color: #666;\n}\n\n#nice .footnote-item p em {\n color: #999;\n background: transparent;\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}`;\n","export default `/*初始化格式*/\n\n#nice {\n line-height: 1.6;\n letter-spacing: .034em;\n color: rgb(63, 63, 63);\n font-size: 16px;\n word-break:all;\n}\n\n#nice p {\n padding-top: 23px;\n color: rgb(74,74,74);\n line-height: 1.75em;\n}\n\n/* 一级标题 */\n#nice h1 {\n text-align:center;\n background-image: url(https://s2.loli.net/2022/01/14/X3gJHmQsAeStUFW.png); \n background-position: center top;\n background-repeat: no-repeat;\n background-size: 95px;\n line-height:95px;\n margin-top: 38px;\n margin-bottom: 10px;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n font-size: 20px;\n color: rgb(60, 112, 198);\n border-bottom:2px solid #3C7076;\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n \n/* 二级标题 */\n#nice h2 {\n display:block;\n text-align:center;\n background-image: url(https://s2.loli.net/2022/01/14/X3gJHmQsAeStUFW.png); \n background-position: center center;\n background-repeat: no-repeat;\n background-attachment: initial;\n background-origin: initial;\n background-clip: initial;\n background-size: 63px;\n margin-top: 38px;\n margin-bottom: 10px;\n}\n\n/*二级标题伪元素*/\n#nice h2:before {\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n text-align:center;\n display: inline-block;\n height: 38px;\n line-height: 42px;\n color: rgb(60, 112, 198);\n background-position: left center;\n background-repeat: no-repeat;\n background-attachment: initial;\n background-origin: initial;\n background-clip: initial;\n background-size: 63px;\n margin-top: 38px;\n font-size:18px;\n margin-bottom: 10px;\n}\n\n/* 三级标题 */\n#nice h3:before {\n content: \"\";\n background-image:url(https://my-wechat.mdnice.com/mdnice/mountain_1_20191028221337.png);\n background-size:15px 15px;\n display: inline-block;\n width: 15px;\n height: 15px;\n line-height:15px;\n margin-bottom:-1px;\n}\n\n#nice h3 {\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n font-size:16px;\n font-weight:bold;\n display:inline-block;\n margin-left:8px;\n color:rgb(60,112,198);\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n/* 列表内容 */\n#nice li {\n}\n\n/* 引用\n * 左边缘颜色 border-left-color:black;\n * 背景色 background:gray;\n */\n#nice blockquote {\n padding: 15px 20px;\n line-height: 27px;\n background-color: rgb(239, 239, 239);\n border-left:none;\n display:block;\n}\n\n/* 引用文字 */\n#nice blockquote p {\n padding: 0px;\n font-size:15px;\n color:rgb(89,89,89);\n}\n\n/* 链接 */\n#nice a {\n color: rgb(60, 112, 198);\n text-decoration:none;\n border-bottom: 1px solid rgb(60, 112, 198);\n}\n\n/* 加粗 */\n#nice strong {\n line-height: 1.75em;\n color: rgb(74,74,74);\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n color:rgb(248,57,41);\n letter-spacing:0.3em;\n}\n\n/* 删除线 */\n#nice del {\n}\n \n/* 分割线 */\n#nice hr {\n height:1px;\n padding:0;\n border:none;\n text-align:center;\n background-image:linear-gradient(to right,rgba(60,122,198,0),rgba(60,122,198,0.75),rgba(60,122,198,0));\n}\n\n/* 图片 */\n#nice img {\n border-radius:4px;\n margin-bottom:25px;\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n display:block;\n font-size:12px;\n font-family:PingFangSC-Light;\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n\tcolor: rgb(60, 112, 198);;\n}\n\n/* 非微信代码块\n * 代码块不换行 display:-webkit-box !important;\n * 代码块换行 display:block;\n */\n#nice pre code {\n}\n\n/* 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n font-size: 14px;\n}\n\n#nice .footnotes{\n padding-top: 8px;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: rgb(60, 112, 198);\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: rgb(60, 112, 198);\n}\n\n/* 脚注超链接样式 */\n#nice .footnote-item em {\n color: rgb(60, 112, 198);\n font-size:13px;\n font-style:normal;\n border-bottom-color:1px dashed rgb(60, 112, 198); \n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n background-image: none;\n background-size: none;\n display: block;\n width: auto;\n height: auto;\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n color: rgb(60, 112, 198);\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p {\n color: rgb(60, 112, 198);\n font-weight:bold;\n}\n\n/* 参考资料超链接 */\n#nice .footnote-item a {\n color:rgb(60, 112, 198);\n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n font-size:14px;\n font-weight:normal;\n border-bottom:1px dashed rgb(60, 112, 198);\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n \n}\n\n/* 行内公式*/\n#nice .inline-equation svg { \n}`;\n","export default `/*自定义样式,实时生效*/\n\n/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n text-align: justify;\n}\n\n/* 一级标题 */\n#nice h1 {\n font-size: 1.8em;\n color: #009688;\n \tmargin: 1.2em auto;\n text-align: center;\n border-bottom: 1px solid #009688;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n\n/* 二级标题 */\n#nice h2 {\n color: #009688;\n padding-left: 10px;\n margin: 1em auto;\n border-left: 3px solid #009688;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n}\n\n/* 三级标题 */\n#nice h3 {\n margin: 0.6em auto;\n padding-left: 10px;\n border-left: 2px solid #009688;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n/* 四级标题 */\n#nice h4 {\n margin: 0.6em auto;\n font-size: 1.2em;\n padding-left: 10px;\n border-left: 2px dashed #009688;\n}\n\n/* 五级标题 */\n#nice h5 {\n margin: 0.6em auto;\n font-size: 1.1em;\n padding-left: 10px;\n border-left: 1px dashed #009688;\n}\n\n/* 六级标题 */\n#nice h6 {\n margin: 0.6em auto;\n font-size: 1em;\n padding-left: 10px;\n border-left: 1px dotted #009688;\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n}\n\n/* 引用\n * 左边缘颜色 border-left-color: black;\n * 背景色 background: gray;\n */\n#nice blockquote {\n border-left: 2px solid #888;\n border-right: 2px solid #888;\n padding-left: 1em;\n color: #777;\n}\n\n/* 引用文字 */\n#nice blockquote p {\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: #009688;\n border-bottom: 1px solid #009688;\n}\n\n/* 加粗 */\n#nice strong {\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n}\n\n/* 删除线 */\n#nice del {\n}\n\n/* 分隔线\n * 粗细、样式和颜色\n * border-top: 1px solid #3e3e3e;\n */\n#nice hr {\n margin: 20px 0;\n}\n\n/* 图片\n * 宽度 width: 80%;\n * 居中 margin: 0 auto;\n * 居左 margin: 0 0;\n */\n#nice img {\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n color: #009688;\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {\n}\n\n/* 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th {\n border: 1px solid #009688;\n background-color: #009688;\n color: #f8f8f8;\n border-bottom: 0;\n}\n\n#nice table tr td {\n border: 1px solid #009688;\n}\n\n#nice table tr:nth-child(2n) {\n background-color: #f8f8f8;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #009688;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: #009688;\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}`;\n","export default `/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n}\n\n/* 一级标题 */\n#nice h1 {\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n}\n\n/* 一级标题前缀 */\n#nice h1 .prefix {\n}\n\n/* 一级标题后缀 */\n#nice h1 .suffix {\n}\n\n/* 二级标题 */\n#nice h2 {\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n}\n\n/* 二级标题前缀 */\n#nice h2 .prefix {\n}\n\n/* 二级标题后缀 */\n#nice h2 .suffix {\n}\n\n/* 三级标题 */\n#nice h3 {\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n}\n\n/* 三级标题前缀 */\n#nice h3 .prefix {\n}\n\n/* 三级标题后缀 */\n#nice h3 .suffix {\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n}\n\n/* 引用\n* 左边缘颜色 border-left-color: black;\n* 背景色 background: gray;\n*/\n#nice blockquote {\n}\n\n/* 引用文字 */\n#nice blockquote p {\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n}\n\n/* 加粗 */\n#nice strong {\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n}\n\n/* 删除线 */\n#nice del {\n}\n\n/* 分隔线\n* 粗细、样式和颜色\n* border-top: 1px solid #3e3e3e;\n*/\n#nice hr {\n}\n\n/* 图片\n* 宽度 width: 80%;\n* 居中 margin: 0 auto;\n* 居左 margin: 0 0;\n*/\n#nice img {\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}`;\n","export default `/* 自定义样式,实时生效,浏览器实时缓存 */\n\n/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n}\n\n/* 一级标题 */\n#nice h1 {\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n}\n\n/* 一级标题前缀 */\n#nice h1 .prefix {\n}\n\n/* 一级标题后缀 */\n#nice h1 .suffix {\n}\n\n/* 二级标题 */\n#nice h2 {\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n}\n\n/* 二级标题前缀 */\n#nice h2 .prefix {\n}\n\n/* 二级标题后缀 */\n#nice h2 .suffix {\n}\n\n/* 三级标题 */\n#nice h3 {\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n}\n\n/* 三级标题前缀 */\n#nice h3 .prefix {\n}\n\n/* 三级标题后缀 */\n#nice h3 .suffix {\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n}\n\n/* 引用\n * 左边缘颜色 border-left-color: black;\n * 背景色 background: gray;\n */\n#nice blockquote {\n}\n\n/* 引用文字 */\n#nice blockquote p {\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n}\n\n/* 加粗 */\n#nice strong {\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n}\n\n/* 删除线 */\n#nice del {\n}\n\n/* 分隔线\n * 粗细、样式和颜色\n * border-top: 1px solid #3e3e3e;\n */\n#nice hr {\n}\n\n/* 图片\n * 宽度 width: 80%;\n * 居中 margin: 0 auto;\n * 居左 margin: 0 0;\n */\n#nice img {\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}`;\n","export default `/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n color: rgb(89,89,89);\n}\n\n/* 一级标题 */\n#nice h1 {\n color: rgb(89,89,89);\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n\n/* 二级标题 */\n#nice h2 {\n border-bottom: 2px solid rgb(89,89,89);\n margin-bottom: 30px;\n color: rgb(89,89,89);\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n font-size: 22px;\n display: inline-block;\n border-bottom: 2px solid rgb(89,89,89);\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n}\n\n/* 三级标题 */\n#nice h3 {\n color: rgb(89,89,89);\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n}\n\n/* 引用\n* 左边缘颜色 border-left-color: black;\n* 背景色 background: gray;\n*/\n#nice blockquote {\n font-style: normal;\n padding: 10px;\n position: relative;\n line-height: 1.8;\n text-indent: 0;\n border: none;\n color: #888;\n}\n\n#nice blockquote:before {\n content: \"“\";\n display: inline;\n color: #555555;\n font-size: 4em;\n font-family: Arial, serif;\n line-height: 1em;\n font-weight: 700;\n}\n\n/* 引用文字 */\n#nice blockquote p {\n display: inline;\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: rgb(71, 193, 168);\n border-bottom: 1px solid rgb(71, 193, 168);\n}\n\n/* 加粗 */\n#nice strong {\n color: rgb(71, 193, 168);\n}\n\n/* 斜体 */\n#nice em {\n color: rgb(71, 193, 168);\n}\n\n/* 加粗斜体 */\n#nice em strong {\n color: rgb(71, 193, 168);\n}\n\n/* 删除线 */\n#nice del {\n}\n\n/* 分隔线\n* 粗细、样式和颜色\n* border-top: 1px solid #3e3e3e;\n*/\n#nice hr {\n}\n\n/* 图片\n* 宽度 width: 80%;\n* 居中 margin: 0 auto;\n* 居左 margin: 0 0;\n*/\n#nice img {\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n color: rgb(71, 193, 168);\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: rgb(71, 193, 168);\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: rgb(71, 193, 168);\n}\n\n#nice .footnote-item em {\n color: black;\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}`;\n","export default `/*自定义样式,实时生效*/\n\n/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n box-sizing: border-box;\n margin-bottom: 16px;\n font-family: \"Helvetica Neue\", Helvetica, \"Segoe UI\", Arial, freesans, sans-serif;\n font-size: 15px;\n text-align: start;\n white-space: normal;\n text-size-adjust: auto;\n line-height: 1.75em;\n}\n\n/* 一级标题 */\n#nice h1 {\n margin-top: -0.46em;\n margin-bottom: 0.1em;\n border-bottom: 2px solid rgb(198, 196, 196);\n box-sizing: border-box;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n padding-top: 5px;\n padding-bottom: 5px;\n color: rgb(160, 160, 160);\n font-size: 13px;\n line-height: 2;\n box-sizing: border-box;\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n\n/* 二级标题 */\n#nice h2 {\n margin: 10px auto;\n height: 40px;\n background-color: rgb(251, 251, 251);\n border-bottom: 1px solid rgb(246, 246, 246);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n margin-left: -10px;\n display: inline-block;\n width: auto;\n height: 40px;\n background-color: rgb(33, 33, 34);\n border-bottom-right-radius:100px;\n color: rgb(255, 255, 255);\n padding-right: 30px;\n padding-left: 30px;\n line-height: 40px;\n font-size: 16px;\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n}\n\n/* 三级标题 */\n#nice h3 {\n margin: 20px auto 5px;\n border-top: 1px solid rgb(221, 221, 221);\n box-sizing: border-box;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n margin-top: -1px;\n padding-top: 6px;\n padding-right: 5px;\n padding-left: 5px;\n font-size: 17px;\n border-top: 2px solid rgb(33, 33, 34);\n display: inline-block;\n line-height: 1.1;\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n#nice h4 {\n margin: 10px auto -1px;\n border-top: 1px solid rgb(221, 221, 221);\n box-sizing: border-box;\n}\n\n#nice h4 .content {\n margin-top: -1px;\n padding-top: 6px;\n padding-right: 5px;\n padding-left: 5px;\n font-size: 16px;\n border-top: 2px solid rgb(33, 33, 34);\n display: inline-block;\n line-height: 1.1;\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n font-size: 15px;\n font-family: \"Helvetica Neue\", Helvetica, \"Segoe UI\", Arial, freesans, sans-serif;\n}\n\n/* 引用\n * 左边缘颜色 border-left-color: black;\n * 背景色 background: gray;\n */\n#nice blockquote {\n border-left-color: rgb(221, 221, 221);\n margin-top: 1.2em;\n margin-bottom: 1.2em;\n padding-right: 1em;\n padding-left: 1em;\n border-left-width: 4px;\n color: rgb(119, 119, 119);\n quotes: none;\n}\n\n/* 引用文字 */\n#nice blockquote p {\n font-size: 15px;\n font-family: -apple-system-font, BlinkMacSystemFont, \"Helvetica Neue\", \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei UI\", \"Microsoft YaHei\", Arial, sans-serif;\n color: rgb(119, 119, 119);\n line-height: 1.75em;\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: rgb(239, 112, 96);\n border-bottom: 1px solid rgb(239, 112, 96);\n}\n\n/* 加粗 */\n#nice strong {\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n}\n\n/* 删除线 */\n#nice del {\n}\n\n/* 分隔线\n * 粗细、样式和颜色\n * border-top: 1px solid #3e3e3e;\n */\n#nice hr {\n}\n\n/* 图片\n * 宽度 width: 80%;\n * 居中 margin: 0 auto;\n * 居左 margin: 0 0;\n */\n#nice img {\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n color: rgb(239, 112, 96);\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #ff3502;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: rgb(239, 112, 96);\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}`;\n","export default `/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n font-size: 15px;\n letter-spacing: 0.05em;\n color:#595959\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n margin: 1em 4px;\n}\n\n/* 一级标题 */\n#nice h1 {\n margin: 1.2em 0 1em;\n padding: 0;\n font-weight: bold;\n color:#35b378;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n\n/* 二级标题 */\n#nice h2 {\n bmin-height: 32px;\n line-height: 32px;\n border-bottom: solid 1px #000000;\n color: #35b378;\n display: inline-block;\n border-bottom-width: 0px;\n border-bottom-style: solid;\n border-color: #35b378;\n padding-top: 5px;\n padding-right: 0.5em;\n padding-left: 0.5em;\n font-size: 23px;\n margin: 1em 0 0rem 0;\n padding: 0.5em 0;\n text-align: leftt;\n font-weight: bold;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n}\n\n/* 三级标题 */\n#nice h3 {\n margin: 1.2em 0 1em;\n padding: 0;\n font-weight: bold;\n color: #35b378;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n margin: 10px 0;\n}\n\n/* 引用\n * 左边缘颜色 border-left-color: black;\n * 背景色 background: gray;\n */\n#nice blockquote {\n margin: 10px 5px;\n border-left: 3px solid #35b378;\n border-right: 0px solid #35b378;\n color: #616161;\n quotes: none;\n background: #FBF9FD\n}\n\n/* 引用文字 */\n#nice blockquote p {\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: #35b378;\n border-bottom: 1px solid #35b378;\n}\n\n/* 加粗 */\n#nice strong {\n color:#35b378;\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n}\n\n/* 删除线 */\n#nice del {\n}\n\n/* 分隔线\n * 粗细、样式和颜色\n * border-top: 1px solid #3e3e3e;\n */\n#nice hr {\n border: 1px solid #35b378;\n margin: 1.5em auto;\n}\n\n/* 图片\n * 宽度 width: 80%;\n * 居中 margin: 0 auto;\n * 居左 margin: 0 0;\n */\n#nice img {\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n color: #35b378;\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #35b378;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: #35b378;\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}`;\n","export default `/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n font-size: 17px;\n word-spacing: 3px;\n letter-spacing: 1px\n}\n\n/* 一级标题 */\n#nice h1 {\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n\n/* 二级标题 */\n#nice h2 {\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n background-color: #5c5c5c;\n color: white;\n padding: 5px 15px;\n border-radius: 1px;\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n}\n\n/* 三级标题 */\n#nice h3 {\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n}\n\n/* 引用\n* 左边缘颜色 border-left-color: black;\n* 背景色 background: gray;\n*/\n#nice blockquote {\n}\n\n/* 引用文字 */\n#nice blockquote p {\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n}\n\n/* 加粗 */\n#nice strong {\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n}\n\n/* 删除线 */\n#nice del { \n}\n\n/* 分隔线\n* 粗细、样式和颜色\n* border-top: 1px solid #3e3e3e;\n*/\n#nice hr {\n border-top: 1px dashed #dddddd;\n}\n\n/* 图片\n* 宽度 width: 80%;\n* 居中 margin: 0 auto;\n* 居左 margin: 0 0;\n*/\n#nice img {\n border-radius: 5px;\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}`;\n","export default `/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n}\n\n/* 一级标题 */\n#nice h1 {\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n\n/* 二级标题 */\n#nice h2 {\n border-bottom: 2px solid rgb(239, 112, 96);\n font-size: 1.3em;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n display: inline-block;\n font-weight: bold;\n background: rgb(239, 112, 96);\n color: #ffffff;\n padding: 3px 10px 1px;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n margin-right: 3px;\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n display: inline-block;\n content: \" \";\n vertical-align: bottom;\n border-bottom: 36px solid #efebe9;\n border-right: 20px solid transparent;\n}\n\n/* 三级标题 */\n#nice h3 {\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n}\n\n/* 引用\n * 左边缘颜色 border-left-color: black;\n * 背景色 background: gray;\n */\n#nice blockquote {\n border-left-color: rgb(239, 112, 96);\n background: #fff9f9;\n}\n\n/* 引用文字 */\n#nice blockquote p {\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: rgb(239, 112, 96);\n border-bottom: 1px solid rgb(239, 112, 96);\n}\n\n/* 加粗 */\n#nice strong {\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n}\n\n/* 删除线 */\n#nice del {\n}\n\n/* 分隔线\n * 粗细、样式和颜色\n * border-top: 1px solid #3e3e3e;\n */\n#nice hr {\n}\n\n/* 图片\n * 宽度 width: 80%;\n * 居中 margin: 0 auto;\n * 居左 margin: 0 0;\n */\n#nice img {\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n color: rgb(239, 112, 96);\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #ff3502;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: rgb(239, 112, 96);\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}`;\n","export default `/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n font-size: 15px;\n letter-spacing: 0.05em;\n color:#595959\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n margin: 1em 4px;\n}\n\n/* 一级标题 */\n#nice h1 {\n margin: 1.2em 0 1em;\n padding: 0;\n font-weight: bold;\n color:#773098;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n\n/* 二级标题 */\n#nice h2 {\n min-height: 32px;\n line-height: 28px;\n border-bottom: solid 1px #000000;\n color: #773098;\n display: inline-block;\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-color: #773098;\n padding-top: 5px;\n padding-right: 0.5em;\n padding-left: 0.5em;\n margin-bottom: -3px;\n font-size: 22px;\n margin:1em auto;\n padding: 0.5em 0;\n text-align: center;\n width: 85%;\n font-weight: bold;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n}\n\n/* 三级标题 */\n#nice h3 {\n margin: 1.2em 0 1em;\n padding: 0;\n font-weight: bold;\n color:#773098;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n margin: 10px 0;\n}\n\n/* 引用\n * 左边缘颜色 border-left-color: black;\n * 背景色 background: gray;\n */\n#nice blockquote {\n margin: 10px 5px;\n border-left: 3px solid #9654B5;\n border-right: 1px solid #9654B5;\n color: #616161;\n quotes: none;\n background:#FBF9FD\n}\n\n/* 引用文字 */\n#nice blockquote p {\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: #773098;\n border-bottom: 1px solid #773098;\n}\n\n/* 加粗 */\n#nice strong {\n color:#773098;\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n}\n\n/* 删除线 */\n#nice del {\n}\n\n/* 分隔线\n* 粗细、样式和颜色\n* border-top: 1px solid #3e3e3e;\n*/\n#nice hr {\n border: 1px solid #773098;\n margin: 1.5em auto;\n}\n\n/* 图片\n* 宽度 width: 80%;\n* 居中 margin: 0 auto;\n* 居左 margin: 0 0;\n*/\n#nice img {\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n color: #9654B5;\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #773098;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: #773098;\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}`;\n","export default `/* 全局属性\n * 页边距 padding:30px;\n * 全文字体 font-family:ptima-Regular;\n * 英文换行 word-break:break-all;\n */\n#nice {\n font-family:PingFangSC-Light;\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top:5px;\n * 下边距 margin-bottom:5px;\n * 行高 line-height:26px;\n * 词间距 word-spacing:3px;\n * 字间距 letter-spacing:3px;\n * 对齐 text-align:left;\n * 颜色 color:#3e3e3e;\n * 字体大小 font-size:16px;\n * 首行缩进 text-indent:2em;\n */\n#nice p {\n margin:10px 10px;\n line-height:1.75;\n letter-spacing:0.2em;\n font-size:14px;\n word-spacing:0.1em;\n}\n\n/* 一级标题 */\n#nice h1 {\n border-bottom:2px solid rgb(248,57,41);\n font-size:1.3em;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n display:inline-block;\n font-weight:normal;\n background:rgb(248,57,41);\n color:#ffffff;\n padding:3px 10px 1px;\n border-top-right-radius:3px;\n border-top-left-radius:3px;\n margin-right:3px;\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n \n/* 二级标题 */\n#nice h2 {\n text-align:left;\n margin:20px 10px 0px 0px;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n font-family:STHeitiSC-Light;\n font-size:18px;\n font-weight:bolder;\n display:inline-block;\n padding-left:10px;\n border-left:5px solid rgb(248,57,41);\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n}\n\n/* 三级标题 */\n#nice h3 {\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n font-size:14px;\n color:rgb(165,213,93);\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n font-size: 14px;\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n font-size: 14px;\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n font-size:13px;\n}\n\n/* 引用\n * 左边缘颜色 border-left-color:black;\n * 背景色 background:gray;\n */\n#nice blockquote {\n font-style:normal;\n border-left:none;\n padding:10px;\n position:relative;\n line-height:1.8;\n border-radius:0px 0px 10px 10px;\n color:#FEEEED;\n background:#000;\n box-shadow:#84A1A8 0px 10px 15px;\n}\n#nice blockquote:before {\n content:\" \";\n display:inline;\n color:#FFF;\n font-size:4em;\n font-family:Arial,serif;\n line-height:1em;\n font-weight:700;\n}\n\n/* 引用文字 */\n#nice blockquote p {\n color:#FEEEED;\n font-size:13px;\n display:inline;\n}\n#nice blockquote:after {\n content:\"”\";\n float:right;\n display:inline;\n color:#FFF;\n font-size:3em;\n line-height:1em;\n font-weight:500;\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color:rgb(248,57,41);\n border-bottom: 1px solid #ff3502;\n font-family:STHeitiSC-Light;\n}\n\n/* 加粗 */\n#nice strong {\n font-weight:border;\n color:rgb(248,57,41);\n}\n\n/* 斜体 */\n#nice em {\n color:rgb(248,57,41);\n letter-spacing:0.3em;\n}\n\n/* 加粗斜体 */\n#nice em strong {\n color:rgb(248,57,41);\n letter-spacing:0.3em;\n}\n\n/* 删除线 */\n#nice del {\n}\n \n/* 分隔线\n * 粗细、样式和颜色\n * border-top:1px solid #3e3e3e;\n */\n#nice hr {\n height:1px;\n padding:0;\n border:none;\n border-top:medium solidid #333;\n text-align:center;\n background-image:linear-gradient(to right,rgba(248,57,41,0),rgba(248,57,41,0.75),rgba(248,57,41,0));\n}\n\n/* 图片\n * 宽度 width:80%;\n * 居中 margin:0 auto;\n * 居左 margin:0 0;\n */\n#nice img {\n border-radius:0px 0px 5px 5px;\n display:block;\n margin:20px auto;\n width:85%;\n height:100%;\n object-fit:contain;\n box-shadow:#84A1A8 0px 10px 15px;\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n display:block;\n font-size:12px;\n font-family:PingFangSC-Light;\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n color:rgb(271,93,108);\n}\n\n/* 非微信代码块\n * 代码块不换行 display:-webkit-box !important;\n * 代码块换行 display:block;\n */\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n font-size: 14px;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color:rgb(248,57,41);\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color:rgb(248,57,41);\n}\n\n/*脚注链接样式*/\n#nice .footnote-item em {\n color:#6E1E51;\n font-size:12px;\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}`;\n","export default `/*自定义样式,实时生效*/\n\n/* 全局属性\n * 页边距 padding:30px;\n * 全文字体 font-family:ptima-Regular;\n * 英文换行 word-break:break-all;\n */\n#nice {\n font-family:PingFangSC-Light;\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top:5px;\n * 下边距 margin-bottom:5px;\n * 行高 line-height:26px;\n * 词间距 word-spacing:3px;\n * 字间距 letter-spacing:3px;\n * 对齐 text-align:left;\n * 颜色 color:#3e3e3e;\n * 字体大小 font-size:16px;\n * 首行缩进 text-indent:2em;\n */\n#nice p {\n margin:10px 10px;\n line-height:1.75;\n letter-spacing:0.2em;\n font-size: 15px;\n word-spacing:0.1em;\n}\n\n/* 一级标题 */\n#nice h1 {\n border-bottom: 2px solid #0e88eb;\n font-size: 1.4em;\n text-align: center;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n font-size: 1.4em;\n display:inline-block;\n font-weight: bold;\n //background: #0e88eb;\n color:#ffffff;\n color: #0e88eb;\n padding:3px 10px 1px;\n border-top-right-radius:3px;\n border-top-left-radius:3px;\n margin-right:3px;\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n \n/* 二级标题 */\n#nice h2 {\n text-align:left;\n margin:20px 10px 0px 0px;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n font-family:STHeitiSC-Light;\n font-size: 22px;\n color:#0e88eb;\n font-weight:bolder;\n display:inline-block;\n padding-left:10px;\n border-left:5px solid #0e88eb;\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n}\n\n/* 三级标题 */\n#nice h3 {\n\tfont-size: 18px;\n \tcolor: #0e88eb;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n font-size: 18px;\n color: #0e88eb;\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n font-size: 15px;\n}\n\n/* 引用\n * 左边缘颜色 border-left-color:black;\n * 背景色 background:gray;\n */\n#nice blockquote {\n font-style:normal;\n border-left:none;\n padding:10px;\n position:relative;\n line-height:1.8;\n border-radius:0px 0px 10px 10px;\n color: #0e88eb;\n background:#fff;\n box-shadow:#84A1A8 0px 10px 15px;\n}\n#nice blockquote:before {\n content:\"★ \";\n display:inline;\n color: #0e88eb;\n font-size:4em;\n font-family:Arial,serif;\n line-height:1em;\n font-weight:700;\n}\n\n/* 引用文字 */\n#nice blockquote p {\n color: #0e88eb;\n font-size:15px;\n display:inline;\n}\n#nice blockquote:after {\n content:\"”\";\n float:right;\n display:inline;\n color:#0e88eb;\n font-size:3em;\n line-height:1em;\n font-weight:500;\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: #0e88eb;\n border-bottom: 0px solid #ff3502;\n font-family:STHeitiSC-Light;\n}\n\n/* 加粗 */\n#nice strong {\n font-weight: border;\n color: #0e88eb;\n}\n\n/* 斜体 */\n#nice em {\n color: #0e88eb;\n letter-spacing:0.3em;\n}\n\n/* 加粗斜体 */\n#nice em strong {\n color: #0e88eb;\n letter-spacing:0.3em;\n}\n\n/* 删除线 */\n#nice del {\n}\n \n/* 分隔线\n * 粗细、样式和颜色\n * border-top:1px solid #3e3e3e;\n */\n#nice hr {\n height:1px;\n padding:0;\n border:none;\n border-top:medium solidid #333;\n text-align:center;\n background-image:linear-gradient(to right,rgba(248,57,41,0),#0e88eb,rgba(248,57,41,0));\n}\n\n/* 图片\n * 宽度 width:80%;\n * 居中 margin:0 auto;\n * 居左 margin:0 0;\n */\n#nice img {\n border-radius:0px 0px 5px 5px;\n display:block;\n margin:20px auto;\n width:85%;\n height:100%;\n object-fit:contain;\n box-shadow:#84A1A8 0px 10px 15px;\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n display:block;\n font-size:12px;\n font-family:PingFangSC-Light;\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n color:/*自定义样式,实时生效*/\n}\n\n/* 非微信代码块\n * 代码块不换行 display:-webkit-box !important;\n * 代码块换行 display:block;\n */\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n font-size: 15px;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #2d59b3;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: #6a88c5;\n}\n\n/* 非微信代码块\n * 代码块不换行 display:-webkit-box !important;\n * 代码块换行 display:block;\n */\n#nice pre code {\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #0e88eb;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: #0e88eb;\n}\n\n/*脚注链接样式*/\n#nice .footnote-item em {\n color: #082a71;\n font-size:12px;\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}`;\n","export default `/*自定义样式,实时生效*/\n#nice {\n}\n\n#nice p {\n\tmargin: 0 0 20px;\n\tpadding: 0;\n\tline-height: 1.8em;\n\tcolor: #3a3a3a;\n}\n\n/* 一级标题 */\n#nice h1 {\n font-size: 2.1em;\n\tline-height: 1.1em;\n\tpadding-top: 16px;\n padding-bottom: 10px;\n margin-bottom: 4px;\n border-bottom: 1px solid #c99833;\n}\n/* 一级标题内容 */\n#nice h1 .content {\n color: #515151;\n font-weight: 700;\n}\n\n#nice h2, h3, h4, h5, h6 {\n line-height: 1.5em;\n margin-top: 2.2em;\n margin-bottom: 4px;\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {}\n\n/* 二级标题 */\n#nice h2 {\n margin-bottom: 35px;\n}\n\n/* 二级标题内容 */\n\n#nice h2 .content {\n display: inline-block;\n font-weight: bold;\n background: linear-gradient(#fff 60%, #ffb11b 40%);\n color: #515151;\n padding: 2px 13px 2px;\n margin-right: 3px;\n height: 50%;\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {}\n\n/* 三级标题 */\n#nice h3 {\n line-height: 1.4;\n padding-top: 10px;\n margin: 10px 0 5px;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n color: #515151;\n font-weight: 700;\n font-size: 1.0em;\n padding-left: 20px;\n border-left: 3px solid #f9bf45;\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {}\n\n/* 引用\n* 左边缘颜色 border-left-color: black;\n* 背景色 background: gray;\n*/\n#nice blockquote {\n border-left-color: #ffb11b;\n background: #fff5e3;\n}\n\n/* 引用文字 */\n#nice blockquote p {\n color: #595959;\n}\n\n/* 链接 */\n#nice a {\n border: none;\n text-decoration: none;\n color: #dda52d;\n}\n\n#nice a:hover {\n color: #f9bf45;\n text-decoration: underline;\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n}\n\n/* 加粗 */\n#nice strong {}\n\n/* 斜体 */\n#nice em {}\n\n/* 加粗斜体 */\n#nice em strong {}\n\n/* 删除线 */\n#nice del {\n color: #d19826;\n}\n\n/* 分隔线\n* 粗细、样式和颜色\n* border-top: 1px solid #3e3e3e;\n*/\n#nice hr {\n border-top: 1px solid #f9bf45;\n margin: 20px 0px;\n}\n\n/* 图片\n* 宽度 width: 80%;\n* 居中 margin: 0 auto;\n* 居左 margin: 0 0;\n*/\n#nice img {\n width: 100%;\n border-radius: 5px;\n display: block;\n margin-bottom: 15px;\n height: auto;\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n color: #dda52d;\n font-size: 14px;\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n color: #9b6e23;\n background-color: #fff5e3;\n padding: 3px;\n margin: 3px;\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n text-align: center;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #ffb11b;\n padding: 3px;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: #dda52d;\n margin: 2px;\n padding: 3px;\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n margin: 30px 0px 15px 0px;\n font-weight: 800;\n}\n\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}`;\n","export default `/* 根据该字体大小,统一调整文章整体大小 */\n/* 间距,其他字体,代码块以及注脚 */\n/* 不会控制微信代码块 */\n#nice {\n font-size: 16px;\n}\n\n/* 颜色管理 */\n#nice a {\n color: #3e64ff;\n}\n#nice p code {\n color: #e46918;\n background-color: #efefef;\n}\n#nice .footnote-word,\n#nice .footnote-ref {\n color: #004a7c;\n}\n#nice .footnote-item em {\n color: #004a7c;\n}\n\n/* 统一间距 */\n#nice p,\n#nice section,\n#nice h1,\n#nice h2,\n#nice h3,\n#nice h4,\n#nice h5,\n#nice h6,\n#nice pre,\n#nice figure,\n#nice ul,\n#nice hr {\n margin: 1em 0;\n color: #333;\n}\n\n#nice {\n margin-top: -1em;\n color: #333;\n padding-top: 0;\n padding-bottom: 0;\n font-family: -apple-system,system-ui,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif;\n}\n#nice * {\n line-height: 1.6 !important;\n}\n\n#nice hr {\n border-top: 1px solid #dfe2e5\n}\n\n/* 标题调整 */\n#nice h1 {\n font-size: 1.4em;\n}\n#nice h2 {\n font-size: 1.3em;\n}\n#nice h1,\n#nice h2 {\n padding-bottom: .3em;\n border-bottom: 1px solid #dfe2e5;\n}\n#nice h3 {\n font-size: 1.2em;\n}\n#nice h4 {\n font-size: 1.1em;\n}\n#nice h5 {\n font-size: 1em;\n}\n#nice h6 {\n font-size: 1em;\n}\n\n/* 段落调整 */\n#nice p {\n padding: 0;\n font-size: inherit;\n color: #333;\n}\n#nice blockquote {\n background: none;\n border-left: 4px solid #ddd;\n padding: 0 1em;\n}\n#nice blockquote p {\n margin: 0;\n color: #666;\n}\n#nice strong {\n color: #333;\n}\n\n#nice a {\n font-weight: normal;\n border-color: inherit;\n}\n\n/* 列表调整 */\n#nice li section {\n margin-top: .3em;\n margin-bottom: .3em;\n font-weight: normal;\n}\n#nice li ul {\n margin: 0;\n}\n\n/* 代码块调整 */\n#nice pre {\n border-radius: 4px;\n}\n#nice section pre {\n margin: 0;\n padding-top: 0;\n padding-bottom: 0;\n}\n#nice p code {\n font-size: .875em;\n}\n#nice pre code {\n font-size: .875em;\n}\n\n#nice figure img {\n max-width: 100%;\n width: auto;\n margin: 0 auto;\n}\n\n/* table 调整 */\n#nice table tr th,\n#nice table tr td {\n font-size: 1em;\n}\n\n/* 注脚调整 */\n#nice .footnotes-sep {\n font-size: 1.3em;\n}\n#nice .footnote-item {\n margin: .4em 0;\n}\n#nice .footnote-item * {\n line-height: 1.4 !important;\n}\n#nice .footnote-item p {\n margin: 0;\n font-size: .9em;\n}\n#nice .footnote-item em {\n font-style: normal;\n padding-left: .5em;\n}\n#nice .footnote-item span {\n flex: 0 0 1.5em;\n margin-right: 10px;\n font-size: .9em;\n}\n\n/* 微信默认样式修复 */\n/* 微信代码块固定为 14px */\n#nice pre.code-snippet__js {\n padding: 16px 0;\n}\n\n#nice pre.code-snippet__js code {\n font-size: 14px;\n}`;\n","export default `/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n#nice {\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n line-height: 1.6;\n color: #3f3f3f;\n font-size: 16px;\n margin: 10px 0px;\n}\n\n/* 一级标题 */\n#nice h1 {\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n\n/* 二级标题 */\n#nice h2 {\n margin: 80px 10px 40px 10px;\n text-align: center;\n font-weight: normal;\n color: #3f3f3f;\n font-size: 140%;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {\n}\n\n/* 三级标题 */\n#nice h3 {\n margin: 40px 0px 20px 0px;\n font-weight: bold;\n line-height: 1.5;\n color: #3f3f3f;\n font-size: 120%;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n}\n\n/* 引用\n* 左边缘颜色 border-left-color: black;\n* 背景色 background: gray;\n*/\n#nice blockquote {\n color: rgb(91,91,91);\n border-left: 3px solid rgb(158,158,158);\n background: rgba(158, 158, 158, 0.1);\n padding: 1px 0 1px 10px;\n margin: 20px 0px;\n}\n\n/* 引用文字 */\n#nice blockquote p {\n color: #3f3f3f;\n line-height: 1.5;\n font-size: 16px;\n margin: 10px;\n padding: 0px;\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: #ff3502;\n border-bottom: 1px solid #ff3502;\n}\n\n/* 加粗 */\n#nice strong {\n color: #ff3502;\n line-height: 1.5;\n font-size: 16px;\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n}\n\n/* 删除线 */\n#nice del {\n}\n\n/* 分隔线\n* 粗细、样式和颜色\n* border-top: 1px solid #3e3e3e;\n*/\n#nice hr {\n}\n\n/* 图片\n* 宽度 width: 80%;\n* 居中 margin: 0 auto;\n* 居左 margin: 0 0;\n*/\n#nice img {\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n}\n\n/* 行内代码 */\n#nice p code, #nice li code {\n background: #f8f5ec;\n color: #ff3502;\n line-height: 1.5;\n font-size: 90%;\n padding: 3px 5px;\n border-radius: 2px;\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n color: #ff3502;\n font-size: 16px;\n line-height: 1.5;\n font-weight: normal;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n color: #ff3502;\n font-weight: normal;\n}\n\n/* \"参考资料\"四个字 */\n#nice .footnotes-sep {\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}`;\n","export default `/* 全局属性\n* 页边距 padding:30px;\n* 全文字体 font-family:optima-Regular;\n* 英文换行 word-break:break-all;\ncolor:#595959;\n*/\n#nice {\n line-height: 1.75;\n color: #595959;\n font-family: Optima-Regular, Optima, PingFangTC-Light, PingFangSC-light, PingFangTC-light;\n letter-spacing: 2px;\n background-image: linear-gradient(90deg, rgba(50, 0, 0, 0.05) 3%, rgba(0, 0, 0, 0) 3%), linear-gradient(360deg, rgba(50, 0, 0, 0.05) 3%, rgba(0, 0, 0, 0) 3%);\n background-size: 20px 20px;\n background-position: center center;\n}\n\n/* 段落,下方未标注标签参数均同此处\n* 上边距 margin-top:5px;\n* 下边距 margin-bottom:5px;\n* 行高 line-height:26px;\n* 词间距 word-spacing:3px;\n* 字间距 letter-spacing:3px;\n* 对齐 text-align:left;\n* 颜色 color:#3e3e3e;\n* 字体大小 font-size:16px;\n* 首行缩进 text-indent:2em;\n*/\n#nice p {\n color: #595959;\n margin: 10px 0px;\n letter-spacing: 2px;\n font-size: 14px;\n word-spacing: 2px;\n}\n\n/* 一级标题 */\n#nice h1 {\n font-size: 25px;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n display: inline-block;\n font-weight: bold;\n color: #595959;\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {}\n\n/* 二级标题 */\n#nice h2 {\n text-align: left;\n margin: 20px 10px 0px 0px;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n font-size: 18px;\n font-weight: bold;\n display: inline-block;\n padding-left: 10px;\n border-left: 5px solid #DEC6FB;\n color: #595959;\n\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {}\n\n/* 三级标题 */\n#nice h3 {\n font-size: 16px;\n font-weight: bold;\n text-align: center;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n border-bottom: 2px solid #DEC6FB;\n color: #595959;\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {}\n\n/* 无序列表整体样式\n* list-style-type: square|circle|disc;\n*/\n#nice ul {\n font-size: 15px; /*神奇逻辑,必须比li section的字体大才会在二级中生效*/\n color: #595959;\n list-style-type: circle;\n}\n\n\n/* 有序列表整体样式\n* list-style-type: upper-roman|lower-greek|lower-alpha;\n*/\n#nice ol {\n font-size: 15px;\n color: #595959;\n}\n\n/* 列表内容,不要设置li\n*/\n#nice li section {\n font-size: 14px;\n font-weight: normal;\n color: #595959;\n}\n\n/* 引用\n* 左边缘颜色 border-left-color:black;\n* 背景色 background:gray;\n*/\n#nice blockquote::before {\n content: \"❝\";\n /* color: #d9b8fa;*/\n color: #DEC6FB;\n font-size: 34px;\n line-height: 1;\n font-weight: 700;\n}\n\n#nice blockquote {\n text-size-adjust: 100%;\n line-height: 1.55em;\n font-weight: 400;\n border-radius: 6px;\n color: #595959;\n font-style: normal;\n text-align: left;\n box-sizing: inherit;\n border-left: none;\n border: 1px solid #DEC6FB;\n background: #F6EEFF;\n\n}\n\n#nice blockquote p {\n color: #595959;\n}\n\n#nice blockquote::after {\n content: \"❞\";\n float: right;\n /* color: #d9b8fa; */\n color: #DEC6FB;\n}\n\n/* 链接 \n* border-bottom: 1px solid #009688;\n*/\n#nice a {\n color: #664D9D;\n font-weight: normal;\n border-bottom: 1px solid #664D9D;\n}\n\n#nice strong::before {\n content: '「';\n}\n\n/* 加粗 */\n#nice strong {\n color: #595959;\n font-weight: bold;\n}\n\n#nice strong::after {\n content: '」';\n}\n\n/* 斜体 */\n#nice em {\n font-style: normal;\n color: #595959;\n background: #F6EEFF;\n}\n\n/* 加粗斜体 */\n#nice em strong {\n color: #595959;\n}\n\n/* 删除线 */\n#nice del {\n color: #595959;\n}\n\n/* 分隔线\n* 粗细、样式和颜色\n* border-top:1px solid #3e3e3e;\n*/\n#nice hr {\n height: 1px;\n padding: 0;\n border: none;\n border-top: 2px solid #d9b8fa;\n}\n\n/* 图片\n* 宽度 width:80%;\n* 居中 margin:0 auto;\n* 居左 margin:0 0;\n*/\n#nice img {\n border-radius: 6px;\n display: block;\n margin: 20px auto;\n object-fit: contain;\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n display: block;\n font-size: 13px;\n color: #595959;\n}\n\n/* 行内代码 */\n#nice p code,\n#nice li code {\n color: #595959;\n}\n\n/* 非微信代码块\n* 代码块不换行 display:-webkit-box !important;\n* 代码块换行 display:block;\n*/\n#nice .code-snippet__fix {\n background: #f7f7f7;\n border-radius: 2px;\n}\n\n#nice pre code {\n /* background: #f7f7f7; */\n}\n\n/*\n* 表格内的单元格\n* 字体大小 font-size: 16px;\n* 边框 border: 1px solid #ccc;\n* 内边距 padding: 5px 10px;\n*/\n#nice table tr th,\n#nice table tr td {\n font-size: 14px;\n color: #595959;\n}\n\n#nice .footnotes {\n background: #F6EEFF;\n padding: 20px 20px 20px 20px;\n font-size: 14px;\n border: 0.8px solid #DEC6FB;\n border-radius: 6px;\n border: 1px solid #DEC6FB;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n font-weight: normal;\n color: #595959;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n font-weight: normal;\n color: #595959;\n}\n\n/*脚注链接样式*/\n#nice .footnote-item em {\n background: #F6EEFF;\n font-size: 14px;\n color: #595959;\n display: block;\n}\n\n/* \"参考资料\"四个字 \n* 内容 content: \"参考资料\";\n*/\n#nice .footnotes-sep:before {\n content: 'Reference';\n color: #595959;\n letter-spacing: 1px;\n border-bottom: 2px solid #DEC6FB;\n display: inline;\n background: linear-gradient(white 60%, #F6EEFF 40%);\n font-size: 20px;\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {}\n\n/* 参考资料文字 */\n#nice .footnote-item p {\n color: #595959;\n font-weight: bold;\n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n font-weight: normal;\n}\n\n/* 行间公式\n* 最大宽度 max-width: 300% !important;\n*/\n#nice .block-equation svg {}\n\n/* 行内公式\n*/\n#nice .inline-equation svg {}`;\n","export default `#nice {\n line-height: 1.6;\n letter-spacing: .034em;\n color: rgb(63, 63, 63);\n font-size: 16px;\n word-break:all;\n}\n#nice p {\n padding-top: 1em;\n color: rgb(74,74,74);\n line-height: 1.75em;\n}\n/* 一级标题 */\n#nice h1 {\n text-align:center;\n background-image: \turl(http://img.xiaogangzai.cn/title_h1.png); \n background-position: center top;\n background-repeat: no-repeat;\n background-size: 75px;\n line-height:95px;\n margin-top: 38px;\n margin-bottom: 10px;\n}\n/* 一级标题内容 */\n#nice h1 .content {\n font-size: 20px;\n color: #48b378;;\n border-bottom:2px solid #2e7950;\n}\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {\n}\n \n/* 二级标题 */\n#nice h2 {\n display:block;\n text-align:center;\n background-image: \turl(http://img.xiaogangzai.cn/title.png); \n background-position: center center;\n background-repeat: no-repeat;\n background-attachment: initial;\n background-origin: initial;\n background-clip: initial;\n background-size: 50px;\n margin-top: 1em;\n margin-bottom: 10px;\n}\n/*二级标题伪元素*/\n#nice h2:before {\n}\n/* 二级标题内容 */\n#nice h2 .content {\n text-align:center;\n display: inline-block;\n height: 38px;\n line-height: 42px;\n color: #48b378;\n background-position: left center;\n background-repeat: no-repeat;\n background-attachment: initial;\n background-origin: initial;\n background-clip: initial;\n background-size: 63px;\n margin-top: 38px;\n font-size:18px;\n margin-bottom: 10px;\n}\n/* 三级标题 */\n#nice h3:before {\n content: \"\";\n background-image:url(http://img.xiaogangzai.cn/title_h2.png);\n background-size:100% 100%;\n background-repeat:no-repeat;\n display: inline-block;\n width: 16px;\n height: 15px;\n line-height:15px;\n margin-bottom:-1px;\n}\n#nice h3 {\n margin-top:1.2em;\n}\n#nice h4 {\n margin-top: 30px;\n}\n/* 三级标题内容 */\n#nice h3 .content {\n font-size:17px;\n font-weight:bold;\n display:inline-block;\n margin-left:8px;\n color:#48b378;\n}\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {\n}\n/* 列表内容 */\n#nice li {\n}\n/* 引用\n * 左边缘颜色 border-left-color:black;\n * 背景色 background:gray;\n */\n#nice blockquote {\n padding: 15px 20px;\n line-height: 27px;\n background-color:#FBF9FD;\n border-left:3px solid #35b378;\n display:block;\n}\n/* 引用文字 */\n#nice blockquote p {\n padding: 0px;\n font-size:15px;\n color:rgb(89,89,89);\n}\n/* 链接 */\n#nice a {\n color: #48b378;\n text-decoration:none;\n border-bottom: 1px solid #48b378;\n}\n/* 加粗 */\n#nice strong {\n line-height: 1.75em;\n color: rgb(74,74,74);\n}\n/* 斜体 */\n#nice em {\n}\n/* 加粗斜体 */\n#nice em strong {\n color:rgb(248,57,41);\n letter-spacing:0.3em;\n}\n/* 删除线 */\n#nice del {\n}\n \n/* 分割线 */\n#nice hr {\n height:1px;\n padding:0;\n border:none;\n text-align:center;\n background-image:linear-gradient(to right,rgba(93, 186, 133,0),rgba(93, 186, 133,0.75),rgba(93, 186, 133,0));\n}\n/* 图片 */\n#nice img {\n border-radius:4px;\n margin-bottom:25px;\n}\n/* 图片描述文字 */\n#nice figcaption {\n display:block;\n font-size:12px;\n font-family:PingFangSC-Light;\n}\n/* 行内代码 */\n#nice p code, #nice li code {\n\tcolor: #28ca71;\n}\n/* 非微信代码块\n * 代码块不换行 display:-webkit-box !important;\n * 代码块换行 display:block;\n */\n#nice pre code {\n}\n/* 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n font-size: 14px;\n}\n#nice .footnotes{\n padding-top: 8px;\n}\n/* 脚注文字 */\n#nice .footnote-word {\n color: rgb(90, 185, 131);\n}\n/* 脚注上标 */\n#nice .footnote-ref {\n color: rgb(90, 185, 131);\n}\n/* 脚注超链接样式 */\n#nice .footnote-item em {\n color: rgb(90, 185, 131);\n font-size:13px;\n font-style:normal;\n border-bottom-color:1px dashed rgb(90, 185, 131); \n}\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n background-image: none;\n background-size: none;\n display: block;\n width: auto;\n height: auto;\n}\n/* 参考资料编号 */\n#nice .footnote-num {\n color: rgb(90, 185, 131);\n}\n/* 参考资料文字 */\n#nice .footnote-item p {\n color: rgb(90, 185, 131);\n font-weight:bold;\n}\n/* 参考资料超链接 */\n#nice .footnote-item a {\n color:rgb(93, 186, 133);\n}\n/* 参考资料解释 */\n#nice .footnote-item p em {\n font-size:14px;\n font-weight:normal;\n border-bottom:1px dashed rgb(93, 186, 133);\n}\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n/* 行内公式*/\n#nice .inline-equation svg { \n}`;\n","export default `/*自定义样式,实时生效*/\n\n/* 全局属性\n* 页边距 padding:30px;\n* 全文字体 font-family:optima-Regular;\n* 英文换行 word-break:break-all;\ncolor:#595959;\n*/\n#nice {\n line-height: 1.25;\n color: #595959;\n font-family: Optima-Regular, Optima, PingFangTC-Light, PingFangSC-light, PingFangTC-light;\n letter-spacing: 2px;\n background-image: linear-gradient(90deg, rgba(50, 0, 0, 0.05) 3%, rgba(0, 0, 0, 0) 3%), linear-gradient(360deg, rgba(50, 0, 0, 0.05) 3%, rgba(0, 0, 0, 0) 3%);\n background-size: 20px 20px;\n background-position: center center;\n}\n\n/* 段落,下方未标注标签参数均同此处\n* 上边距 margin-top:5px;\n* 下边距 margin-bottom:5px;\n* 行高 line-height:26px;\n* 词间距 word-spacing:3px;\n* 字间距 letter-spacing:3px;\n* 对齐 text-align:left;\n* 颜色 color:#3e3e3e;\n* 字体大小 font-size:16px;\n* 首行缩进 text-indent:2em;\n*/\n#nice p {\n color: #595959;\n margin: 10px 0px;\n letter-spacing: 2px;\n font-size: 14px;\n word-spacing: 2px;\n}\n\n/* 一级标题 */\n#nice h1 {\n font-size: 25px;\n}\n\n/* 一级标题内容 */\n#nice h1 span {\n display: inline-block;\n font-weight: bold;\n color: #40B8FA;\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {}\n\n/* 二级标题 */\n#nice h2 {\n display:block;\n border-bottom: 4px solid #40B8FA;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n display: flex;\n color: #40B8FA;\n font-size: 20px;\n margin-left: 25px;\n}\n\n/* 二级标题前缀 */\n#nice h2 .prefix {\n display: flex;\n width: 20px;\n height: 20px;\n background-size: 20px 20px;\n background-image:url(https://img.alicdn.com/tfs/TB1iq.pypY7gK0jSZKzXXaikpXa-32-32.png);\n margin-bottom: -22px;\n}\n\n/* 二级标题后缀 */\n#nice h2 .suffix {\n display: flex;\n box-sizing: border-box;\n width: 200px;\n height: 10px;\n border-top-left-radius: 20px;\n background: RGBA(64, 184, 250, .5);\n color: rgb(255, 255, 255);\n font-size: 16px;\n letter-spacing: 0.544px;\n justify-content: flex-end;\n box-sizing: border-box !important;\n overflow-wrap: break-word !important;\n float: right;\n margin-top: -10px;\n}\n\n/* 三级标题 */\n#nice h3 {\n font-size: 16px;\n font-weight: bold;\n text-align: center;\n position:relative;\n margin-top: 50px;\n margin-bottom: 20px;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n border-bottom: 2px solid RGBA(79, 177, 249, .65);\n color: #595959;\n padding-bottom:2px\n}\n\n#nice h3 .content:before{\n content:'';\n width:30px;\n height:30px;\n display:block;\n background-image:url(https://img.alicdn.com/tfs/TB1Hm.xyEz1gK0jSZLeXXb9kVXa-153-153.png);\n position:absolute;\n background-position:center;\n background-size:30px;\n\tleft:0;\n right:0;\n margin:auto;\n opacity:1;\n background-repeat:no-repeat;\n bottom:17px;\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {}\n\n#nice h4 .content {\n font-size: 14px;\n}\n\n#nice h4 .content:before{\n content:'';\n background-image:url(https://img.alicdn.com/tfs/TB1Lc.uyuL2gK0jSZFmXXc7iXXa-32-32.png);\n display:inline-block;\n width:16px;\n height:16px;\n background-size:16px;\n background-position:center;\n background-repeat:no-repeat;\n margin-right:6px;\n margin-bottom: -4px;\n}\n\n/* 无序列表整体样式\n* list-style-type: square|circle|disc;\n*/\n#nice ul {\n font-size: 15px; /*神奇逻辑,必须比li section的字体大才会在二级中生效*/\n color: #595959;\n list-style-type: circle;\n}\n\n\n/* 有序列表整体样式\n* list-style-type: upper-roman|lower-greek|lower-alpha;\n*/\n#nice ol {\n font-size: 15px;\n color: #595959;\n}\n\n/* 列表内容,不要设置li\n*/\n#nice li section {\n font-size: 14px;\n font-weight: normal;\n color: #595959;\n}\n\n/* 引用\n* 左边缘颜色 border-left-color:black;\n* 背景色 background:gray;\n*/\n#nice blockquote::before {\n content: \"❝\";\n color: RGBA(64, 184, 250, .5);\n font-size: 34px;\n line-height: 1;\n font-weight: 700;\n}\n\n#nice blockquote {\n text-size-adjust: 100%;\n line-height: 1.55em;\n font-weight: 400;\n border-radius: 6px;\n color: #595959;\n font-style: normal;\n text-align: left;\n box-sizing: inherit;\n border-left: none;\n border: 1px solid RGBA(64, 184, 250, .4);\n background: RGBA(64, 184, 250, .1);\n\n}\n\n#nice blockquote p {\n color: #595959;\n}\n\n#nice blockquote::after {\n content: \"❞\";\n float: right;\n color: RGBA(64, 184, 250, .5);\n}\n\n/* 链接\n* border-bottom: 1px solid #009688;\n*/\n#nice a {\n color: #40B8FA;\n font-weight: normal;\n border-bottom: 1px solid #3BAAFA;\n}\n\n#nice strong::before {\n content: '「';\n}\n\n/* 加粗 */\n#nice strong {\n color: #3594F7;\n font-weight: bold;\n}\n\n#nice strong::after {\n content: '」';\n}\n\n/* 斜体 */\n#nice em {\n font-style: normal;\n color: #3594F7;\n font-weight:bold;\n}\n\n/* 加粗斜体 */\n#nice em strong {\n color: #3594F7;\n}\n\n/* 删除线 */\n#nice del {\n color: #3594F7;\n}\n\n/* 分隔线\n* 粗细、样式和颜色\n* border-top:1px solid #3e3e3e;\n*/\n#nice hr {\n height: 1px;\n padding: 0;\n border: none;\n border-top: 2px solid #3BAAFA;\n}\n\n/* 图片\n* 宽度 width:80%;\n* 居中 margin:0 auto;\n* 居左 margin:0 0;\n*/\n#nice img {\n border-radius: 6px;\n display: block;\n margin: 20px auto;\n object-fit: contain;\n box-shadow:2px 4px 7px #999;\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n display: block;\n font-size: 13px;\n color: #595959;\n}\n\n#nice figcaption:before{\n content:'';\n\tbackground-image:url(https://img.alicdn.com/tfs/TB1Yycwyrj1gK0jSZFuXXcrHpXa-32-32.png);\n display:inline-block;\n width:18px;\n height:18px;\n background-size:18px;\n\tbackground-repeat:no-repeat;\n background-position:center;\n margin-right:5px;\n margin-bottom:-5px;\n}\n\n/* 行内代码 */\n#nice p code,\n#nice li code {\n color: #3594F7;\n background: RGBA(59, 170, 250, .1);\n display:inline-block;\n padding:0 2px;\n border-radius:2px\n}\n\n/* 非微信代码块\n* 代码块不换行 display:-webkit-box !important;\n* 代码块换行 display:block;\n*/\n#nice .code-snippet__fix {\n background: #f7f7f7;\n border-radius: 2px;\n}\n\n#nice pre code {\n letter-spacing: 0px;\n}\n\n/*\n* 表格内的单元格\n* 字体大小 font-size: 16px;\n* 边框 border: 1px solid #ccc;\n* 内边距 padding: 5px 10px;\n*/\n#nice table tr th,\n#nice table tr td {\n font-size: 14px;\n color: #595959;\n}\n\n#nice .footnotes {\n background: #F6EEFF;\n padding: 20px 20px 20px 20px;\n font-size: 14px;\n border: 0.8px solid #DEC6FB;\n border-radius: 6px;\n border: 1px solid #DEC6FB;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n font-weight: normal;\n color: #595959;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n font-weight: normal;\n color: #595959;\n}\n\n/*脚注链接样式*/\n#nice .footnote-item em {\n font-size: 14px;\n color: #595959;\n display: block;\n}\n\n#nice .footnotes{\n background: RGBA(53, 148, 247, .4);\n padding: 20px 20px 20px 20px;\n font-size: 14px;\n border-radius: 6px;\n border: 1px solid RGBA(53, 148, 247, 1);\n}\n\n/* \"参考资料\"四个字\n* 内容 content: \"参考资料\";\n*/\n#nice .footnotes-sep:before {\n content: 'Reference';\n color: #595959;\n letter-spacing: 1px;\n border-bottom: 2px solid RGBA(64, 184, 250, 1);\n display: inline;\n background: linear-gradient(white 60%, RGBA(64, 184, 250, .4) 40%);\n font-size: 20px;\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {}\n\n/* 参考资料文字 */\n#nice .footnote-item p {\n color: #595959;\n font-weight: bold;\n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n font-weight: normal;\n}\n\n/* 行间公式\n* 最大宽度 max-width: 300% !important;\n*/\n#nice .block-equation svg {}\n\n/* 行内公式\n*/\n#nice .inline-equation svg {}`;\n","export default `/* 全局属性\n* 页边距 padding:30px;\n* 全文字体 font-family:optima-Regular;\n* 英文换行 word-break:break-all;\n*/\n#nice {\n line-height: 1.25;\n font-family: Optima-Regular, Optima, PingFangTC-Light, PingFangSC-light, PingFangTC-light;\n letter-spacing: 2px;\n background-image: linear-gradient(90deg, rgba(50, 0, 0, 0.05) 3%, rgba(0, 0, 0, 0) 3%), linear-gradient(360deg, rgba(50, 0, 0, 0.05) 3%, rgba(0, 0, 0, 0) 3%);\n background-size: 20px 20px;\n background-position: center center;\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top:5px;\n * 下边距 margin-bottom:5px;\n * 行高 line-height:26px;\n * 词间距 word-spacing:3px;\n * 字间距 letter-spacing:3px;\n * 对齐 text-align:left;\n * 颜色 color:#3e3e3e;\n * 字体大小 font-size:16px;\n * 首行缩进 text-indent:2em;\n */\n#nice p {\n margin: 10px 0px;\n letter-spacing: 2px;\n font-size: 14px;\n word-spacing: 2px;\n}\n\n/* 一级标题 */\n#nice h1 {\n font-size: 25px;\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n display: inline-block;\n font-weight: bold;\n color: #773098;\n}\n\n/* 一级标题修饰 请参考有实例的主题 */\n#nice h1:after {}\n\n/* 二级标题 */\n#nice h2 {\n text-align: left;\n margin: 20px 10px 0px 0px;\n}\n\n/* 二级标题内容 */\n#nice h2 .content {\n font-size: 18px;\n font-weight: bold;\n display: inline-block;\n padding-left: 10px;\n border-left: 5px solid #916dd5;\n}\n\n/* 二级标题修饰 请参考有实例的主题 */\n#nice h2:after {}\n\n/* 三级标题 */\n#nice h3 {\n font-size: 16px;\n font-weight: bold;\n text-align: center;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n border-bottom: 2px solid #d89cf6;\n}\n\n/* 三级标题修饰 请参考有实例的主题 */\n#nice h3:after {}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n font-size: 15px;\n /*神奇逻辑,必须比li section的字体大才会在二级中生效*/\n list-style-type: circle;\n}\n\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n font-size: 15px;\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n font-size: 14px;\n font-weight: normal;\n}\n\n/* 引用\n * 左边缘颜色 border-left-color:black;\n * 背景色 background:gray;\n */\n#nice .multiquote-1 {\n border-left-color: #d89cf6;\n background: #f4eeff;\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n color: #916dd5;\n font-weight: bolder;\n border-bottom: 1px solid #916dd5;\n}\n\n#nice strong::before {\n content: '「';\n}\n\n/* 加粗 */\n#nice strong {\n color: #916dd5;\n font-weight: bold;\n}\n\n#nice strong::after {\n content: '」';\n}\n\n/* 斜体 */\n#nice em {\n font-style: normal;\n color: #916dd5;\n}\n\n/* 加粗斜体 */\n#nice em strong {\n color: #916dd5;\n}\n\n/* 删除线 */\n#nice del {\n color: #916dd5;\n}\n\n/* 分隔线\n * 粗细、样式和颜色\n */\n#nice hr {\n height: 1px;\n padding: 0;\n border: none;\n border-top: 2px solid #d9b8fa;\n}\n\n/* 图片\n * 宽度 width:80%;\n * 居中 margin:0 auto;\n * 居左 margin:0 0;\n */\n#nice img {\n border-radius: 6px;\n display: block;\n margin: 20px auto;\n object-fit: contain;\n box-shadow: 2px 4px 7px #999;\n}\n\n/* 图片描述文字 */\n#nice figcaption {\n display: block;\n font-size: 13px;\n}\n\n/* 行内代码 */\n#nice p code,\n#nice li code {\n color: #916dd5;\n font-weight: bolder;\n background: none;\n}\n\n/* 非微信代码块\n * 代码块不换行 display:-webkit-box !important;\n * 代码块换行 display:block;\n */\n#nice .code-snippet__fix {\n background: #f7f7f7;\n border-radius: 2px;\n}\n\n#nice pre code {}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n font-size: 14px;\n}\n\n#nice .footnotes {\n font-size: 14px;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n font-weight: normal;\n color: #916dd5;\n font-weight: bold;\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n font-weight: normal;\n color: #916dd5;\n}\n\n/*脚注链接样式*/\n#nice .footnote-item em {\n font-size: 14px;\n color: #916dd5;\n display: block;\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep:before {\n font-size: 20px;\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n color: #916dd5;\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p {\n color: #916dd5;\n font-weight: bold;\n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n font-weight: normal;\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {}\n\n/* 行内公式\n */\n#nice .inline-equation svg {}\n`;\n","export default `/* 全局属性\n * 页边距 padding: 30px;\n * 全文字体 font-family: ptima-Regular;\n * 英文换行 word-break: break-all;\n */\n #nice {\n font-size:14px;\n padding:10px;\n}\n\n/*图片下提示*/\n#nice figcaption{\n font-size:12px;\n}\n#nice .imageflow-caption{\n font-size:12px;\n}\n\n/* 段落,下方未标注标签参数均同此处\n * 上边距 margin-top: 5px;\n * 下边距 margin-bottom: 5px;\n * 行高 line-height: 26px;\n * 词间距 word-spacing: 3px;\n * 字间距 letter-spacing: 3px;\n * 对齐 text-align: left;\n * 颜色 color: #3e3e3e;\n * 字体大小 font-size: 16px;\n * 首行缩进 text-indent: 2em;\n */\n#nice p {\n font-size:14px;\n}\n\n/* 一级标题 */\n#nice h1 {\n}\n\n/* 一级标题内容 */\n#nice h1 .content {\n}\n\n/* 一级标题前缀 */\n#nice h1 .prefix {\n}\n\n/* 一级标题后缀 */\n#nice h1 .suffix{\n}\n\n/* 二级标题 */\n#nice h2 {\n \ttext-align:center;\n \tposition:relative;\n font-weight: bold;\n color: black;\n line-height: 1.1em;\n padding-top: 12px;\n padding-bottom: 12px;\n margin:70px 30px 30px;\n border: 1px solid #000;\n}\n\n#nice h2:before{\n content: ' ';\n float: left;\n display: block;\n width: 90%;\n border-top: 1px solid #000;\n height: 1px;\n line-height: 1px;\n margin-left: -5px;\n margin-top: -17px;\n}\n#nice h2:after{\n content: ' ';\n float: right;\n display: block;\n width: 90%;\n border-bottom: 1px solid #000;\n height: 1px;\n line-height: 1px;\n margin-right: -5px;\n margin-top: 16px;\n}\n/* 二级标题内容 */\n#nice h2 .content {\n display: block;\n -webkit-box-reflect: below 0em -webkit-gradient(linear,left top,left bottom, from(rgba(0,0,0,0)),to(rgba(255,255,255,0.1)));\n}\n#nice h2 strong {\n}\n/* 二级标题前缀 */\n#nice h2 .prefix {\n display: block;\n width: 3px;\n margin: 0 0 0 5%;\n height: 3px;\n line-height: 3px;\n overflow: hidden;\n background-color: #000;\n box-shadow:3px 0 #000,\n 0 3px #000,\n -3px 0 #000,\n 0 -3px #000;\n}\n\n/* 二级标题后缀 */\n#nice h2 .suffix {\n display: block;\n width: 3px;\n margin: 0 0 0 95%;\n height: 3px;\n line-height: 3px;\n overflow: hidden;\n background-color: #000;\n box-shadow:3px 0 #000,\n 0 3px #000,\n -3px 0 #000,\n 0 -3px #000;\n}\n\n/* 三级标题 */\n#nice h3 {\n background-color:#000;\n color:#fff;\n padding:2px 10px;\n width:fit-content;\n font-size:17px;\n margin:60px auto 10px;\n}\n#nice h3 strong {\n color:#fff;\n}\n\n/* 三级标题内容 */\n#nice h3 .content {\n}\n\n/* 三级标题前缀 */\n#nice h3 .prefix {\n}\n\n/* 三级标题后缀 */\n#nice h3 .suffix {\n}\n\n/* 无序列表整体样式\n * list-style-type: square|circle|disc;\n */\n#nice ul {\n list-style-type: square;\n}\n/* 无序二级列表\n */\n#nice ul li ul li{\n list-style-type: circle;\n}\n\n/* 有序列表整体样式\n * list-style-type: upper-roman|lower-greek|lower-alpha;\n */\n#nice ol {\n}\n\n/* 列表内容,不要设置li\n */\n#nice li section {\n}\n\n/* 引用\n * 左边缘颜色 border-left-color: black;\n * 背景色 background: gray;\n */\n#nice .multiquote-1 {\n border-left: 3px solid rgba(0, 0, 0, 0.65);\n border-right: 1px solid rgba(0, 0, 0, 0.65);\n background: rgb(249, 249, 249);\n}\n\n/* 引用文字 */\n#nice .multiquote-1 p {\n}\n\n/* 链接 \n * border-bottom: 1px solid #009688;\n */\n#nice a {\n}\n\n/* 加粗 */\n#nice strong {\n}\n\n/* 斜体 */\n#nice em {\n}\n\n/* 加粗斜体 */\n#nice em strong {\n}\n\n/* 删除线 */\n#nice del {\n}\n\n/* 分隔线\n * 粗细、样式和颜色\n * border-top: 1px solid #3e3e3e;\n */\n#nice hr {\n}\n\n/* 图片\n * 宽度 width: 80%;\n * 居中 margin: 0 auto;\n * 居左 margin: 0 0;\n */\n#nice img {\n box-shadow: rgba(170, 170, 170, 0.48) 0px 0px 6px 0px;\n border-radius:4px;\n margin-top:10px;\n}\n/* 行内代码 */\n#nice p code, #nice li code {\n color:#ff6441;\n}\n\n/* 非微信代码块\n * 代码块不换行 display: -webkit-box !important;\n * 代码块换行 display: block;\n */\n#nice pre.custom {\n box-shadow: rgba(170, 170, 170, 0.48) 0px 0px 6px 0px;\n max-width: 100%;\n border-radius:4px;\n margin: 10px auto 0 auto;\n}\n#nice pre code {\n}\n\n/*\n * 表格内的单元格\n * 字体大小 font-size: 16px;\n * 边框 border: 1px solid #ccc;\n * 内边距 padding: 5px 10px;\n */\n#nice table tr th,\n#nice table tr td {\n font-size:14px;\n}\n\n/* 脚注文字 */\n#nice .footnote-word {\n}\n\n/* 脚注上标 */\n#nice .footnote-ref {\n}\n\n/* \"参考资料\"四个字 \n * 内容 content: \"参考资料\";\n */\n#nice .footnotes-sep {\n font-size: 14px;\n color: #888;\n border-top: 1px solid #eee;\n padding: 30px 0 10px 0px;\n background-color: transparent;\n margin: 0;\n width: 100%;\n}\n#nice .footnotes-sep:before {\n content:'参考资料';\n}\n#nice .footnotes{\n border-left:5px solid #eee;\n padding-left:10px;\n}\n\n/* 参考资料编号 */\n#nice .footnote-num {\n font-size:14px;\n color:#999;\n}\n\n/* 参考资料文字 */\n#nice .footnote-item p { \n font-size:14px;\n color:#999;\n}\n\n/* 参考资料解释 */\n#nice .footnote-item p em {\n font-size:14px;\n color:#999;\n}\n\n/* 行间公式\n * 最大宽度 max-width: 300% !important;\n */\n#nice .block-equation svg {\n}\n\n/* 行内公式\n */\n#nice .inline-equation svg { \n}\n/* 文章结尾 */\n#nice:after{\n content:'- END -';\n font-size:15px;\n display:block;\n text-align:center;\n margin-top:50px;\n color:#999;\n border-bottom:1px solid #eee;\n}\n\n/*滑动幻灯片*/\n#nice .imageflow-layer1 img{\n margin:0;\n box-shadow: none;\n border-radius: 0;\n}\n`;\n","export default `/*\n\nAtom One Dark by Daniel Gamage\nOriginal One Dark Syntax theme from https://github.com/atom/one-dark-syntax\n\nbase: #282c34\nmono-1: #abb2bf\nmono-2: #818896\nmono-3: #5c6370\nhue-1: #56b6c2\nhue-2: #61aeee\nhue-3: #c678dd\nhue-4: #98c379\nhue-5: #e06c75\nhue-5-2: #be5046\nhue-6: #d19a66\nhue-6-2: #e6c07b\n\n*/\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 16px;\n color: #abb2bf;\n background: #282c34;\n}\n\n.hljs-comment,\n.hljs-quote {\n color: #5c6370;\n font-style: italic;\n}\n\n.hljs-doctag,\n.hljs-keyword,\n.hljs-formula {\n color: #c678dd;\n}\n\n.hljs-section,\n.hljs-name,\n.hljs-selector-tag,\n.hljs-deletion,\n.hljs-subst {\n color: #e06c75;\n}\n\n.hljs-literal {\n color: #56b6c2;\n}\n\n.hljs-string,\n.hljs-regexp,\n.hljs-addition,\n.hljs-attribute,\n.hljs-meta-string {\n color: #98c379;\n}\n\n.hljs-built_in,\n.hljs-class .hljs-title {\n color: #e6c07b;\n}\n\n.hljs-attr,\n.hljs-variable,\n.hljs-template-variable,\n.hljs-type,\n.hljs-selector-class,\n.hljs-selector-attr,\n.hljs-selector-pseudo,\n.hljs-number {\n color: #d19a66;\n}\n\n.hljs-symbol,\n.hljs-bullet,\n.hljs-link,\n.hljs-meta,\n.hljs-selector-id,\n.hljs-title {\n color: #61aeee;\n}\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}\n\n.hljs-link {\n text-decoration: underline;\n}`;\n","export default `/*\n\nAtom One Light by Daniel Gamage\nOriginal One Light Syntax theme from https://github.com/atom/one-light-syntax\n\nbase: #fafafa\nmono-1: #383a42\nmono-2: #686b77\nmono-3: #a0a1a7\nhue-1: #0184bb\nhue-2: #4078f2\nhue-3: #a626a4\nhue-4: #50a14f\nhue-5: #e45649\nhue-5-2: #c91243\nhue-6: #986801\nhue-6-2: #c18401\n\n*/\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 16px;\n color: #383a42;\n background: #fafafa;\n}\n\n.hljs-comment,\n.hljs-quote {\n color: #a0a1a7;\n font-style: italic;\n}\n\n.hljs-doctag,\n.hljs-keyword,\n.hljs-formula {\n color: #a626a4;\n}\n\n.hljs-section,\n.hljs-name,\n.hljs-selector-tag,\n.hljs-deletion,\n.hljs-subst {\n color: #e45649;\n}\n\n.hljs-literal {\n color: #0184bb;\n}\n\n.hljs-string,\n.hljs-regexp,\n.hljs-addition,\n.hljs-attribute,\n.hljs-meta-string {\n color: #50a14f;\n}\n\n.hljs-built_in,\n.hljs-class .hljs-title {\n color: #c18401;\n}\n\n.hljs-attr,\n.hljs-variable,\n.hljs-template-variable,\n.hljs-type,\n.hljs-selector-class,\n.hljs-selector-attr,\n.hljs-selector-pseudo,\n.hljs-number {\n color: #986801;\n}\n\n.hljs-symbol,\n.hljs-bullet,\n.hljs-link,\n.hljs-meta,\n.hljs-selector-id,\n.hljs-title {\n color: #4078f2;\n}\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}\n\n.hljs-link {\n text-decoration: underline;\n}`;\n","export default `/*\n\ngithub.com style (c) Vasily Polovnyov \n\n*/\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 16px;\n color: #333;\n background: #f8f8f8;\n}\n\n.hljs-comment,\n.hljs-quote {\n color: #998;\n font-style: italic;\n}\n\n.hljs-keyword,\n.hljs-selector-tag,\n.hljs-subst {\n color: #333;\n font-weight: bold;\n}\n\n.hljs-number,\n.hljs-literal,\n.hljs-variable,\n.hljs-template-variable,\n.hljs-tag .hljs-attr {\n color: #008080;\n}\n\n.hljs-string,\n.hljs-doctag {\n color: #d14;\n}\n\n.hljs-title,\n.hljs-section,\n.hljs-selector-id {\n color: #900;\n font-weight: bold;\n}\n\n.hljs-subst {\n font-weight: normal;\n}\n\n.hljs-type,\n.hljs-class .hljs-title {\n color: #458;\n font-weight: bold;\n}\n\n.hljs-tag,\n.hljs-name,\n.hljs-attribute {\n color: #000080;\n font-weight: normal;\n}\n\n.hljs-regexp,\n.hljs-link {\n color: #009926;\n}\n\n.hljs-symbol,\n.hljs-bullet {\n color: #990073;\n}\n\n.hljs-built_in,\n.hljs-builtin-name {\n color: #0086b3;\n}\n\n.hljs-meta {\n color: #999;\n font-weight: bold;\n}\n\n.hljs-deletion {\n background: #fdd;\n}\n\n.hljs-addition {\n background: #dfd;\n}\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}`;\n","export default `/*\nMonokai style - ported by Luigi Maselli - http://grigio.org\n*/\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 16px;\n background: #272822; color: #ddd;\n}\n\n.hljs-tag,\n.hljs-keyword,\n.hljs-selector-tag,\n.hljs-literal,\n.hljs-strong,\n.hljs-name {\n color: #f92672;\n}\n\n.hljs-code {\n color: #66d9ef;\n}\n\n.hljs-class .hljs-title {\n color: white;\n}\n\n.hljs-attribute,\n.hljs-symbol,\n.hljs-regexp,\n.hljs-link {\n color: #bf79db;\n}\n\n.hljs-string,\n.hljs-bullet,\n.hljs-subst,\n.hljs-title,\n.hljs-section,\n.hljs-emphasis,\n.hljs-type,\n.hljs-built_in,\n.hljs-builtin-name,\n.hljs-selector-attr,\n.hljs-selector-pseudo,\n.hljs-addition,\n.hljs-variable,\n.hljs-template-tag,\n.hljs-template-variable {\n color: #a6e22e;\n}\n\n.hljs-comment,\n.hljs-quote,\n.hljs-deletion,\n.hljs-meta {\n color: #75715e;\n}\n\n.hljs-keyword,\n.hljs-selector-tag,\n.hljs-literal,\n.hljs-doctag,\n.hljs-title,\n.hljs-section,\n.hljs-type,\n.hljs-selector-id {\n font-weight: bold;\n}`;\n","export default `/*\n * Visual Studio 2015 dark style\n * Author: Nicolas LLOBERA \n */\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 16px;\n background: #1E1E1E;\n color: #DCDCDC;\n}\n\n.hljs-keyword,\n.hljs-literal,\n.hljs-symbol,\n.hljs-name {\n color: #569CD6;\n}\n.hljs-link {\n color: #569CD6;\n text-decoration: underline;\n}\n\n.hljs-built_in,\n.hljs-type {\n color: #4EC9B0;\n}\n\n.hljs-number,\n.hljs-class {\n color: #B8D7A3;\n}\n\n.hljs-string,\n.hljs-meta-string {\n color: #D69D85;\n}\n\n.hljs-regexp,\n.hljs-template-tag {\n color: #9A5334;\n}\n\n.hljs-subst,\n.hljs-function,\n.hljs-title,\n.hljs-params,\n.hljs-formula {\n color: #DCDCDC;\n}\n\n.hljs-comment,\n.hljs-quote {\n color: #57A64A;\n font-style: italic;\n}\n\n.hljs-doctag {\n color: #608B4E;\n}\n\n.hljs-meta,\n.hljs-meta-keyword,\n.hljs-tag {\n color: #9B9B9B;\n}\n\n.hljs-variable,\n.hljs-template-variable {\n color: #BD63C5;\n}\n\n.hljs-attr,\n.hljs-attribute,\n.hljs-builtin-name {\n color: #9CDCFE;\n}\n\n.hljs-section {\n color: gold;\n}\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}\n\n/*.hljs-code {\n font-family:'Monospace';\n}*/\n\n.hljs-bullet,\n.hljs-selector-tag,\n.hljs-selector-id,\n.hljs-selector-class,\n.hljs-selector-attr,\n.hljs-selector-pseudo {\n color: #D7BA7D;\n}\n\n.hljs-addition {\n background-color: #144212;\n display: inline-block;\n width: 100%;\n}\n\n.hljs-deletion {\n background-color: #600;\n display: inline-block;\n width: 100%;\n}`;\n","export default `/*\n\nXCode style (c) Angel Garcia \n\n*/\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 16px;\n background: #fff;\n color: black;\n}\n\n/* Gray DOCTYPE selectors like WebKit */\n.xml .hljs-meta {\n color: #c0c0c0;\n}\n\n.hljs-comment,\n.hljs-quote {\n color: #007400;\n}\n\n.hljs-tag,\n.hljs-attribute,\n.hljs-keyword,\n.hljs-selector-tag,\n.hljs-literal,\n.hljs-name {\n color: #aa0d91;\n}\n\n.hljs-variable,\n.hljs-template-variable {\n color: #3F6E74;\n}\n\n.hljs-code,\n.hljs-string,\n.hljs-meta-string {\n color: #c41a16;\n}\n\n.hljs-regexp,\n.hljs-link {\n color: #0E0EFF;\n}\n\n.hljs-title,\n.hljs-symbol,\n.hljs-bullet,\n.hljs-number {\n color: #1c00cf;\n}\n\n.hljs-section,\n.hljs-meta {\n color: #643820;\n}\n\n\n.hljs-class .hljs-title,\n.hljs-type,\n.hljs-built_in,\n.hljs-builtin-name,\n.hljs-params {\n color: #5c2699;\n}\n\n.hljs-attr {\n color: #836C28;\n}\n\n.hljs-subst {\n color: #000;\n}\n\n.hljs-formula {\n background-color: #eee;\n font-style: italic;\n}\n\n.hljs-addition {\n background-color: #baeeba;\n}\n\n.hljs-deletion {\n background-color: #ffc8bd;\n}\n\n.hljs-selector-id,\n.hljs-selector-class {\n color: #9b703f;\n}\n\n.hljs-doctag,\n.hljs-strong {\n font-weight: bold;\n}\n\n.hljs-emphasis {\n font-style: italic;\n}`;\n","export default `/*\n\nAtom One Dark by Daniel Gamage\nOriginal One Dark Syntax theme from https://github.com/atom/one-dark-syntax\n\nbase: #282c34\nmono-1: #abb2bf\nmono-2: #818896\nmono-3: #5c6370\nhue-1: #56b6c2\nhue-2: #61aeee\nhue-3: #c678dd\nhue-4: #98c379\nhue-5: #e06c75\nhue-5-2: #be5046\nhue-6: #d19a66\nhue-6-2: #e6c07b\n\n*/\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 16px;\n color: #abb2bf;\n background: #282c34;\n}\n\n.hljs-comment,\n.hljs-quote {\n color: #5c6370;\n font-style: italic;\n}\n\n.hljs-doctag,\n.hljs-keyword,\n.hljs-formula {\n color: #c678dd;\n}\n\n.hljs-section,\n.hljs-name,\n.hljs-selector-tag,\n.hljs-deletion,\n.hljs-subst {\n color: #e06c75;\n}\n\n.hljs-literal {\n color: #56b6c2;\n}\n\n.hljs-string,\n.hljs-regexp,\n.hljs-addition,\n.hljs-attribute,\n.hljs-meta-string {\n color: #98c379;\n}\n\n.hljs-built_in,\n.hljs-class .hljs-title {\n color: #e6c07b;\n}\n\n.hljs-attr,\n.hljs-variable,\n.hljs-template-variable,\n.hljs-type,\n.hljs-selector-class,\n.hljs-selector-attr,\n.hljs-selector-pseudo,\n.hljs-number {\n color: #d19a66;\n}\n\n.hljs-symbol,\n.hljs-bullet,\n.hljs-link,\n.hljs-meta,\n.hljs-selector-id,\n.hljs-title {\n color: #61aeee;\n}\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}\n\n.hljs-link {\n text-decoration: underline;\n}\n\n#nice .custom code {\n padding-top: 15px;\n background: #282c34;\n border-radius: 5px;\n}\n\n#nice .custom:before {\n content: '';\n display:block;\n background: url(https://s2.loli.net/2022/01/11/XyHnMBGWCl5Z9DK.png);\n height: 30px;\n width: 100%;\n background-size:40px;\n background-repeat: no-repeat;\n background-color: #282c34;\n margin-bottom: -7px;\n border-radius: 5px;\n background-position: 10px 10px;\n}\n\n#nice .custom {\n border-radius: 5px;\n box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\n}`;\n","export default `/*\n\nAtom One Light by Daniel Gamage\nOriginal One Light Syntax theme from https://github.com/atom/one-light-syntax\n\nbase: #fafafa\nmono-1: #383a42\nmono-2: #686b77\nmono-3: #a0a1a7\nhue-1: #0184bb\nhue-2: #4078f2\nhue-3: #a626a4\nhue-4: #50a14f\nhue-5: #e45649\nhue-5-2: #c91243\nhue-6: #986801\nhue-6-2: #c18401\n\n*/\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 16px;\n color: #383a42;\n background: #fafafa;\n}\n\n.hljs-comment,\n.hljs-quote {\n color: #a0a1a7;\n font-style: italic;\n}\n\n.hljs-doctag,\n.hljs-keyword,\n.hljs-formula {\n color: #a626a4;\n}\n\n.hljs-section,\n.hljs-name,\n.hljs-selector-tag,\n.hljs-deletion,\n.hljs-subst {\n color: #e45649;\n}\n\n.hljs-literal {\n color: #0184bb;\n}\n\n.hljs-string,\n.hljs-regexp,\n.hljs-addition,\n.hljs-attribute,\n.hljs-meta-string {\n color: #50a14f;\n}\n\n.hljs-built_in,\n.hljs-class .hljs-title {\n color: #c18401;\n}\n\n.hljs-attr,\n.hljs-variable,\n.hljs-template-variable,\n.hljs-type,\n.hljs-selector-class,\n.hljs-selector-attr,\n.hljs-selector-pseudo,\n.hljs-number {\n color: #986801;\n}\n\n.hljs-symbol,\n.hljs-bullet,\n.hljs-link,\n.hljs-meta,\n.hljs-selector-id,\n.hljs-title {\n color: #4078f2;\n}\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}\n\n.hljs-link {\n text-decoration: underline;\n}\n\n#nice .custom code {\n padding-top: 15px;\n background: #fafafa;\n border-radius: 5px;\n}\n\n#nice .custom:before {\n content: '';\n display:block;\n background: url(https://s2.loli.net/2022/01/11/XyHnMBGWCl5Z9DK.png);\n height: 30px;\n width: 100%;\n background-size:40px;\n background-repeat: no-repeat;\n background-color: #fafafa;\n margin-bottom: -7px;\n border-radius: 5px;\n background-position: 10px 10px;\n}\n\n#nice .custom {\n border-radius: 5px;\n box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\n}`;\n","export default `/*\n\ngithub.com style (c) Vasily Polovnyov \n\n*/\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 16px;\n color: #333;\n background: #f8f8f8;\n}\n\n.hljs-comment,\n.hljs-quote {\n color: #998;\n font-style: italic;\n}\n\n.hljs-keyword,\n.hljs-selector-tag,\n.hljs-subst {\n color: #333;\n font-weight: bold;\n}\n\n.hljs-number,\n.hljs-literal,\n.hljs-variable,\n.hljs-template-variable,\n.hljs-tag .hljs-attr {\n color: #008080;\n}\n\n.hljs-string,\n.hljs-doctag {\n color: #d14;\n}\n\n.hljs-title,\n.hljs-section,\n.hljs-selector-id {\n color: #900;\n font-weight: bold;\n}\n\n.hljs-subst {\n font-weight: normal;\n}\n\n.hljs-type,\n.hljs-class .hljs-title {\n color: #458;\n font-weight: bold;\n}\n\n.hljs-tag,\n.hljs-name,\n.hljs-attribute {\n color: #000080;\n font-weight: normal;\n}\n\n.hljs-regexp,\n.hljs-link {\n color: #009926;\n}\n\n.hljs-symbol,\n.hljs-bullet {\n color: #990073;\n}\n\n.hljs-built_in,\n.hljs-builtin-name {\n color: #0086b3;\n}\n\n.hljs-meta {\n color: #999;\n font-weight: bold;\n}\n\n.hljs-deletion {\n background: #fdd;\n}\n\n.hljs-addition {\n background: #dfd;\n}\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}\n\n#nice .custom code {\n padding-top: 15px;\n background: #f8f8f8;\n border-radius: 5px;\n}\n\n#nice .custom:before {\n content: '';\n display:block;\n background: url(https://s2.loli.net/2022/01/11/XyHnMBGWCl5Z9DK.png);\n height: 30px;\n width: 100%;\n background-size:40px;\n background-repeat: no-repeat;\n background-color: #f8f8f8;\n margin-bottom: -7px;\n border-radius: 5px;\n background-position: 10px 10px;\n}\n\n#nice .custom {\n border-radius: 5px;\n box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\n}`;\n","export default `/*\nMonokai style - ported by Luigi Maselli - http://grigio.org\n*/\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 16px;\n background: #272822; color: #ddd;\n}\n\n.hljs-tag,\n.hljs-keyword,\n.hljs-selector-tag,\n.hljs-literal,\n.hljs-strong,\n.hljs-name {\n color: #f92672;\n}\n\n.hljs-code {\n color: #66d9ef;\n}\n\n.hljs-class .hljs-title {\n color: white;\n}\n\n.hljs-attribute,\n.hljs-symbol,\n.hljs-regexp,\n.hljs-link {\n color: #bf79db;\n}\n\n.hljs-string,\n.hljs-bullet,\n.hljs-subst,\n.hljs-title,\n.hljs-section,\n.hljs-emphasis,\n.hljs-type,\n.hljs-built_in,\n.hljs-builtin-name,\n.hljs-selector-attr,\n.hljs-selector-pseudo,\n.hljs-addition,\n.hljs-variable,\n.hljs-template-tag,\n.hljs-template-variable {\n color: #a6e22e;\n}\n\n.hljs-comment,\n.hljs-quote,\n.hljs-deletion,\n.hljs-meta {\n color: #75715e;\n}\n\n.hljs-keyword,\n.hljs-selector-tag,\n.hljs-literal,\n.hljs-doctag,\n.hljs-title,\n.hljs-section,\n.hljs-type,\n.hljs-selector-id {\n font-weight: bold;\n}\n\n#nice .custom code {\n padding-top: 15px;\n background: #272822;\n border-radius: 5px;\n}\n\n#nice .custom:before {\n content: '';\n display:block;\n background: url(https://s2.loli.net/2022/01/11/XyHnMBGWCl5Z9DK.png);\n height: 30px;\n width: 100%;\n background-size:40px;\n background-repeat: no-repeat;\n background-color: #272822;\n margin-bottom: -7px;\n border-radius: 5px;\n background-position: 10px 10px;\n}\n\n#nice .custom {\n border-radius: 5px;\n box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\n}`;\n","export default `/*\n * Visual Studio 2015 dark style\n * Author: Nicolas LLOBERA \n */\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 16px;\n background: #1E1E1E;\n color: #DCDCDC;\n}\n\n.hljs-keyword,\n.hljs-literal,\n.hljs-symbol,\n.hljs-name {\n color: #569CD6;\n}\n.hljs-link {\n color: #569CD6;\n text-decoration: underline;\n}\n\n.hljs-built_in,\n.hljs-type {\n color: #4EC9B0;\n}\n\n.hljs-number,\n.hljs-class {\n color: #B8D7A3;\n}\n\n.hljs-string,\n.hljs-meta-string {\n color: #D69D85;\n}\n\n.hljs-regexp,\n.hljs-template-tag {\n color: #9A5334;\n}\n\n.hljs-subst,\n.hljs-function,\n.hljs-title,\n.hljs-params,\n.hljs-formula {\n color: #DCDCDC;\n}\n\n.hljs-comment,\n.hljs-quote {\n color: #57A64A;\n font-style: italic;\n}\n\n.hljs-doctag {\n color: #608B4E;\n}\n\n.hljs-meta,\n.hljs-meta-keyword,\n.hljs-tag {\n color: #9B9B9B;\n}\n\n.hljs-variable,\n.hljs-template-variable {\n color: #BD63C5;\n}\n\n.hljs-attr,\n.hljs-attribute,\n.hljs-builtin-name {\n color: #9CDCFE;\n}\n\n.hljs-section {\n color: gold;\n}\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}\n\n/*.hljs-code {\n font-family:'Monospace';\n}*/\n\n.hljs-bullet,\n.hljs-selector-tag,\n.hljs-selector-id,\n.hljs-selector-class,\n.hljs-selector-attr,\n.hljs-selector-pseudo {\n color: #D7BA7D;\n}\n\n.hljs-addition {\n background-color: #144212;\n display: inline-block;\n width: 100%;\n}\n\n.hljs-deletion {\n background-color: #600;\n display: inline-block;\n width: 100%;\n}\n\n#nice .custom code {\n padding-top: 15px;\n background: #1E1E1E;\n border-radius: 5px;\n}\n\n#nice .custom:before {\n content: '';\n display:block;\n background: url(https://s2.loli.net/2022/01/11/XyHnMBGWCl5Z9DK.png);\n height: 30px;\n width: 100%;\n background-size:40px;\n background-repeat: no-repeat;\n background-color: #1E1E1E;\n margin-bottom: -7px;\n border-radius: 5px;\n background-position: 10px 10px;\n}\n\n#nice .custom {\n border-radius: 5px;\n box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\n}`;\n","export default `/*\n\nXCode style (c) Angel Garcia \n\n*/\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 16px;\n background: #fff;\n color: black;\n}\n\n/* Gray DOCTYPE selectors like WebKit */\n.xml .hljs-meta {\n color: #c0c0c0;\n}\n\n.hljs-comment,\n.hljs-quote {\n color: #007400;\n}\n\n.hljs-tag,\n.hljs-attribute,\n.hljs-keyword,\n.hljs-selector-tag,\n.hljs-literal,\n.hljs-name {\n color: #aa0d91;\n}\n\n.hljs-variable,\n.hljs-template-variable {\n color: #3F6E74;\n}\n\n.hljs-code,\n.hljs-string,\n.hljs-meta-string {\n color: #c41a16;\n}\n\n.hljs-regexp,\n.hljs-link {\n color: #0E0EFF;\n}\n\n.hljs-title,\n.hljs-symbol,\n.hljs-bullet,\n.hljs-number {\n color: #1c00cf;\n}\n\n.hljs-section,\n.hljs-meta {\n color: #643820;\n}\n\n\n.hljs-class .hljs-title,\n.hljs-type,\n.hljs-built_in,\n.hljs-builtin-name,\n.hljs-params {\n color: #5c2699;\n}\n\n.hljs-attr {\n color: #836C28;\n}\n\n.hljs-subst {\n color: #000;\n}\n\n.hljs-formula {\n background-color: #eee;\n font-style: italic;\n}\n\n.hljs-addition {\n background-color: #baeeba;\n}\n\n.hljs-deletion {\n background-color: #ffc8bd;\n}\n\n.hljs-selector-id,\n.hljs-selector-class {\n color: #9b703f;\n}\n\n.hljs-doctag,\n.hljs-strong {\n font-weight: bold;\n}\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n#nice .custom code {\n padding-top: 15px;\n background: #fff;\n border-radius: 5px;\n}\n\n#nice .custom:before {\n content: '';\n display:block;\n background: url(https://s2.loli.net/2022/01/11/XyHnMBGWCl5Z9DK.png);\n height: 30px;\n width: 100%;\n background-size:40px;\n background-repeat: no-repeat;\n background-color: #fff;\n margin-bottom: -7px;\n border-radius: 5px;\n background-position: 10px 10px;\n}\n\n#nice .custom {\n border-radius: 5px;\n box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\n}`;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\nimport {Modal, message} from \"antd\";\n\nimport TEMPLATE from \"../../../template/index\";\nimport \"../common.css\";\n\n@inject(\"content\")\n@inject(\"navbar\")\n@observer\nclass Reset extends Component {\n showConfirm = () => {\n Modal.confirm({\n title: \"确认重置么?\",\n content: \"重置后将丢失本地保存的文本和自定义样式\",\n okText: \"确定\",\n okType: \"danger\",\n cancelText: \"取消\",\n onOk: () => {\n this.props.content.setContent(TEMPLATE.content);\n this.props.content.setStyle(TEMPLATE.style.normal);\n this.props.content.setCustomStyle(TEMPLATE.style.custom);\n this.props.navbar.setTemplateNum(0);\n message.success(\"重置成功!\");\n },\n onCancel() {},\n });\n };\n\n render() {\n return (\n
    \n \n \n 重置\n \n
    \n );\n }\n}\n\nexport default Reset;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport {hotKeys} from \"../../../utils/hotkey\";\n\nimport \"../common.css\";\n\n@inject(\"dialog\")\n@observer\nclass Search extends Component {\n handleClick = () => {\n this.props.dialog.setSearchOpen(!this.props.dialog.isSearchOpen);\n };\n\n render() {\n return (\n
    \n \n \n 查找\n \n {hotKeys.search}\n
    \n );\n }\n}\n\nexport default Search;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport \"../common.css\";\n\n@inject(\"dialog\")\n@observer\nclass History extends Component {\n handleClick = () => {\n this.props.dialog.setHistoryOpen(true);\n };\n\n render() {\n return (\n
    \n \n \n 本地历史\n \n
    \n );\n }\n}\n\nexport default History;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport \"../common.css\";\n\n@inject(\"dialog\")\n@observer\nclass SitDownFunction extends Component {\n handleClick = () => {\n this.props.dialog.setSitDownOpen(true);\n };\n\n render() {\n return (\n
    \n \n \n SitDown\n \n
    \n );\n }\n}\n\nexport default SitDownFunction;\n","import React, {Component} from \"react\";\nimport {Menu, Dropdown} from \"antd\";\n\nimport Reset from \"./Function/Reset\";\nimport Search from \"./Function/Search\";\nimport History from \"./Function/History\";\nimport SitDown from \"./Function/SitDown\";\n\nimport \"./common.css\";\n\nconst menu = (\n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n \n);\n\nclass Function extends Component {\n render() {\n return (\n \n \n 功能\n \n \n );\n }\n}\n\nexport default Function;\n","import React from \"react\";\nimport {Menu, Dropdown} from \"antd\";\nimport {observer, inject} from \"mobx-react\";\n\nimport {TEMPLATE_OPTIONS, RIGHT_SYMBOL} from \"../../utils/constant\";\nimport TEMPLATE from \"../../template/index\";\nimport \"./Theme.css\";\n\n@inject(\"content\")\n@inject(\"navbar\")\n@inject(\"view\")\n@observer\nclass Theme extends React.Component {\n changeTemplate = (item) => {\n const index = parseInt(item.key, 10);\n const {id} = TEMPLATE_OPTIONS[index];\n this.props.navbar.setTemplateNum(index);\n\n // 更新style编辑器\n if (id === \"custom\") {\n this.props.content.setCustomStyle();\n // 切换自定义自动打开css编辑\n this.props.view.setStyleEditorOpen(true);\n } else {\n this.props.content.setStyle(TEMPLATE.style[id]);\n }\n };\n\n toggleStyleEditor = () => {\n const {isStyleEditorOpen} = this.props.view;\n this.props.view.setStyleEditorOpen(!isStyleEditorOpen);\n };\n\n render() {\n const {templateNum} = this.props.navbar;\n\n const mdMenu = (\n \n {TEMPLATE_OPTIONS.map((option, index) => (\n \n
    \n \n \n {templateNum === index && {RIGHT_SYMBOL}}\n \n {option.name}\n {option.isNew && new}\n \n {option.author}\n
    \n
    \n ))}\n \n
  • \n
    \n \n \n {this.props.view.isStyleEditorOpen && {RIGHT_SYMBOL}}\n \n 查看主题 CSS\n \n
    \n
  • \n
    \n );\n return (\n \n \n 主题\n \n \n );\n }\n}\n\nexport default Theme;\n","import React from \"react\";\nimport {Menu, Dropdown} from \"antd\";\nimport {observer, inject} from \"mobx-react\";\n\nimport {CODE_OPTIONS, RIGHT_SYMBOL, IS_MAC_CODE} from \"../../utils/constant\";\nimport \"./CodeTheme.css\";\n\n@inject(\"navbar\")\n@observer\nclass CodeTheme extends React.Component {\n changeCodeTheme = (item) => {\n // 是否为 Mac 风格代码\n if (item.key === IS_MAC_CODE) {\n const {isMacCode, codeNum} = this.props.navbar;\n if (isMacCode) {\n this.props.navbar.setMacCode(false);\n this.props.navbar.setCodeNum(codeNum, false);\n } else {\n this.props.navbar.setMacCode(true);\n this.props.navbar.setCodeNum(codeNum, true);\n }\n } else {\n const {isMacCode} = this.props.navbar;\n const codeNum = parseInt(item.key, 10);\n this.props.navbar.setCodeNum(codeNum, isMacCode);\n }\n };\n\n render() {\n const {codeNum, isMacCode} = this.props.navbar;\n\n const codeMenu = (\n \n {CODE_OPTIONS.map((option, index) => (\n \n
    \n \n {codeNum === index && {RIGHT_SYMBOL}}\n {option.name}\n \n
    \n
    \n ))}\n \n \n
    \n \n {isMacCode && {RIGHT_SYMBOL}}\n Mac 风格\n \n
    \n
    \n
    \n );\n\n return (\n \n \n 代码主题\n \n \n );\n }\n}\n\nexport default CodeTheme;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport {RIGHT_SYMBOL} from \"../../../utils/constant\";\nimport \"../common.css\";\n\n@inject(\"navbar\")\n@observer\nclass SyncScroll extends Component {\n handleClick = () => {\n const {isSyncScroll} = this.props.navbar;\n this.props.navbar.setSyncScroll(!isSyncScroll);\n };\n\n render() {\n return (\n
    \n \n {this.props.navbar.isSyncScroll && {RIGHT_SYMBOL}}\n 同步滚动\n \n
    \n );\n }\n}\n\nexport default SyncScroll;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport {RIGHT_SYMBOL} from \"../../../utils/constant\";\nimport \"../common.css\";\n\n@inject(\"navbar\")\n@observer\nclass SyncScroll extends Component {\n handleClick = () => {\n const {isContainImgName} = this.props.navbar;\n this.props.navbar.setContainImgName(!isContainImgName);\n };\n\n render() {\n return (\n
    \n \n {this.props.navbar.isContainImgName && {RIGHT_SYMBOL}}\n 上传图片时包含名称\n \n
    \n );\n }\n}\n\nexport default SyncScroll;\n","import React, {Component} from \"react\";\nimport {Menu, Dropdown} from \"antd\";\n\nimport SyncScroll from \"./Setting/SyncScroll\";\nimport ContainImgName from \"./Setting/ContainImgName\";\n\nimport \"./common.css\";\n\nconst menu = (\n \n \n \n \n \n \n \n \n);\n\nclass Setting extends Component {\n render() {\n return (\n \n \n 设置\n \n \n );\n }\n}\n\nexport default Setting;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport \"../common.css\";\n\n@inject(\"navbar\")\n@observer\nclass FullScreen extends Component {\n // fullScreen or !fullScreen\n toggleFullScreen = () => {\n const doc = window.document;\n const docEl = doc.documentElement;\n\n const requestFullScreen =\n docEl.requestFullscreen ||\n docEl.mozRequestFullScreen ||\n docEl.webkitRequestFullScreen ||\n docEl.msRequestFullscreen;\n const cancelFullScreen =\n doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen || doc.msExitFullscreen;\n\n if (\n !doc.fullscreenElement &&\n !doc.mozFullScreenElement &&\n !doc.webkitFullscreenElement &&\n !doc.msFullscreenElement\n ) {\n requestFullScreen.call(docEl);\n } else {\n cancelFullScreen.call(doc);\n }\n };\n\n render() {\n return (\n
    \n \n \n 全屏\n \n
    \n );\n }\n}\n\nexport default FullScreen;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport {RIGHT_SYMBOL} from \"../../../utils/constant\";\nimport \"../common.css\";\n\n@inject(\"view\")\n@observer\nclass EditArea extends Component {\n handleClick = () => {\n const {isEditAreaOpen} = this.props.view;\n this.props.view.setEditAreaOpen(!isEditAreaOpen);\n };\n\n render() {\n return (\n
    \n \n {this.props.view.isEditAreaOpen && {RIGHT_SYMBOL}}\n 编辑区域\n \n
    \n );\n }\n}\n\nexport default EditArea;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport {RIGHT_SYMBOL} from \"../../../utils/constant\";\nimport \"../common.css\";\n\n@inject(\"view\")\n@observer\nclass PreviewArea extends Component {\n handleClick = () => {\n const {isPreviewAreaOpen} = this.props.view;\n this.props.view.setPreviewAreaOpen(!isPreviewAreaOpen);\n };\n\n render() {\n return (\n
    \n \n {this.props.view.isPreviewAreaOpen && {RIGHT_SYMBOL}}\n 预览区域\n \n
    \n );\n }\n}\n\nexport default PreviewArea;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\n\nimport {RIGHT_SYMBOL} from \"../../../utils/constant\";\nimport \"../common.css\";\n\n@inject(\"view\")\n@observer\nclass ThemeArea extends Component {\n handleClick = () => {\n const {isStyleEditorOpen} = this.props.view;\n this.props.view.setStyleEditorOpen(!isStyleEditorOpen);\n };\n\n render() {\n return (\n
    \n \n {this.props.view.isStyleEditorOpen && {RIGHT_SYMBOL}}\n 主题CSS区域\n \n
    \n );\n }\n}\n\nexport default ThemeArea;\n","import React, {Component} from \"react\";\nimport {Menu, Dropdown} from \"antd\";\n\nimport FullScreen from \"./View/FullScreen\";\nimport EditArea from \"./View/EditArea\";\nimport PreviewArea from \"./View/PreviewArea\";\nimport ThemeArea from \"./View/ThemeArea\";\n\nimport \"./common.css\";\n\nconst menu = (\n \n \n \n \n\n \n\n \n \n \n \n \n \n \n \n \n \n);\n\nclass View extends Component {\n render() {\n return (\n \n \n 查看\n \n \n );\n }\n}\n\nexport default View;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\nimport classnames from \"classnames\";\n\nimport File from \"../component/MenuLeft/File\";\nimport Help from \"../component/MenuLeft/Help\";\nimport Pattern from \"../component/MenuLeft/Pattern\";\nimport Function from \"../component/MenuLeft/Function\";\nimport Theme from \"../component/MenuLeft/Theme\";\nimport CodeTheme from \"../component/MenuLeft/CodeTheme\";\nimport Setting from \"../component/MenuLeft/Setting\";\nimport View from \"../component/MenuLeft/View\";\n\nimport \"./Navbar.css\";\n\n// @inject(\"userInfo\")\n@inject(\"view\")\n@observer\nclass Navbar extends Component {\n render() {\n const {title} = this.props;\n const {isImmersiveEditing} = this.props.view;\n const niceNavbarClass = classnames({\n \"nice-navbar\": true,\n \"nice-navbar-hide\": isImmersiveEditing,\n });\n return (\n
    \n
    \n {title === \"\" ? null : (\n
    \n {title}\n
    \n )}\n \n \n \n \n \n \n \n \n
    \n
    \n
    \n );\n }\n}\n\nexport default Navbar;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\nimport {Tooltip} from \"antd\";\n\nimport {ENTER_DELAY, LEAVE_DELAY} from \"../../utils/constant\";\nimport SvgIcon from \"../../icon\";\nimport \"./PreviewType.css\";\n\n@inject(\"navbar\")\n@observer\nclass PreviewType extends Component {\n handleClick = (key) => {\n this.props.navbar.setPreviewType(key);\n };\n\n render() {\n const targetType = this.props.navbar.previewType === \"pc\" ? \"mobile\" : \"pc\";\n\n return (\n \n this.handleClick(targetType)}>\n \n \n \n );\n }\n}\n\nexport default PreviewType;\n","import juice from \"juice\";\nimport {message} from \"antd\";\nimport {\n BASIC_THEME_ID,\n CODE_THEME_ID,\n MARKDOWN_THEME_ID,\n LAYOUT_ID,\n BOX_ID,\n FONT_THEME_ID,\n MJX_DATA_FORMULA,\n} from \"./constant\";\n\nexport const solveWeChatMath = () => {\n const layout = document.getElementById(LAYOUT_ID);\n const mjxs = layout.getElementsByTagName(\"mjx-container\");\n for (let i = 0; i < mjxs.length; i++) {\n const mjx = mjxs[i];\n if (!mjx.hasAttribute(\"jax\")) {\n break;\n }\n\n // mjx.removeAttribute(\"data\");\n mjx.removeAttribute(\"jax\");\n mjx.removeAttribute(\"display\");\n mjx.removeAttribute(\"tabindex\");\n mjx.removeAttribute(\"ctxtmenu_counter\");\n const svg = mjx.firstChild;\n const width = svg.getAttribute(\"width\");\n const height = svg.getAttribute(\"height\");\n svg.removeAttribute(\"width\");\n svg.removeAttribute(\"height\");\n svg.style.width = width;\n svg.style.height = height;\n }\n};\n\nexport const solveZhihuMath = () => {\n const layout = document.getElementById(LAYOUT_ID);\n const mjxs = layout.getElementsByTagName(\"mjx-container\");\n while (mjxs.length > 0) {\n const mjx = mjxs[0];\n let data = mjx.getAttribute(MJX_DATA_FORMULA);\n if (!data) {\n continue;\n }\n\n if (mjx.hasAttribute(\"display\") && data.indexOf(\"\\\\tag\") === -1) {\n data += \"\\\\\\\\\";\n }\n\n mjx.outerHTML = '\"'';\n }\n};\n\nexport const solveJuejinMath = () => {\n const layout = document.getElementById(LAYOUT_ID);\n const mjxs = layout.getElementsByTagName(\"mjx-container\");\n while (mjxs.length > 0) {\n const mjx = mjxs[0];\n const data = mjx.getAttribute(MJX_DATA_FORMULA);\n if (!data) {\n continue;\n }\n\n // 行间公式\n if (mjx.hasAttribute(\"display\")) {\n mjx.outerHTML = `
    \"\"/
    `;\n }\n // 行内公式\n else {\n mjx.outerHTML = `\"\"/`;\n }\n }\n};\n\nexport const juejinSuffix = () => {\n const suffix = document.createElement(\"p\");\n suffix.id = \"nice-suffix-juejin-container\";\n suffix.className = \"nice-suffix-juejin-container\";\n suffix.innerHTML = `本文使用 mdnice 排版`;\n\n const element = document.getElementById(LAYOUT_ID);\n element.appendChild(suffix);\n};\n\nexport const solveHtml = () => {\n const element = document.getElementById(BOX_ID);\n\n const inner = element.children[0].children;\n for (const item of inner) {\n item.setAttribute(\"data-tool\", \"mdnice编辑器\");\n }\n let html = element.innerHTML;\n html = html.replace(//g, \"\");\n html = html.replace(/\\s<\\/span>\\s/g, \"svg> \");\n html = html.replace(/mjx-container/g, \"section\");\n html = html.replace(/class=\"mjx-solid\"/g, 'fill=\"none\" stroke-width=\"70\"');\n html = html.replace(//g, \"\");\n const basicStyle = document.getElementById(BASIC_THEME_ID).innerText;\n const markdownStyle = document.getElementById(MARKDOWN_THEME_ID).innerText;\n const codeStyle = document.getElementById(CODE_THEME_ID).innerText;\n const fontStyle = document.getElementById(FONT_THEME_ID).innerText;\n let res = \"\";\n try {\n res = juice.inlineContent(html, basicStyle + markdownStyle + codeStyle + fontStyle, {\n inlinePseudoElements: true,\n preserveImportant: true,\n });\n } catch (e) {\n message.error(\"请检查 CSS 文件是否编写正确!\");\n }\n\n return res;\n};\n\nexport const copySafari = (text) => {\n // 获取 input\n let input = document.getElementById(\"copy-input\");\n if (!input) {\n // input 不能用 CSS 隐藏,必须在页面内存在。\n input = document.createElement(\"input\");\n input.id = \"copy-input\";\n input.style.position = \"absolute\";\n input.style.left = \"-1000px\";\n input.style.zIndex = \"-1000\";\n document.body.appendChild(input);\n }\n // 让 input 选中一个字符,无所谓那个字符\n input.value = \"NOTHING\";\n input.setSelectionRange(0, 1);\n input.focus();\n\n // 复制触发\n document.addEventListener(\"copy\", function copyCall(e) {\n e.preventDefault();\n e.clipboardData.setData(\"text/html\", text);\n e.clipboardData.setData(\"text/plain\", text);\n document.removeEventListener(\"copy\", copyCall);\n });\n document.execCommand(\"copy\");\n};\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\nimport {message, Tooltip} from \"antd\";\n\nimport {solveWeChatMath, solveHtml, copySafari} from \"../../utils/converter\";\nimport {LAYOUT_ID, ENTER_DELAY, LEAVE_DELAY} from \"../../utils/constant\";\nimport SvgIcon from \"../../icon\";\nimport \"./Wechat.css\";\n\n@inject(\"content\")\n@inject(\"navbar\")\n@inject(\"imageHosting\")\n@inject(\"dialog\")\n@observer\nclass Wechat extends Component {\n constructor(props) {\n super(props);\n this.html = \"\";\n }\n\n copyWechat = () => {\n const layout = document.getElementById(LAYOUT_ID); // 保护现场\n const html = layout.innerHTML;\n solveWeChatMath();\n this.html = solveHtml();\n copySafari(this.html);\n message.success(\"已复制,请到微信公众平台粘贴\");\n layout.innerHTML = html; // 恢复现场\n };\n\n render() {\n return (\n \n \n \n \n \n );\n }\n}\n\nexport default Wechat;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\nimport {message, Tooltip} from \"antd\";\n\nimport {solveHtml, solveZhihuMath, copySafari} from \"../../utils/converter\";\nimport {LAYOUT_ID, CODE_NUM, ENTER_DELAY, LEAVE_DELAY} from \"../../utils/constant\";\nimport SvgIcon from \"../../icon\";\nimport \"./Zhihu.css\";\n\n@inject(\"content\")\n@inject(\"navbar\")\n@inject(\"imageHosting\")\n@inject(\"dialog\")\n@observer\nclass Zhihu extends Component {\n constructor(props) {\n super(props);\n this.html = \"\";\n }\n\n copyZhihu = () => {\n if (window.localStorage.getItem(CODE_NUM) === \"0\") {\n message.warning(\"您当前使用的是微信代码主题,请切换其他代码主题后再试!\");\n return;\n }\n const layout = document.getElementById(LAYOUT_ID); // 保护现场\n const html = layout.innerHTML;\n solveZhihuMath();\n this.html = solveHtml();\n copySafari(this.html);\n message.success(\"已复制,请到知乎粘贴\");\n layout.innerHTML = html; // 恢复现场\n };\n\n render() {\n return (\n \n \n \n \n \n );\n }\n}\n\nexport default Zhihu;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\nimport {message, Tooltip} from \"antd\";\n\nimport {solveHtml, solveJuejinMath, juejinSuffix, copySafari} from \"../../utils/converter\";\nimport {LAYOUT_ID, CODE_NUM, ENTER_DELAY, LEAVE_DELAY} from \"../../utils/constant\";\nimport SvgIcon from \"../../icon\";\nimport \"./Juejin.css\";\n\n@inject(\"content\")\n@inject(\"navbar\")\n@inject(\"imageHosting\")\n@inject(\"dialog\")\n@observer\nclass Juejin extends Component {\n constructor(props) {\n super(props);\n this.html = \"\";\n }\n\n copyJuejin = () => {\n if (window.localStorage.getItem(CODE_NUM) === \"0\") {\n message.warning(\"您当前使用的是微信代码主题,请切换其他代码主题后再试!\");\n return;\n }\n const layout = document.getElementById(LAYOUT_ID); // 保护现场\n const html = layout.innerHTML;\n solveJuejinMath();\n juejinSuffix();\n this.html = solveHtml();\n copySafari(this.html);\n message.success(\"已复制且添加 mdnice 排版后缀,感谢宣传,请到稀土掘金粘贴\");\n layout.innerHTML = html; // 恢复现场\n };\n\n render() {\n return (\n \n \n \n \n \n );\n }\n}\n\nexport default Juejin;\n","import React, {Component} from \"react\";\nimport {observer, inject} from \"mobx-react\";\nimport classnames from \"classnames\";\n\nimport PreviewType from \"../component/Sidebar/PreviewType\";\nimport Wechat from \"../component/Sidebar/Wechat\";\nimport Zhihu from \"../component/Sidebar/Zhihu\";\nimport Juejin from \"../component/Sidebar/Juejin\";\nimport \"./Sidebar.css\";\n\n// @inject(\"userInfo\")\n@inject(\"view\")\n@observer\nclass Sidebar extends Component {\n render() {\n const {isImmersiveEditing} = this.props.view;\n const niceSidebarClass = classnames({\n \"nice-sidebar\": true,\n \"nice-sidebar-hide\": isImmersiveEditing,\n });\n return (\n
    \n \n \n \n \n
    \n );\n }\n}\n\nexport default Sidebar;\n","import React, {Component} from \"react\";\nimport {Modal} from \"antd\";\n\nimport CodeMirror from \"@uiw/react-codemirror\";\nimport \"codemirror/keymap/sublime\";\nimport \"codemirror/addon/edit/closebrackets\";\nimport \"codemirror/addon/hint/show-hint\";\nimport \"codemirror/addon/hint/show-hint.css\";\nimport \"codemirror/addon/hint/css-hint\";\nimport \"antd/dist/antd.css\";\nimport {observer, inject} from \"mobx-react\";\n\nimport \"../utils/styleMirror.css\";\nimport {TEMPLATE_CUSTOM_NUM, TEMPLATE_OPTIONS} from \"../utils/constant\";\nimport TEMPLATE from \"../template/index\";\n\n@inject(\"content\")\n@inject(\"navbar\")\n@observer\nclass StyleEditor extends Component {\n constructor(props) {\n super(props);\n this.focus = false;\n }\n\n getStyleInstance = (instance) => {\n if (instance) {\n this.styleEditor = instance.editor;\n this.styleEditor.on(\"keyup\", (cm, event) => {\n if ((event.keyCode >= 65 && event.keyCode <= 90) || event.keyCode === 189) {\n cm.showHint({completeSingle: false});\n }\n });\n }\n };\n\n showConfirm = () => {\n Modal.confirm({\n title: \"是否想使用该模板?\",\n content: \"确定后将复制当前内容和样式并切换为自定义\",\n cancelText: \"取消\",\n okText: \"确定\",\n onOk: () => {\n const {templateNum} = this.props.navbar;\n const {id} = TEMPLATE_OPTIONS[templateNum];\n const style = `/*自定义样式,实时生效*/\\n\\n` + TEMPLATE.style[id];\n this.props.content.setCustomStyle(style);\n this.props.navbar.setTemplateNum(TEMPLATE_CUSTOM_NUM);\n },\n onCancel: () => {},\n });\n };\n\n changeStyle = (editor) => {\n const {templateNum} = this.props.navbar;\n // focus状态很重要,初始化时被调用则不会进入条件\n if (this.focus && templateNum !== TEMPLATE_CUSTOM_NUM) {\n this.showConfirm();\n } else if (this.focus) {\n const style = editor.getValue();\n this.props.content.setCustomStyle(style);\n }\n };\n\n handleFocus = () => {\n this.focus = true;\n };\n\n handleBlur = () => {\n this.focus = false;\n };\n\n render() {\n return (\n \n );\n }\n}\n\nexport default StyleEditor;\n","import React, {Component} from \"react\";\nimport {Menu} from \"antd\";\n\nimport LinkToFoot from \"../component/MenuLeft/Pattern/LinkToFoot\";\nimport Format from \"../component/MenuLeft/Pattern/Format\";\nimport Image from \"../component/MenuLeft/Pattern/Image\";\nimport \"./EditorMenu.css\";\n\nclass EditorMenu extends Component {\n render() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n }\n}\n\nexport default EditorMenu;\n","/* eslint-disable react/no-did-update-set-state */\n/* eslint-disable react/no-unused-state */\nimport React, {createRef} from \"react\";\nimport {observer, inject} from \"mobx-react\";\nimport {Input, Tooltip} from \"antd\";\n\nimport {ENTER_DELAY, LEAVE_DELAY} from \"../../utils/constant\";\n\nimport SvgIcon from \"../../icon\";\n\nimport \"./SearchBox.css\";\n\nfunction WrappedButton(props) {\n const className = props.className === undefined ? \"\" : props.className;\n return (\n \n \n \n );\n}\n\n@inject(\"content\")\n@inject(\"dialog\")\n@observer\nclass SearchBox extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n replaceText: \"\",\n searchText: \"\",\n isReplaceOpen: false,\n cursor: null,\n caseFold: true,\n };\n this.searchRef = createRef();\n }\n\n /** false means next, true means previous */\n posChange = (direction) => {\n this.clearMarks();\n if (typeof direction !== \"boolean\") {\n return;\n }\n const {cursor, searchText} = this.state;\n if (searchText && cursor) {\n cursor.find(direction);\n if (cursor.atOccurrence) {\n this.highlight();\n } else {\n while (cursor.find(!direction)) {\n // 从头开始寻找\n }\n cursor.find(direction);\n this.highlight();\n }\n }\n };\n\n handleCaseFold = () => {\n const {markdownEditor} = this.props.content;\n this.clearMarks();\n this.setState(\n (prevState) => {\n const caseFold = !prevState.caseFold;\n const cursor = prevState.searchText\n ? markdownEditor.getSearchCursor(prevState.searchText, null, {caseFold: caseFold})\n : null;\n return {caseFold, cursor};\n },\n () => this.posChange(false),\n );\n };\n\n handleScroll = (offset) => {\n const {markdownEditor} = this.props.content;\n const {top} = markdownEditor.getScrollInfo(offset);\n console.log(offset);\n markdownEditor.scrollTo(null, top + offset);\n };\n\n componentWillUnmount = () => {\n this.handleScroll(this.state.isReplaceOpen ? -72 : -40);\n };\n\n componentDidMount = () => {\n this.searchRef.current.focus();\n this.handleScroll(40);\n };\n\n clearMarks = () => {\n const {markdownEditor} = this.props.content;\n // const markers = markdownEditor.getAllMarks();\n // markers.forEach((marker) => marker.clear());\n const cursor = markdownEditor.getCursor();\n markdownEditor.setSelection(cursor);\n };\n\n findContent = (value) => {\n const {markdownEditor} = this.props.content;\n this.setState(\n (prevState) => {\n const cursor = value ? markdownEditor.getSearchCursor(value, null, {caseFold: prevState.caseFold}) : null;\n return {searchText: value, cursor};\n },\n () => this.posChange(false),\n );\n };\n\n highlight = () => {\n // 高亮前需检测是否有匹配\n if (this.state.cursor.atOccurrence) {\n const {markdownEditor} = this.props.content;\n const from = this.state.cursor.from();\n const to = this.state.cursor.to();\n\n // markdownEditor.markText(from, to, {\n // className: \"searchbox-text-highlight\",\n // });\n markdownEditor.setSelection(from, to);\n // 防止搜索框挡住文字\n markdownEditor.scrollIntoView(from, 200);\n }\n };\n\n replace = () => {\n const {markdownEditor} = this.props.content;\n const selection = markdownEditor.getSelection();\n if (selection) {\n // 未选中不进行替换\n markdownEditor.replaceSelection(this.state.replaceText);\n\n const content = markdownEditor.getValue();\n this.props.content.setContent(content);\n this.posChange(false);\n }\n };\n\n replaceAll = () => {\n const {markdownEditor} = this.props.content;\n const selection = markdownEditor.getSelection();\n if (selection && this.state.searchText) {\n const content = markdownEditor.getValue();\n const searchReg = new RegExp(this.state.searchText, \"g\");\n const replaced = content.replace(searchReg, this.state.replaceText);\n\n this.props.content.setContent(replaced);\n }\n };\n\n handelFoldClick = () => {\n this.setState((prevState) => {\n const {isReplaceOpen} = prevState;\n this.handleScroll(isReplaceOpen ? -32 : 32);\n return {isReplaceOpen: !isReplaceOpen};\n });\n };\n\n handleClose = () => {\n this.props.dialog.setSearchOpen(false);\n this.clearMarks();\n };\n\n render() {\n const {isReplaceOpen} = this.state;\n\n return (\n
    \n
    \n \n this.findContent(e.target.value)}\n onPressEnter={() => this.posChange(false)}\n ref={this.searchRef}\n />\n \n this.posChange(true)}\n tipText=\"上一个\"\n />\n this.posChange(false)} tipText=\"下一个\" />\n \n
    \n
    \n {\n this.setState({replaceText: e.target.value});\n }}\n onPressEnter={this.replace}\n />\n \n \n
    \n
    \n );\n }\n}\n\nexport default SearchBox;\n","// 检测插件是否安装\nexport default {\n mathjax: false,\n};\n","import React, {Component} from \"react\";\nimport CodeMirror from \"@uiw/react-codemirror\";\nimport \"codemirror/addon/search/searchcursor\";\nimport \"codemirror/keymap/sublime\";\nimport \"antd/dist/antd.css\";\nimport {observer, inject} from \"mobx-react\";\nimport classnames from \"classnames\";\nimport throttle from \"lodash.throttle\";\n\nimport Dialog from \"./layout/Dialog\";\nimport Navbar from \"./layout/Navbar\";\nimport Sidebar from \"./layout/Sidebar\";\nimport StyleEditor from \"./layout/StyleEditor\";\nimport EditorMenu from \"./layout/EditorMenu\";\nimport SearchBox from \"./component/SearchBox\";\n\nimport \"./App.css\";\nimport \"./utils/mdMirror.css\";\n\nimport {\n LAYOUT_ID,\n BOX_ID,\n IMAGE_HOSTING_NAMES,\n IMAGE_HOSTING_TYPE,\n MJX_DATA_FORMULA,\n MJX_DATA_FORMULA_TYPE,\n} from \"./utils/constant\";\nimport {markdownParser, markdownParserWechat, updateMathjax} from \"./utils/helper\";\nimport pluginCenter from \"./utils/pluginCenter\";\nimport appContext from \"./utils/appContext\";\nimport {uploadAdaptor} from \"./utils/imageHosting\";\nimport bindHotkeys, {betterTab, rightClick} from \"./utils/hotkey\";\n\n@inject(\"content\")\n@inject(\"navbar\")\n@inject(\"view\")\n@inject(\"dialog\")\n@inject(\"imageHosting\")\n@observer\nclass App extends Component {\n constructor(props) {\n super(props);\n this.focus = false;\n this.scale = 1;\n this.handleUpdateMathjax = throttle(updateMathjax, 1500);\n }\n\n componentDidMount() {\n document.addEventListener(\"fullscreenchange\", this.solveScreenChange);\n document.addEventListener(\"webkitfullscreenchange\", this.solveScreenChange);\n document.addEventListener(\"mozfullscreenchange\", this.solveScreenChange);\n document.addEventListener(\"MSFullscreenChange\", this.solveScreenChange);\n try {\n window.MathJax = {\n tex: {\n inlineMath: [[\"$\", \"$\"]],\n displayMath: [[\"$$\", \"$$\"]],\n tags: \"ams\",\n },\n svg: {\n fontCache: \"none\",\n },\n options: {\n renderActions: {\n addMenu: [0, \"\", \"\"],\n addContainer: [\n 190,\n (doc) => {\n for (const math of doc.math) {\n this.addContainer(math, doc);\n }\n },\n this.addContainer,\n ],\n },\n },\n };\n // eslint-disable-next-line\n require(\"mathjax/es5/tex-svg-full\");\n pluginCenter.mathjax = true;\n } catch (e) {\n console.log(e);\n }\n this.setEditorContent();\n this.setCustomImageHosting();\n }\n\n componentDidUpdate() {\n if (pluginCenter.mathjax) {\n this.handleUpdateMathjax();\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener(\"fullscreenchange\", this.solveScreenChange);\n document.removeEventListener(\"webkitfullscreenchange\", this.solveScreenChange);\n document.removeEventListener(\"mozfullscreenchange\", this.solveScreenChange);\n document.removeEventListener(\"MSFullscreenChange\", this.solveScreenChange);\n }\n\n setCustomImageHosting = () => {\n if (this.props.useImageHosting === undefined) {\n return;\n }\n const {url, name, isSmmsOpen, isQiniuyunOpen, isAliyunOpen} = this.props.useImageHosting;\n if (name) {\n this.props.imageHosting.setHostingUrl(url);\n this.props.imageHosting.setHostingName(name);\n this.props.imageHosting.addImageHosting(name);\n }\n if (isSmmsOpen) {\n this.props.imageHosting.addImageHosting(IMAGE_HOSTING_NAMES.smms);\n }\n if (isAliyunOpen) {\n this.props.imageHosting.addImageHosting(IMAGE_HOSTING_NAMES.aliyun);\n }\n if (isQiniuyunOpen) {\n this.props.imageHosting.addImageHosting(IMAGE_HOSTING_NAMES.qiniuyun);\n }\n\n // 第一次进入没有默认图床时\n if (window.localStorage.getItem(IMAGE_HOSTING_TYPE) === null) {\n let type;\n if (name) {\n type = name;\n } else if (isSmmsOpen) {\n type = IMAGE_HOSTING_NAMES.smms;\n } else if (isAliyunOpen) {\n type = IMAGE_HOSTING_NAMES.aliyun;\n } else if (isQiniuyunOpen) {\n type = IMAGE_HOSTING_NAMES.qiniuyun;\n }\n this.props.imageHosting.setType(type);\n window.localStorage.setItem(IMAGE_HOSTING_TYPE, type);\n }\n };\n\n setEditorContent = () => {\n const {defaultText} = this.props;\n if (defaultText) {\n this.props.content.setContent(defaultText);\n }\n };\n\n setCurrentIndex(index) {\n this.index = index;\n }\n\n solveScreenChange = () => {\n const {isImmersiveEditing} = this.props.view;\n this.props.view.setImmersiveEditing(!isImmersiveEditing);\n };\n\n getInstance = (instance) => {\n if (instance) {\n this.props.content.setMarkdownEditor(instance.editor);\n }\n };\n\n handleScroll = () => {\n if (this.props.navbar.isSyncScroll) {\n const {markdownEditor} = this.props.content;\n const cmData = markdownEditor.getScrollInfo();\n const editorToTop = cmData.top;\n const editorScrollHeight = cmData.height - cmData.clientHeight;\n this.scale = (this.previewWrap.offsetHeight - this.previewContainer.offsetHeight + 55) / editorScrollHeight;\n if (this.index === 1) {\n this.previewContainer.scrollTop = editorToTop * this.scale;\n } else {\n this.editorTop = this.previewContainer.scrollTop / this.scale;\n markdownEditor.scrollTo(null, this.editorTop);\n }\n }\n };\n\n handleChange = (editor) => {\n if (this.focus) {\n const content = editor.getValue();\n this.props.content.setContent(content);\n this.props.onTextChange && this.props.onTextChange(content);\n }\n };\n\n handleFocus = () => {\n this.focus = true;\n };\n\n handleBlur = () => {\n this.focus = false;\n };\n\n getStyleInstance = (instance) => {\n if (instance) {\n this.styleEditor = instance.editor;\n this.styleEditor.on(\"keyup\", (cm, e) => {\n if ((e.keyCode >= 65 && e.keyCode <= 90) || e.keyCode === 189) {\n cm.showHint(e);\n }\n });\n }\n };\n\n handleDrop = (instance, e) => {\n // e.preventDefault();\n // console.log(e.dataTransfer.files[0]);\n if (!(e.dataTransfer && e.dataTransfer.files)) {\n return;\n }\n for (let i = 0; i < e.dataTransfer.files.length; i++) {\n // console.log(e.dataTransfer.files[i]);\n uploadAdaptor({file: e.dataTransfer.files[i], content: this.props.content});\n }\n };\n\n handlePaste = (instance, e) => {\n if (e.clipboardData && e.clipboardData.files) {\n for (let i = 0; i < e.clipboardData.files.length; i++) {\n uploadAdaptor({file: e.clipboardData.files[i], content: this.props.content});\n }\n }\n };\n\n addContainer(math, doc) {\n const tag = \"span\";\n const spanClass = math.display ? \"span-block-equation\" : \"span-inline-equation\";\n const cls = math.display ? \"block-equation\" : \"inline-equation\";\n math.typesetRoot.className = cls;\n math.typesetRoot.setAttribute(MJX_DATA_FORMULA, math.math);\n math.typesetRoot.setAttribute(MJX_DATA_FORMULA_TYPE, cls);\n math.typesetRoot = doc.adaptor.node(tag, {class: spanClass, style: \"cursor:pointer\"}, [math.typesetRoot]);\n }\n\n render() {\n const {codeNum, previewType} = this.props.navbar;\n const {isEditAreaOpen, isPreviewAreaOpen, isStyleEditorOpen, isImmersiveEditing} = this.props.view;\n const {isSearchOpen} = this.props.dialog;\n\n const parseHtml =\n codeNum === 0\n ? markdownParserWechat.render(this.props.content.content)\n : markdownParser.render(this.props.content.content);\n\n const mdEditingClass = classnames({\n \"nice-md-editing\": !isImmersiveEditing,\n \"nice-md-editing-immersive\": isImmersiveEditing,\n \"nice-md-editing-hide\": !isEditAreaOpen,\n });\n\n const styleEditingClass = classnames({\n \"nice-style-editing\": true,\n \"nice-style-editing-hide\": isImmersiveEditing,\n });\n\n const richTextClass = classnames({\n \"nice-marked-text\": true,\n \"nice-marked-text-pc\": previewType === \"pc\",\n \"nice-marked-text-hide\": isImmersiveEditing || !isPreviewAreaOpen,\n });\n\n const richTextBoxClass = classnames({\n \"nice-wx-box\": true,\n \"nice-wx-box-pc\": previewType === \"pc\",\n });\n\n const textContainerClass = classnames({\n \"nice-text-container\": !isImmersiveEditing,\n \"nice-text-container-immersive\": isImmersiveEditing,\n });\n\n return (\n \n {({defaultTitle}) => (\n
    \n \n
    \n
    this.setCurrentIndex(1, e)}>\n {isSearchOpen && }\n \n
    \n
    this.setCurrentIndex(2, e)}>\n \n {\n this.previewContainer = node;\n }}\n >\n {\n this.previewWrap = node;\n }}\n />\n
    \n
    \n\n {isStyleEditorOpen && (\n
    \n \n
    \n )}\n\n \n \n
    \n
    \n )}\n \n );\n }\n}\n\nexport default App;\n","import {observable, action} from \"mobx\";\nimport {\n CONTENT,\n STYLE,\n TEMPLATE_OPTIONS,\n TEMPLATE_NUM,\n TEMPLATE_CUSTOM_NUM,\n MARKDOWN_THEME_ID,\n BASIC_THEME_ID,\n STYLE_LABELS,\n} from \"../utils/constant\";\nimport {replaceStyle, addStyleLabel} from \"../utils/helper\";\nimport TEMPLATE from \"../template/index\";\n\nclass Content {\n @observable content;\n\n @observable style;\n\n @observable markdownEditor;\n\n @action\n setMarkdownEditor = (markdownEditor) => {\n this.markdownEditor = markdownEditor;\n };\n\n @action\n setContent = (content) => {\n this.content = content;\n window.localStorage.setItem(CONTENT, content);\n };\n\n @action\n setStyle = (style) => {\n this.style = style;\n replaceStyle(MARKDOWN_THEME_ID, style);\n };\n\n // 自定义样式\n @action\n setCustomStyle = (style = \"\") => {\n // 如果传入则更新\n if (style) {\n window.localStorage.setItem(STYLE, style);\n }\n this.style = window.localStorage.getItem(STYLE);\n replaceStyle(MARKDOWN_THEME_ID, this.style);\n };\n}\n\nconst store = new Content();\n\n// 如果为空先把数据放进去\nif (window.localStorage.getItem(CONTENT) === null) {\n window.localStorage.setItem(CONTENT, TEMPLATE.content);\n}\nif (!window.localStorage.getItem(STYLE)) {\n window.localStorage.setItem(STYLE, TEMPLATE.style.custom);\n}\n\nconst templateNum = parseInt(window.localStorage.getItem(TEMPLATE_NUM), 10);\n\n// 用于处理刷新后的信息持久化\n// 属于自定义主题则从localstorage中读数据\nif (templateNum === TEMPLATE_CUSTOM_NUM) {\n store.style = window.localStorage.getItem(STYLE);\n} else {\n if (templateNum) {\n const {id} = TEMPLATE_OPTIONS[templateNum];\n store.style = TEMPLATE.style[id];\n } else {\n store.style = TEMPLATE.style.normal;\n }\n}\n\n// 在head中添加style标签\naddStyleLabel(STYLE_LABELS);\n\n// 初始化整体主题\nreplaceStyle(BASIC_THEME_ID, TEMPLATE.basic);\nreplaceStyle(MARKDOWN_THEME_ID, store.style);\n\nstore.content = window.localStorage.getItem(CONTENT);\n\nexport default store;\n","// mobx\nimport {observable, action} from \"mobx\";\n\nclass UserInfo {\n // 观察值\n @observable userInfo = {};\n\n @observable userRepo = [];\n\n @action\n setUserInfo = (userInfo) => {\n this.userInfo = userInfo;\n };\n\n @action\n setUserRepo = (userRepoList) => {\n this.userRepo = userRepoList;\n };\n}\n\nconst userInfo = new UserInfo();\n\nexport default userInfo;\n","import {observable, action} from \"mobx\";\nimport {\n TEMPLATE_NUM,\n CODE_NUM,\n CODE_THEME_ID,\n CODE_OPTIONS,\n PREVIEW_TYPE,\n IS_SYNC_SCROLL,\n IS_CONTAIN_IMG_NAME,\n IS_MAC_CODE,\n} from \"../utils/constant\";\nimport TEMPLATE from \"../template/index\";\nimport {replaceStyle} from \"../utils/helper\";\n\nclass Navbar {\n // 是否同步滚动\n @observable isSyncScroll = true;\n\n // 是否保留图片名称\n @observable isContainImgName = false;\n\n // 主题序号\n @observable templateNum;\n\n // 代码主题序号\n @observable codeNum;\n\n // 是否为 Mac 风格代码\n @observable isMacCode = false;\n\n // 预览类型\n @observable previewType;\n\n @action\n setSyncScroll = (isSyncScroll) => {\n this.isSyncScroll = isSyncScroll;\n window.localStorage.setItem(IS_SYNC_SCROLL, isSyncScroll);\n };\n\n @action\n setContainImgName = (isContainImgName) => {\n this.isContainImgName = isContainImgName;\n window.localStorage.setItem(IS_CONTAIN_IMG_NAME, isContainImgName);\n };\n\n @action\n setTemplateNum = (templateNum) => {\n this.templateNum = templateNum;\n window.localStorage.setItem(TEMPLATE_NUM, templateNum);\n };\n\n @action\n setCodeNum = (codeNum, isMacCode) => {\n this.codeNum = codeNum;\n window.localStorage.setItem(CODE_NUM, codeNum);\n // 更新style\n const {id, macId} = CODE_OPTIONS[codeNum];\n // 非微信代码块\n if (codeNum !== 0) {\n // Mac 风格代码\n if (isMacCode) {\n replaceStyle(CODE_THEME_ID, TEMPLATE.code[macId]);\n } else {\n replaceStyle(CODE_THEME_ID, TEMPLATE.code[id]);\n }\n }\n };\n\n @action\n setMacCode = (isMacCode) => {\n this.isMacCode = isMacCode;\n window.localStorage.setItem(IS_MAC_CODE, isMacCode);\n };\n\n @action\n setPreviewType = (previewType) => {\n this.previewType = previewType;\n window.localStorage.setItem(PREVIEW_TYPE, previewType);\n };\n}\n\nconst store = new Navbar();\n\n// 如果为空先把数据放进去\nif (!window.localStorage.getItem(TEMPLATE_NUM)) {\n window.localStorage.setItem(TEMPLATE_NUM, 0);\n}\n\n// 如果为空先把数据放进去\nif (!window.localStorage.getItem(CODE_NUM)) {\n window.localStorage.setItem(CODE_NUM, 1);\n}\n\nif (!window.localStorage.getItem(PREVIEW_TYPE)) {\n window.localStorage.setItem(PREVIEW_TYPE, \"mobile\");\n}\n\nif (!window.localStorage.getItem(IS_SYNC_SCROLL)) {\n window.localStorage.setItem(IS_SYNC_SCROLL, true);\n}\n\nif (!window.localStorage.getItem(IS_CONTAIN_IMG_NAME)) {\n window.localStorage.setItem(IS_CONTAIN_IMG_NAME, false);\n}\n\nif (!window.localStorage.getItem(IS_MAC_CODE)) {\n window.localStorage.setItem(IS_MAC_CODE, true);\n}\n\n// 获取之前选择的主题状态\nstore.templateNum = parseInt(window.localStorage.getItem(TEMPLATE_NUM), 10);\nstore.codeNum = parseInt(window.localStorage.getItem(CODE_NUM), 10);\nstore.previewType = window.localStorage.getItem(PREVIEW_TYPE);\nstore.isSyncScroll = window.localStorage.getItem(IS_SYNC_SCROLL) === \"true\";\nstore.isContainImgName = window.localStorage.getItem(IS_CONTAIN_IMG_NAME) === \"true\";\nstore.isMacCode = window.localStorage.getItem(IS_MAC_CODE) === \"true\";\n\n// 初始化代码主题\nconst {macId, id} = CODE_OPTIONS[store.codeNum];\nif (store.codeNum !== 0) {\n if (store.isMacCode) {\n replaceStyle(CODE_THEME_ID, TEMPLATE.code[macId]);\n } else {\n replaceStyle(CODE_THEME_ID, TEMPLATE.code[id]);\n }\n}\n\nexport default store;\n","import {observable, action} from \"mobx\";\n\nclass Dialog {\n @observable isImageOpen = false;\n\n @observable isLinkOpen = false;\n\n @observable isAboutOpen = false;\n\n @observable isVersionOpen = false;\n\n @observable isFormOpen = false;\n\n @observable isHistoryOpen = false;\n\n @observable isSearchOpen = false;\n\n @observable isSitDownOpen = false;\n\n @action\n setImageOpen = (isImageOpen) => {\n this.isImageOpen = isImageOpen;\n };\n\n @action\n setLinkOpen = (isLinkOpen) => {\n this.isLinkOpen = isLinkOpen;\n };\n\n @action\n setAboutOpen = (isAboutOpen) => {\n this.isAboutOpen = isAboutOpen;\n };\n\n @action\n setVersionOpen = (isVersionOpen) => {\n this.isVersionOpen = isVersionOpen;\n };\n\n @action\n setFormOpen = (isFormOpen) => {\n this.isFormOpen = isFormOpen;\n };\n\n @action\n setHistoryOpen = (isHistoryOpen) => {\n this.isHistoryOpen = isHistoryOpen;\n };\n\n @action\n setSearchOpen = (isSearchOpen) => {\n this.isSearchOpen = isSearchOpen;\n };\n\n @action\n setSitDownOpen = (isSitDownOpen) => {\n this.isSitDownOpen = isSitDownOpen;\n };\n}\n\nconst store = new Dialog();\n\nexport default store;\n","import {observable, action} from \"mobx\";\n\nclass View {\n @observable isEditAreaOpen = true;\n\n @observable isPreviewAreaOpen = true;\n\n @observable isStyleEditorOpen = false;\n\n @observable isImmersiveEditing = false;\n\n @action\n setEditAreaOpen = (isEditAreaOpen) => {\n this.isEditAreaOpen = isEditAreaOpen;\n };\n\n @action\n setPreviewAreaOpen = (isPreviewAreaOpen) => {\n this.isPreviewAreaOpen = isPreviewAreaOpen;\n };\n\n @action\n setStyleEditorOpen = (isStyleEditorOpen) => {\n this.isStyleEditorOpen = isStyleEditorOpen;\n };\n\n @action\n setImmersiveEditing = (isImmersiveEditing) => {\n this.isImmersiveEditing = isImmersiveEditing;\n };\n}\n\nconst store = new View();\n\nexport default store;\n","import React, {Component} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {Result} from \"antd\";\nimport {Provider} from \"mobx-react\";\n\nimport \"./index.css\";\n\nimport App from \"./App\";\n\nimport content from \"./store/content\";\nimport userInfo from \"./store/userInfo\";\nimport navbar from \"./store/navbar\";\nimport dialog from \"./store/dialog\";\nimport imageHosting from \"./store/imageHosting\";\nimport view from \"./store/view\";\n\nimport {isPC} from \"./utils/helper\";\nimport appContext from \"./utils/appContext\";\nimport SvgIcon from \"./icon\";\nimport {solveWeChatMath, solveZhihuMath, solveHtml} from \"./utils/converter\";\nimport {LAYOUT_ID} from \"./utils/constant\";\n\nclass Lib extends Component {\n getWeChatHtml() {\n const layout = document.getElementById(LAYOUT_ID); // 保护现场\n const html = layout.innerHTML;\n solveWeChatMath();\n const res = solveHtml();\n layout.innerHTML = html; // 恢复现场\n return res;\n }\n\n getZhihuHtml() {\n const layout = document.getElementById(LAYOUT_ID); // 保护现场\n const html = layout.innerHTML;\n solveZhihuMath();\n const res = solveHtml();\n layout.innerHTML = html; // 恢复现场\n return res;\n }\n\n render() {\n const {defaultTitle, defaultText, onTextChange, useImageHosting} = this.props;\n const appCtx = {\n defaultTitle,\n useImageHosting,\n };\n return (\n \n {isPC() ? (\n \n \n \n ) : (\n }\n title=\"请使用 PC 端打开排版工具\"\n subTitle=\"更多 Markdown Nice 信息,请扫码关注公众号「编程如画」\"\n extra={\n \n }\n />\n )}\n \n );\n }\n}\n\nconst style = {\n svgIcon: {\n width: \"72px\",\n height: \"72px\",\n },\n};\n\nLib.defaultProps = {\n defaultTitle: \"\",\n defaultText: \"\",\n onTextChange: () => {},\n // eslint-disable-next-line react/default-props-match-prop-types\n useImageHosting: {\n url: \"\",\n name: \"\",\n isSmmsOpen: true,\n isQiniuyunOpen: true,\n isAliyunOpen: true,\n },\n};\nLib.propTypes = {\n defaultTitle: PropTypes.string,\n defaultText: PropTypes.string,\n onTextChange: PropTypes.func,\n // eslint-disable-next-line react/require-default-props\n useImageHosting: PropTypes.shape({\n url: PropTypes.string,\n name: PropTypes.string,\n isSmmsOpen: PropTypes.bool,\n isQiniuyunOpen: PropTypes.bool,\n isAliyunOpen: PropTypes.bool,\n }),\n};\n\nexport default Lib;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === \"localhost\" ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === \"[::1]\" ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/),\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener(\"load\", () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n \"This web app is being served cache-first by a service \" +\n \"worker. To learn more, visit http://bit.ly/CRA-PWA\",\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === \"installed\") {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n \"New content is available and will be used when all \" +\n \"tabs for this page are closed. See http://bit.ly/CRA-PWA.\",\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log(\"Content is cached for offline use.\");\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error(\"Error during service worker registration:\", error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get(\"content-type\");\n if (response.status === 404 || (contentType != null && contentType.indexOf(\"javascript\") === -1)) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\"No internet connection found. App is running in offline mode.\");\n });\n}\n\nexport function unregister() {\n if (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister();\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\n\nimport Lib from \"./Lib\";\nimport * as serviceWorker from \"./serviceWorker\";\n\nReactDOM.render(\n ,\n document.getElementById(\"root\"),\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\nserviceWorker.register();\n"],"sourceRoot":""}