function scrollSpy(menuSelector,options){var menu=$(menuSelector);if(menu){var offset=(options=options||{}).offset||0,activeClassName=options.activeClassName||"active",scollTarget=$(".content :header").find("a.headerlink"),lastId=null,active=$();$(window).scroll((function(){var fromTop=$(this).scrollTop()+offset,id=scollTarget.filter((function(){return $(this).offset().top"'+caption+'"

')}))}var Home=location.href,Pages=4,xhr,xhrUrl="",Obsidian={L:function(url,f,err){if(url==xhrUrl)return!1;xhrUrl=url,xhr&&xhr.abort(),xhr=$.ajax({type:"GET",url:url,timeout:1e4,success:function(data){f(data),xhrUrl=""},error:function(a,b,c){"abort"==b?err&&err():window.location.href=url,xhrUrl=""}})},P:function(){return!!("ontouchstart"in window)},PS:function(){window.history&&history.pushState&&(history.replaceState({u:Home,t:document.title},document.title,Home),window.addEventListener("popstate",(function(e){var state=e.state;state&&(document.title=state.t,state.u==Home?($("#preview").css("position","fixed"),setTimeout((function(){$("#preview").removeClass("show"),$("#container").show(),window.scrollTo(0,parseInt($("#container").data("scroll"))),setTimeout((function(){$("#preview").html(""),$(window).trigger("resize")}),300)}),0)):(Obsidian.loading(),Obsidian.L(state.u,(function(data){document.title=state.t,$("#preview").html($(data).filter("#single")),Obsidian.preview(),setTimeout((function(){Obsidian.player()}),0)}))))})))},HS:function(tag,flag){var id=tag.data("id")||0,url=tag.attr("href"),title=tag.attr("title")+" - "+$("#config-title").text();$("#preview").length&&window.history&&history.pushState||(location.href=url),Obsidian.loading();var state={d:id,t:title,u:url};Obsidian.L(url,(function(data){if($(data).filter("#single").length){switch(flag){case"push":history.pushState(state,title,url),$("#preview").html($(data).filter("#single"));break;case"replace":history.replaceState(state,title,url),$("#preview").html($(data).filter("#single"))}switch(document.title=title,$("#preview").html($(data).filter("#single")),flag){case"push":Obsidian.preview();break;case"replace":Obsidian.initArticleJs(),window.scrollTo(0,0),Obsidian.loaded()}setTimeout((function(){Obsidian.player(),$("#top").show(),comment=$("#gitalk-container"),1==comment.data("ae")&&comment.click()}),0)}else location.href=url}))},preview:function(){$("#preview").one("transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd",(function(){var previewVisible;$("#preview").hasClass("show")?$("#container").hide():$("#container").show(),Obsidian.loaded()})),setTimeout((function(){$("#preview").addClass("show"),$("#container").data("scroll",window.scrollY),setTimeout((function(){$("#preview").css({position:"static"}),console.log("preivew","initArticleJs"),Obsidian.initArticleJs()}),500)}),0)},player:function(){var p=$("#audio"),sourceSrc;p.length?(""==$("#audio source").eq(0).attr("src")&&""==p[0].src&&(audiolist=$("#audio-list li"),mp3=audiolist.eq([Math.floor(Math.random()*audiolist.size())]),p[0].src=mp3.data("url")),1==p.eq(0).data("autoplay")&&p[0].play(),p.on({timeupdate:function(){var progress=p[0].currentTime/p[0].duration*100;$(".bar").css("width",progress+"%"),p[0].volume=progress/5<=1?progress/5:1},ended:function(){$(".icon-pause").removeClass("icon-pause").addClass("icon-play")},playing:function(){$(".icon-play").removeClass("icon-play").addClass("icon-pause")}})):$(".icon-play").css({color:"#dedede",cursor:"not-allowed"})},loading:function(){var w=window.innerWidth,css='";$(".loaderstyle").remove(),$("head").append(css),$("#loader").removeClass().addClass("loader"+w).show()},loaded:function(){$("#loader").removeClass().hide()},F:function(id,w,h){var _height=$(id).parent().height(),_width=$(id).parent().width(),ratio=h/w;_height/_width>ratio?(id.style.height=_height+"px",id.style.width=_height/ratio+"px"):(id.style.width=_width+"px",id.style.height=_width*ratio+"px"),id.style.left=(_width-parseInt(id.style.width))/2+"px",id.style.top=(_height-parseInt(id.style.height))/2+"px"},initArticleJs:function(){document.querySelectorAll("pre code").forEach(block=>{hljs.highlightBlock(block)}),Obsidian.setCodeRowWithLang(),Obsidian.tocSpy(200),initValine(),buildImgCaption(),utiliseBgColor("article")},setCodeRowWithLang:function(){let code=$("code");code&&code.length&&code.each((function(){var item=$(this),lang="",langMap={html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",css:"CSS",clike:"C-like",js:"JavaScript",abap:"ABAP",apacheconf:"Apache Configuration",apl:"APL",arff:"ARFF",asciidoc:"AsciiDoc",adoc:"AsciiDoc",asm6502:"6502 Assembly",aspnet:"ASP.NET (C#)",autohotkey:"AutoHotkey",autoit:"AutoIt",shell:"BASH",bash:"BASH",basic:"BASIC",csharp:"C#",dotnet:"C#",cpp:"C++",cil:"CIL",csp:"Content-Security-Policy","css-extras":"CSS Extras",django:"Django/Jinja2",jinja2:"Django/Jinja2",dockerfile:"Docker",erb:"ERB",fsharp:"F#",gcode:"G-code",gedcom:"GEDCOM",glsl:"GLSL",gml:"GameMaker Language",gamemakerlanguage:"GameMaker Language",graphql:"GraphQL",hcl:"HCL",http:"HTTP",hpkp:"HTTP Public-Key-Pins",hsts:"HTTP Strict-Transport-Security",ichigojam:"IchigoJam",inform7:"Inform 7",javastacktrace:"Java stack trace",json:"JSON",jsonp:"JSONP",latex:"LaTeX",emacs:"Lisp",elisp:"Lisp","emacs-lisp":"Lisp",lolcode:"LOLCODE","markup-templating":"Markup templating",matlab:"MATLAB",mel:"MEL",n1ql:"N1QL",n4js:"N4JS",n4jsd:"N4JS","nand2tetris-hdl":"Nand To Tetris HDL",nasm:"NASM",nginx:"nginx",nsis:"NSIS",objectivec:"Objective-C",ocaml:"OCaml",opencl:"OpenCL",parigp:"PARI/GP",objectpascal:"Object Pascal",php:"PHP","php-extras":"PHP Extras",plsql:"PL/SQL",powershell:"PowerShell",properties:".properties",protobuf:"Protocol Buffers",q:"Q (kdb+ database)",jsx:"React JSX",tsx:"React TSX",renpy:"Ren'py",rest:"reST (reStructuredText)",sas:"SAS",sass:"SASS (Sass)",scss:"SASS (Scss)",sql:"SQL",soy:"Soy (Closure Template)",tap:"TAP",toml:"TOML",tt2:"Template Toolkit 2",ts:"TypeScript",vbnet:"VB.Net",vhdl:"VHDL",vim:"vim","visual-basic":"Visual Basic",vb:"Visual Basic",wasm:"WebAssembly",wiki:"Wiki markup",xeoracube:"XeoraCube",xojo:"Xojo (REALbasic)",xquery:"XQuery",yaml:"YAML"},displayLangText="";displayLangText=(lang=item[0].className.indexOf(" ")>-1?item[0].className.split(" ")[0]:item[0].className)in langMap?langMap[lang]:lang,item.find(".language-mark").length<=0&&item.prepend('