summaryrefslogtreecommitdiffstats
path: root/static/assets/js
diff options
context:
space:
mode:
authoramzrk22020-06-01 15:44:04 +0800
committeramzrk22020-06-01 15:44:04 +0800
commit02c3891865c7741b8f772aea75cc01564d2f0ff4 (patch)
treedb0e4dd8c3ef95181f5e665ca09f731b75de0387 /static/assets/js
parent2338da969d3bc1b2bc26df9f7192dd20a0906c5b (diff)
downloadhugo-theme-fuji-02c3891865c7741b8f772aea75cc01564d2f0ff4.tar.gz
hugo-theme-fuji-02c3891865c7741b8f772aea75cc01564d2f0ff4.tar.bz2
hugo-theme-fuji-02c3891865c7741b8f772aea75cc01564d2f0ff4.zip
Remove jQuery
Diffstat (limited to 'static/assets/js')
-rw-r--r--static/assets/js/fuji.js127
-rw-r--r--static/assets/js/fuji.min.js2
-rw-r--r--static/assets/js/fuji.min.js.map1
3 files changed, 3 insertions, 127 deletions
diff --git a/static/assets/js/fuji.js b/static/assets/js/fuji.js
deleted file mode 100644
index 0a81db2..0000000
--- a/static/assets/js/fuji.js
+++ /dev/null
@@ -1,127 +0,0 @@
-'use strict';
-
-// toggle theme
-function toggleTheme() {
- $('body').attr('data-theme', (index, attr) => {
- if (attr === 'light') {
- localStorage.setItem('fuji_theme', 'dark');
- return 'dark';
- } else {
- localStorage.setItem('fuji_theme', 'light');
- return 'light';
- }
- });
-}
-
-// update medium-zoom theme
-// @params targetTheme, mediumInst
-function updateMeidumTheme(targetTheme, mediumInst) {
- if (targetTheme && mediumInst) {
- mediumInst.detach();
- if (targetTheme === 'dark') {
- mediumInst = mediumZoom('.img-zoomable', {
- background: '#2f3136',
- });
- } else {
- mediumInst = mediumZoom('.img-zoomable', {
- background: '#fffffd',
- });
- }
- }
-}
-
-// update utterances theme
-// @params targetTheme, utterancesFrame
-function updateUtterancesTheme(targetTheme, utterancesFrame) {
- if (targetTheme && utterancesFrame) {
- if (targetTheme === 'dark') {
- utterancesFrame.contentWindow.postMessage(
- {
- type: 'set-theme',
- theme: 'photon-dark',
- },
- 'https://utteranc.es'
- );
- } else {
- utterancesFrame.contentWindow.postMessage(
- {
- type: 'set-theme',
- theme: 'github-light',
- },
- 'https://utteranc.es'
- );
- }
- }
-}
-
-// to-top button
-$('.btn .btn-scroll-top').on('click', () => {
- $('html, body').animate({
- scrollTop: 0,
- });
-});
-
-// toc anchors
-$('.sidebar-toc a').on('click', (event) => {
- $('html, body').animate({
- scrollTop: $($(event.currentTarget).attr('href')).offset().top,
- });
-});
-
-// remove empty ul in toc if article only have ## and ###
-if ($('.sidebar-toc ul ul').length > 0 && $('.sidebar-toc ul ul li').text() === '') {
- $('.sidebar-toc ul ul').hide();
-}
-
-// init medium-zoom
-var mediumInst; // medium-zoom instance
-if ($('body').attr('data-theme') === 'dark') {
- mediumInst = mediumZoom('.img-zoomable', {
- background: '#2f3136',
- });
-} else {
- mediumInst = mediumZoom('.img-zoomable', {
- background: '#fffffd',
- });
-}
-
-// if in post page and using utterances
-// add utterances comment loading indicator
-if ($('.post-loading').length >= 1) {
- var commentStatus; // utterence status
- var commentLoadingTime = 0; // loading time passed
- var commentCheckInterval = self.setInterval(checkUtterances, 500);
-
- function checkUtterances() {
- commentStatus = $('.post-comment .utterances').attr('style');
- if (commentStatus) {
- clearInterval(commentCheckInterval);
- updateUtterancesTheme($('body').attr('data-theme'), $('.post-comment iframe')[0]);
- $('.post-loading').hide();
- } else {
- if (++commentLoadingTime > 20) {
- clearInterval(commentCheckInterval);
- $('.post-comment').hide();
- $('.post-loading i').attr('class', 'far fa-times-circle');
- }
- }
- }
-}
-
-// init theme switch button
-$('.btn .btn-toggle-mode').on('click', () => {
- // toggle theme
- toggleTheme();
- // update medium background
- updateMeidumTheme($('body').attr('data-theme'), mediumInst);
- // switch comment area theme
- // only works after comment area are initialized
- if ($('.post-loading').length >= 1 && commentStatus) {
- updateUtterancesTheme($('body').attr('data-theme'), $('.post-comment iframe')[0]);
- }
- if ($('#disqus_thread').length >= 1 && typeof DISQUS !== 'undefined') {
- DISQUS.reset({
- reload: true,
- });
- }
-});
diff --git a/static/assets/js/fuji.min.js b/static/assets/js/fuji.min.js
new file mode 100644
index 0000000..474d550
--- /dev/null
+++ b/static/assets/js/fuji.min.js
@@ -0,0 +1,2 @@
+"use strict";function getNowTheme(){var e=document.body.getAttribute("data-theme");return"auto"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":"dark"===e?"dark":"light"}function updateMeidumTheme(e){var t=getNowTheme();e&&(e.detach(),e="dark"===t?mediumZoom(".img-zoomable",{background:"#2f3136"}):mediumZoom(".img-zoomable",{background:"#fffffd"}))}function updateUtterancesTheme(e){var t=getNowTheme();e&&("dark"===t?e.contentWindow.postMessage({type:"set-theme",theme:"photon-dark"},"https://utteranc.es"):e.contentWindow.postMessage({type:"set-theme",theme:"github-light"},"https://utteranc.es"))}var mediumInst,checkUtterances,commentStatus,commentLoadingTime,commentCheckInterval;0<document.querySelectorAll(".sidebar-toc ul ul").length&&document.querySelectorAll(".sidebar-toc ul ul").forEach(function(e,t,o){e.setAttribute("style","display: none;")}),document.querySelector(".btn .btn-scroll-top").addEventListener("click",function(){document.documentElement.scrollTop=0}),mediumInst="dark"===getNowTheme()?mediumZoom(".img-zoomable",{background:"#2f3136"}):mediumZoom(".img-zoomable",{background:"#fffffd"}),document.querySelector(".post-loading")&&(checkUtterances=function(){document.querySelector(".post-comment .utterances")&&(commentStatus=document.querySelector(".post-comment .utterances").getAttribute("style")),commentStatus?(clearInterval(commentCheckInterval),updateUtterancesTheme(document.querySelector(".post-comment iframe")),document.querySelector(".post-loading").setAttribute("style","display: none;")):20<++commentLoadingTime&&(clearInterval(commentCheckInterval),document.querySelector(".post-comment").setAttribute("style","display: none;"),document.querySelector(".post-loading i").className="far fa-times-circle")},commentLoadingTime=0,commentCheckInterval=self.setInterval(checkUtterances,500)),document.querySelector(".btn .btn-toggle-mode").addEventListener("click",function(){var e=getNowTheme(),t=document.body.getAttribute("data-theme"),o=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"auto"===t?(document.body.setAttribute("data-theme","light"===e?"dark":"light"),localStorage.setItem("fuji_data-theme","light"===e?"dark":"light")):"light"===t?(document.body.setAttribute("data-theme","dark"),localStorage.setItem("fuji_data-theme","dark"==o?"auto":"dark")):(document.body.setAttribute("data-theme","light"),localStorage.setItem("fuji_data-theme","light"==o?"auto":"light")),updateMeidumTheme(mediumInst),document.querySelector(".post-loading")&&commentStatus&&updateUtterancesTheme(document.querySelector(".post-comment iframe")),document.querySelector("#disqus_thread")&&"undefined"!=typeof DISQUS&&DISQUS.reset({reload:!0})});
+//# sourceMappingURL=fuji.min.js.map
diff --git a/static/assets/js/fuji.min.js.map b/static/assets/js/fuji.min.js.map
new file mode 100644
index 0000000..867d547
--- /dev/null
+++ b/static/assets/js/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