diff options
Diffstat (limited to 'dist/fuji.min.js.map')
-rw-r--r-- | dist/fuji.min.js.map | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/dist/fuji.min.js.map b/dist/fuji.min.js.map new file mode 100644 index 0000000..867d547 --- /dev/null +++ b/dist/fuji.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["fuji.js"],"names":["nowTheme","document","body","getAttribute","window","matchMedia","matches","updateMeidumTheme","mediumInst","targetTheme","getNowTheme","detach","mediumZoom","background","updateUtterancesTheme","utterancesFrame","contentWindow","postMessage","type","theme","commentStatus","commentLoadingTime","querySelectorAll","length","forEach","value","key","parent","setAttribute","querySelector","addEventListener","scrollTop","clearInterval","className","commentCheckInterval","self","setInterval","checkUtterances","domTheme","systemTheme","localStorage","setItem","DISQUS","reset"],"mappings":"aAII,SAAIA,cAAJ,IAAIA,EAAWC,SAASC,KAAKC,aAAa,cAC1C,MAAiB,SAAbH,EACOI,OAAOC,WAAW,gCAAgCC,QAAU,OAAS,QAExD,SAAbN,EAAsB,OAAS,QAK9C,SAASO,kBAAkBC,GACvB,IAAIC,EAAcC,cACdF,IAAAA,EAAYG,SAGRH,EAFJ,SAAAA,EAEiBI,WAAW,gBAAiB,CADzCH,WAAgB,YAChBG,WAAA,gBAAA,CAGGC,WAAA,aASf,SAASC,sBAAsBC,GAC3B,IAAIN,EAAcC,cADtBK,IACsBL,SAAdD,EAGIM,EAAgBC,cAAcC,YAFlCF,CACeG,KAAK,YAChBH,MAAgBC,eAGD,uBAKfD,EAAgBC,cAAcC,YAEhB,CACCC,KAAA,YAEXC,MAAA,gBAGX,wBAmBGN,IAAAA,WAqBIC,gBAHHM,cANDC,mBAOID,qBAjCR,EAAAnB,SAAAqB,iBAAA,sBAAAC,QAKJtB,SAAAqB,iBAAA,sBAAAE,QAAA,SAAAC,EAAAC,EAAAC,GAJQF,EAAMG,aAAa,QAAS,oBAKpC3B,SAAS4B,cAAc,wBAAwBC,iBAAiB,QAAS,WAKrEtB,SAAAA,gBAAYuB,UAAA,IAChBvB,WACI,SAAAE,cAGGE,WAAA,gBAAA,CACHJ,WAAaI,YAKjBA,WAAA,gBAAA,CACAC,WAAA,YAQYO,SAAAA,cAAgBnB,mBAIhBa,gBAAAA,WACAb,SAAS4B,cAAc,+BACpBT,cAAAnB,SAAA4B,cAAA,6BAAA1B,aAAA,UAEC6B,eACA/B,cAAS4B,sBACT5B,sBAAuBA,SAAA4B,cAAmBI,yBAC7ChC,SAAA4B,cAAA,iBAAAD,aAAA,QAAA,mBAlBgC,KAAAP,qBAe7BW,cAAcE,sBAdtBd,SAAeS,cAAA,iBAAAD,aAAA,QAAA,kBAgBP3B,SAAS4B,cAAc,mBAAmBI,UAAY,wBAf9DZ,mBAAqB,EAOjBD,qBAAee,KAAAC,YAAAC,gBAAA,MAe3BpC,SAAS4B,cAAc,yBAAyBC,iBAAiB,QAAS,WACtE,IAAI9B,EAAWU,cACX4B,EAAWrC,SAASC,KAAKC,aAAa,cACtCoC,EAAcnC,OAAOC,WAAW,gCAAgCC,QAAU,OAAS,QAEtE,SAAbgC,GAEArC,SAAAC,KAAc0B,aAAa,aAA2B,UAAb5B,EAAuB,OAAS,SACzEwC,aAAaC,QAAQ,kBAAgC,UAAbzC,EAAuB,OAAS,UACpD,UAAbsC,GAEPrC,SAAAC,KAAc0B,aAAa,aAAc,QAEzCY,aAAaC,QAAQ,kBAAmC,QAAhBF,EAAyB,OAAS,UAG1EtC,SAAAC,KAAc0B,aAAa,aAAc,SAEzCY,aAAaC,QAAQ,kBAAmC,SAAhBF,EAA0B,OAAS,UAI/EhC,kBAAkBC,YAGdP,SAAS4B,cAAc,kBAAoBT,eAC3CN,sBAAsBb,SAAS4B,cAAc,yBAE7C5B,SAAS4B,cAAc,mBAAuC,oBAAXa,QAAnDzC,OAAS4B,MAAAA,CACFc,QAAM","file":"fuji.min.js","sourcesContent":["'use strict';\r\n\r\n// get current theme\r\nfunction getNowTheme() {\r\n let nowTheme = document.body.getAttribute('data-theme');\r\n if (nowTheme === 'auto') {\r\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\r\n } else {\r\n return nowTheme === 'dark' ? 'dark' : 'light';\r\n }\r\n}\r\n\r\n// update medium-zoom theme\r\nfunction updateMeidumTheme(mediumInst) {\r\n let targetTheme = getNowTheme();\r\n if (mediumInst) {\r\n mediumInst.detach();\r\n if (targetTheme === 'dark') {\r\n mediumInst = mediumZoom('.img-zoomable', {\r\n background: '#2f3136',\r\n });\r\n } else {\r\n mediumInst = mediumZoom('.img-zoomable', {\r\n background: '#fffffd',\r\n });\r\n }\r\n }\r\n}\r\n\r\n// update utterances theme\r\nfunction updateUtterancesTheme(utterancesFrame) {\r\n let targetTheme = getNowTheme();\r\n if (utterancesFrame) {\r\n if (targetTheme === 'dark') {\r\n utterancesFrame.contentWindow.postMessage(\r\n {\r\n type: 'set-theme',\r\n theme: 'photon-dark',\r\n },\r\n 'https://utteranc.es'\r\n );\r\n } else {\r\n utterancesFrame.contentWindow.postMessage(\r\n {\r\n type: 'set-theme',\r\n theme: 'github-light',\r\n },\r\n 'https://utteranc.es'\r\n );\r\n }\r\n }\r\n}\r\n\r\n// remove empty ul in toc if article only have ## and ###\r\nif (document.querySelectorAll('.sidebar-toc ul ul').length > 0) {\r\n document.querySelectorAll('.sidebar-toc ul ul').forEach((value, key, parent) => {\r\n value.setAttribute('style', 'display: none;');\r\n });\r\n}\r\n\r\n// to-top button\r\ndocument.querySelector('.btn .btn-scroll-top').addEventListener('click', () => {\r\n document.documentElement.scrollTop = 0;\r\n});\r\n\r\n// init medium-zoom\r\nvar mediumInst; // medium-zoom instance\r\nif (getNowTheme() === 'dark') {\r\n mediumInst = mediumZoom('.img-zoomable', {\r\n background: '#2f3136',\r\n });\r\n} else {\r\n mediumInst = mediumZoom('.img-zoomable', {\r\n background: '#fffffd',\r\n });\r\n}\r\n\r\n// if in post page and using utterances\r\n// add utterances comment loading indicator\r\nif (document.querySelector('.post-loading')) {\r\n var commentStatus; // utterence status\r\n var commentLoadingTime = 0; // loading time passed\r\n var commentCheckInterval = self.setInterval(checkUtterances, 500);\r\n\r\n function checkUtterances() {\r\n if (document.querySelector('.post-comment .utterances')) {\r\n commentStatus = document.querySelector('.post-comment .utterances').getAttribute('style');\r\n }\r\n if (commentStatus) {\r\n clearInterval(commentCheckInterval);\r\n updateUtterancesTheme(document.querySelector('.post-comment iframe'));\r\n document.querySelector('.post-loading').setAttribute('style', 'display: none;');\r\n } else {\r\n if (++commentLoadingTime > 20) {\r\n clearInterval(commentCheckInterval);\r\n document.querySelector('.post-comment').setAttribute('style', 'display: none;');\r\n document.querySelector('.post-loading i').className = 'far fa-times-circle';\r\n }\r\n }\r\n }\r\n}\r\n\r\n// theme switch button\r\ndocument.querySelector('.btn .btn-toggle-mode').addEventListener('click', () => {\r\n let nowTheme = getNowTheme();\r\n let domTheme = document.body.getAttribute('data-theme');\r\n let systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\r\n\r\n if (domTheme === 'auto') {\r\n // if now in auto mode, switch to user mode\r\n document.body.setAttribute('data-theme', nowTheme === 'light' ? 'dark' : 'light');\r\n localStorage.setItem('fuji_data-theme', nowTheme === 'light' ? 'dark' : 'light');\r\n } else if (domTheme === 'light') {\r\n // if now in user mode and light mode\r\n document.body.setAttribute('data-theme', 'dark');\r\n // if the theme want to switch is system theme\r\n localStorage.setItem('fuji_data-theme', systemTheme === 'dark' ? 'auto' : 'dark');\r\n } else {\r\n // if now in user mode and dark mode\r\n document.body.setAttribute('data-theme', 'light');\r\n // if the theme want to switch is system theme\r\n localStorage.setItem('fuji_data-theme', systemTheme === 'light' ? 'auto' : 'light');\r\n }\r\n\r\n // update medium background\r\n updateMeidumTheme(mediumInst);\r\n // switch comment area theme\r\n // only works after comment area are initialized\r\n if (document.querySelector('.post-loading') && commentStatus) {\r\n updateUtterancesTheme(document.querySelector('.post-comment iframe'));\r\n }\r\n if (document.querySelector('#disqus_thread') && typeof DISQUS !== 'undefined') {\r\n DISQUS.reset({\r\n reload: true,\r\n });\r\n }\r\n});\r\n"]}
\ No newline at end of file |