From 231964080b26b3b3cab91b2c6144a784d3bef99d Mon Sep 17 00:00:00 2001 From: amzrk2 Date: Sun, 14 Jun 2020 00:06:35 +0800 Subject: In-post APlayer now support multiple files --- static/assets/js/fuji.min.js.map | 1 - 1 file changed, 1 deletion(-) delete mode 100644 static/assets/js/fuji.min.js.map (limited to 'static/assets/js') diff --git a/static/assets/js/fuji.min.js.map b/static/assets/js/fuji.min.js.map deleted file mode 100644 index 6fc9950..0000000 --- a/static/assets/js/fuji.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["fuji.js"],"names":["getNowTheme","nowTheme","document","body","getAttribute","window","matchMedia","matches","updateMeidumTheme","mediumInst","targetTheme","detach","mediumZoom","background","updateUtterancesTheme","utterancesFrame","contentWindow","postMessage","type","theme","querySelector","addEventListener","loadComment","documentElement","scrollTop","domTheme","systemTheme","setAttribute","localStorage","setItem","commentArea","DISQUS","reset","reload"],"mappings":"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","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// load comment button only when comment area exist\r\nif (document.querySelector('span.post-comment-notloaded')) {\r\n document.querySelector('span.post-comment-notloaded').addEventListener('click', loadComment);\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// 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 // if this page has comment area\r\n let commentArea = document.querySelector('.post-comment');\r\n if (commentArea) {\r\n // if comment area loaded\r\n if (document.querySelector('span.post-comment-notloaded').getAttribute('style')) {\r\n if (commentArea.getAttribute('data-comment') === 'utterances') {\r\n updateUtterancesTheme(document.querySelector('.post-comment iframe'));\r\n }\r\n if (commentArea.getAttribute('data-comment') === 'disqus') {\r\n DISQUS.reset({\r\n reload: true,\r\n });\r\n }\r\n }\r\n }\r\n});\r\n"],"file":"fuji.min.js"} \ No newline at end of file -- cgit v1.2.3 From 89fc2917985d3da944af8116e101748267d66104 Mon Sep 17 00:00:00 2001 From: amzrk2 Date: Sun, 14 Jun 2020 23:17:37 +0800 Subject: Remove medium-zoom --- static/assets/js/fuji.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'static/assets/js') diff --git a/static/assets/js/fuji.min.js b/static/assets/js/fuji.min.js index 90c27a6..b3940da 100644 --- a/static/assets/js/fuji.min.js +++ b/static/assets/js/fuji.min.js @@ -1 +1 @@ -"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;document.querySelector("span.post-comment-notloaded")&&document.querySelector("span.post-comment-notloaded").addEventListener("click",loadComment),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(".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);var m=document.querySelector(".post-comment");m&&document.querySelector("span.post-comment-notloaded").getAttribute("style")&&("utterances"===m.getAttribute("data-comment")&&updateUtterancesTheme(document.querySelector(".post-comment iframe")),"disqus"===m.getAttribute("data-comment")&&DISQUS.reset({reload:!0}))}); \ No newline at end of file +"use strict";function getNowTheme(){var t=document.body.getAttribute("data-theme");return"auto"===t?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":"dark"===t?"dark":"light"}function updateUtterancesTheme(t){var e=getNowTheme();t&&("dark"===e?t.contentWindow.postMessage({type:"set-theme",theme:"photon-dark"},"https://utteranc.es"):t.contentWindow.postMessage({type:"set-theme",theme:"github-light"},"https://utteranc.es"))}document.querySelector("span.post-comment-notloaded")&&document.querySelector("span.post-comment-notloaded").addEventListener("click",loadComment),document.querySelector(".btn .btn-scroll-top").addEventListener("click",function(){document.documentElement.scrollTop=0}),document.querySelector(".btn .btn-toggle-mode").addEventListener("click",function(){var t=getNowTheme(),e=document.body.getAttribute("data-theme"),o=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"auto"===e?(document.body.setAttribute("data-theme","light"===t?"dark":"light"),localStorage.setItem("fuji_data-theme","light"===t?"dark":"light")):"light"===e?(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"));var a=document.querySelector(".post-comment");a&&document.querySelector("span.post-comment-notloaded").getAttribute("style")&&("utterances"===a.getAttribute("data-comment")&&updateUtterancesTheme(document.querySelector(".post-comment iframe")),"disqus"===a.getAttribute("data-comment")&&DISQUS.reset({reload:!0}))}); \ No newline at end of file -- cgit v1.2.3 From a3376d1ad133455b73ca893e222c1aec89ae6d44 Mon Sep 17 00:00:00 2001 From: amzrk2 Date: Mon, 15 Jun 2020 23:50:54 +0800 Subject: Update searching based on Fuse.js --- static/assets/js/fuji.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'static/assets/js') diff --git a/static/assets/js/fuji.min.js b/static/assets/js/fuji.min.js index b3940da..c21a20f 100644 --- a/static/assets/js/fuji.min.js +++ b/static/assets/js/fuji.min.js @@ -1 +1 @@ -"use strict";function getNowTheme(){var t=document.body.getAttribute("data-theme");return"auto"===t?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":"dark"===t?"dark":"light"}function updateUtterancesTheme(t){var e=getNowTheme();t&&("dark"===e?t.contentWindow.postMessage({type:"set-theme",theme:"photon-dark"},"https://utteranc.es"):t.contentWindow.postMessage({type:"set-theme",theme:"github-light"},"https://utteranc.es"))}document.querySelector("span.post-comment-notloaded")&&document.querySelector("span.post-comment-notloaded").addEventListener("click",loadComment),document.querySelector(".btn .btn-scroll-top").addEventListener("click",function(){document.documentElement.scrollTop=0}),document.querySelector(".btn .btn-toggle-mode").addEventListener("click",function(){var t=getNowTheme(),e=document.body.getAttribute("data-theme"),o=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"auto"===e?(document.body.setAttribute("data-theme","light"===t?"dark":"light"),localStorage.setItem("fuji_data-theme","light"===t?"dark":"light")):"light"===e?(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"));var a=document.querySelector(".post-comment");a&&document.querySelector("span.post-comment-notloaded").getAttribute("style")&&("utterances"===a.getAttribute("data-comment")&&updateUtterancesTheme(document.querySelector(".post-comment iframe")),"disqus"===a.getAttribute("data-comment")&&DISQUS.reset({reload:!0}))}); \ No newline at end of file +"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 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"))}function searchAll(e,t){var o=new Fuse(t,{keys:["title","tags"]}).search(e);console.log(o),0NOT FOUND"}document.querySelector("span.post-comment-notloaded")&&document.querySelector("span.post-comment-notloaded").addEventListener("click",loadComment),document.querySelector(".btn .btn-scroll-top").addEventListener("click",function(){document.documentElement.scrollTop=0}),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"));var r=document.querySelector(".post-comment");r&&document.querySelector("span.post-comment-notloaded").getAttribute("style")&&("utterances"===r.getAttribute("data-comment")&&updateUtterancesTheme(document.querySelector(".post-comment iframe")),"disqus"===r.getAttribute("data-comment")&&DISQUS.reset({reload:!0}))});var key,xhr,urlParams=new URLSearchParams(window.location.search);urlParams.has("s")&&(key=urlParams.get("s"),document.querySelector(".search-input input").setAttribute("value",key),(xhr=new XMLHttpRequest).open("GET","/index.json",!0),xhr.responseType="json",xhr.onerror=function(e){console.error("".concat(xhr.status," ").concat(xhr.statusText))},xhr.onload=function(){4===xhr.readyState&&(200===xhr.status?(console.log(xhr.response),searchAll(key,xhr.response)):console.error("".concat(xhr.status," ").concat(xhr.statusText)))},xhr.send(null)); \ No newline at end of file -- cgit v1.2.3 From c42924047c6f654c4723746790e041f8907ed378 Mon Sep 17 00:00:00 2001 From: amzrk2 Date: Tue, 16 Jun 2020 14:00:53 +0800 Subject: Searching now works --- static/assets/js/fuji.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'static/assets/js') diff --git a/static/assets/js/fuji.min.js b/static/assets/js/fuji.min.js index 6044b49..79d66c5 100644 --- a/static/assets/js/fuji.min.js +++ b/static/assets/js/fuji.min.js @@ -1 +1 @@ -"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 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"))}function searchAll(e,t){var o=new Fuse(t,{keys:["title","tags"]}).search(e);console.log(o),0NOT FOUND"}document.querySelector("span.post-comment-notloaded")&&document.querySelector("span.post-comment-notloaded").addEventListener("click",loadComment),document.querySelector(".btn .btn-scroll-top").addEventListener("click",function(){document.documentElement.scrollTop=0}),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"));var r=document.querySelector(".post-comment");r&&document.querySelector("span.post-comment-notloaded").getAttribute("style")&&("utterances"===r.getAttribute("data-comment")&&updateUtterancesTheme(document.querySelector(".post-comment iframe")),"disqus"===r.getAttribute("data-comment")&&DISQUS.reset({reload:!0}))});var key,xhr,urlParams=new URLSearchParams(window.location.search);urlParams.has("s")&&(key=urlParams.get("s"),document.querySelector(".search-input input").setAttribute("value",key),(xhr=new XMLHttpRequest).open("GET","/index.json",!0),xhr.responseType="json",xhr.onerror=function(e){console.error("".concat(xhr.status," ").concat(xhr.statusText))},xhr.onload=function(){4===xhr.readyState&&(200===xhr.status?(console.log(xhr.response),searchAll(key,xhr.response)):console.error("".concat(xhr.status," ").concat(xhr.statusText)))},xhr.send(null)); \ No newline at end of file +"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 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"))}function searchAll(e,t,n){var o=new Fuse(t,{shouldSort:!0,distance:1e4,keys:[{name:"title",weight:2},{name:"tags",weight:1.5},{name:"content",weight:1}]}).search(e);return console.log(o),0 0) { + document.getElementById('search-result').innerHTML = template('search-result-template', result); + return [new Date().getTime() - counter, result.length]; + } else { + return 'notFound'; + } +} + +var urlParams = new URLSearchParams(window.location.search); // get params from URL + +if (urlParams.has('s')) { + var counter = new Date().getTime(); + var infoElements = document.querySelectorAll('.search-result-info'); + var key = urlParams.get('s'); // get search keyword, divided by space + + document.querySelector('.search-input input').setAttribute('value', key); // get search index from json + + var xhr = new XMLHttpRequest(); + xhr.open('GET', '/index.json', true); + xhr.responseType = 'json'; + + xhr.onerror = function (e) { + infoElements[2].removeAttribute('style'); + }; + + xhr.onload = function () { + if (xhr.readyState === 4) { + if (xhr.status === 200) { + // use index json to search + console.log(xhr.response); + counter = searchAll(key, xhr.response, counter); + console.log(counter); + + if (counter === 'notFound') { + infoElements[1].removeAttribute('style'); + } else { + infoElements[0].innerHTML = infoElements[0].innerHTML.replace('[TIME]', counter[0]); + infoElements[0].innerHTML = infoElements[0].innerHTML.replace('[NUM]', counter[1]); + infoElements[0].removeAttribute('style'); + } + } else { + console.error("Failed to get index.json, ".concat(xhr.status, " ").concat(xhr.statusText)); + infoElements[2].removeAttribute('style'); + } + } + }; + + xhr.send(null); +} +//# 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..265496b --- /dev/null +++ b/static/assets/js/fuji.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["fuji.js"],"names":["getNowTheme","nowTheme","document","body","getAttribute","window","matchMedia","matches","updateUtterancesTheme","utterancesFrame","targetTheme","contentWindow","postMessage","type","theme","querySelector","addEventListener","loadComment","documentElement","scrollTop","domTheme","systemTheme","setAttribute","localStorage","setItem","commentArea","DISQUS","reset","reload","searchAll","key","index","counter","fuse","Fuse","shouldSort","distance","keys","name","weight","result","search","console","log","length","getElementById","innerHTML","template","Date","getTime","urlParams","URLSearchParams","location","has","infoElements","querySelectorAll","get","xhr","XMLHttpRequest","open","responseType","onerror","e","removeAttribute","onload","readyState","status","response","replace","error","statusText","send"],"mappings":"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","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 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// load comment button only when comment area exist\r\nif (document.querySelector('span.post-comment-notloaded')) {\r\n document.querySelector('span.post-comment-notloaded').addEventListener('click', loadComment);\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// 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 // switch comment area theme\r\n // if this page has comment area\r\n let commentArea = document.querySelector('.post-comment');\r\n if (commentArea) {\r\n // if comment area loaded\r\n if (document.querySelector('span.post-comment-notloaded').getAttribute('style')) {\r\n if (commentArea.getAttribute('data-comment') === 'utterances') {\r\n updateUtterancesTheme(document.querySelector('.post-comment iframe'));\r\n }\r\n if (commentArea.getAttribute('data-comment') === 'disqus') {\r\n DISQUS.reset({\r\n reload: true,\r\n });\r\n }\r\n }\r\n }\r\n});\r\n\r\n// search by fuse.js\r\nfunction searchAll(key, index, counter) {\r\n let fuse = new Fuse(index, {\r\n shouldSort: true,\r\n distance: 10000,\r\n keys: [\r\n {\r\n name: 'title',\r\n weight: 2.0,\r\n },\r\n {\r\n name: 'tags',\r\n weight: 1.5,\r\n },\r\n {\r\n name: 'content',\r\n weight: 1.0,\r\n },\r\n ],\r\n });\r\n let result = fuse.search(key);\r\n console.log(result);\r\n if (result.length > 0) {\r\n document.getElementById('search-result').innerHTML = template('search-result-template', result);\r\n return [new Date().getTime() - counter, result.length];\r\n } else {\r\n return 'notFound';\r\n }\r\n}\r\n\r\nlet urlParams = new URLSearchParams(window.location.search); // get params from URL\r\nif (urlParams.has('s')) {\r\n let counter = new Date().getTime();\r\n let infoElements = document.querySelectorAll('.search-result-info');\r\n let key = urlParams.get('s'); // get search keyword, divided by space\r\n document.querySelector('.search-input input').setAttribute('value', key);\r\n // get search index from json\r\n let xhr = new XMLHttpRequest();\r\n xhr.open('GET', '/index.json', true);\r\n xhr.responseType = 'json';\r\n xhr.onerror = (e) => {\r\n infoElements[2].removeAttribute('style');\r\n };\r\n xhr.onload = () => {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n // use index json to search\r\n console.log(xhr.response);\r\n counter = searchAll(key, xhr.response, counter);\r\n console.log(counter);\r\n if (counter === 'notFound') {\r\n infoElements[1].removeAttribute('style');\r\n } else {\r\n infoElements[0].innerHTML = infoElements[0].innerHTML.replace('[TIME]', counter[0]);\r\n infoElements[0].innerHTML = infoElements[0].innerHTML.replace('[NUM]', counter[1]);\r\n infoElements[0].removeAttribute('style');\r\n }\r\n } else {\r\n console.error(`Failed to get index.json, ${xhr.status} ${xhr.statusText}`);\r\n infoElements[2].removeAttribute('style');\r\n }\r\n }\r\n };\r\n xhr.send(null);\r\n}\r\n"],"file":"fuji.min.js"} \ No newline at end of file -- cgit v1.2.3 From f88c7b78f224bf746b831001ec8cef01693a4b3c Mon Sep 17 00:00:00 2001 From: amzrk2 Date: Tue, 16 Jun 2020 16:09:04 +0800 Subject: Search page i18n --- static/assets/js/fuji.min.js | 17 +++++++++-------- static/assets/js/fuji.min.js.map | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) (limited to 'static/assets/js') diff --git a/static/assets/js/fuji.min.js b/static/assets/js/fuji.min.js index 295ee61..6b0646d 100644 --- a/static/assets/js/fuji.min.js +++ b/static/assets/js/fuji.min.js @@ -95,8 +95,7 @@ function searchAll(key, index, counter) { weight: 1.0 }] }); - var result = fuse.search(key); - console.log(result); + var result = fuse.search(key); // console.log(result); if (result.length > 0) { document.getElementById('search-result').innerHTML = template('search-result-template', result); @@ -119,17 +118,20 @@ if (urlParams.has('s')) { xhr.open('GET', '/index.json', true); xhr.responseType = 'json'; - xhr.onerror = function (e) { + xhr.onerror = function () { infoElements[2].removeAttribute('style'); }; - xhr.onload = function () { + xhr.ontimeout = function () { + infoElements[2].removeAttribute('style'); + }; + + xhr.onreadystatechange = function () { if (xhr.readyState === 4) { if (xhr.status === 200) { // use index json to search - console.log(xhr.response); - counter = searchAll(key, xhr.response, counter); - console.log(counter); + // console.log(xhr.response); + counter = searchAll(key, xhr.response, counter); // console.log(counter); if (counter === 'notFound') { infoElements[1].removeAttribute('style'); @@ -139,7 +141,6 @@ if (urlParams.has('s')) { infoElements[0].removeAttribute('style'); } } else { - console.error("Failed to get index.json, ".concat(xhr.status, " ").concat(xhr.statusText)); infoElements[2].removeAttribute('style'); } } diff --git a/static/assets/js/fuji.min.js.map b/static/assets/js/fuji.min.js.map index 265496b..d4d5033 100644 --- a/static/assets/js/fuji.min.js.map +++ b/static/assets/js/fuji.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["fuji.js"],"names":["getNowTheme","nowTheme","document","body","getAttribute","window","matchMedia","matches","updateUtterancesTheme","utterancesFrame","targetTheme","contentWindow","postMessage","type","theme","querySelector","addEventListener","loadComment","documentElement","scrollTop","domTheme","systemTheme","setAttribute","localStorage","setItem","commentArea","DISQUS","reset","reload","searchAll","key","index","counter","fuse","Fuse","shouldSort","distance","keys","name","weight","result","search","console","log","length","getElementById","innerHTML","template","Date","getTime","urlParams","URLSearchParams","location","has","infoElements","querySelectorAll","get","xhr","XMLHttpRequest","open","responseType","onerror","e","removeAttribute","onload","readyState","status","response","replace","error","statusText","send"],"mappings":"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","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 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// load comment button only when comment area exist\r\nif (document.querySelector('span.post-comment-notloaded')) {\r\n document.querySelector('span.post-comment-notloaded').addEventListener('click', loadComment);\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// 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 // switch comment area theme\r\n // if this page has comment area\r\n let commentArea = document.querySelector('.post-comment');\r\n if (commentArea) {\r\n // if comment area loaded\r\n if (document.querySelector('span.post-comment-notloaded').getAttribute('style')) {\r\n if (commentArea.getAttribute('data-comment') === 'utterances') {\r\n updateUtterancesTheme(document.querySelector('.post-comment iframe'));\r\n }\r\n if (commentArea.getAttribute('data-comment') === 'disqus') {\r\n DISQUS.reset({\r\n reload: true,\r\n });\r\n }\r\n }\r\n }\r\n});\r\n\r\n// search by fuse.js\r\nfunction searchAll(key, index, counter) {\r\n let fuse = new Fuse(index, {\r\n shouldSort: true,\r\n distance: 10000,\r\n keys: [\r\n {\r\n name: 'title',\r\n weight: 2.0,\r\n },\r\n {\r\n name: 'tags',\r\n weight: 1.5,\r\n },\r\n {\r\n name: 'content',\r\n weight: 1.0,\r\n },\r\n ],\r\n });\r\n let result = fuse.search(key);\r\n console.log(result);\r\n if (result.length > 0) {\r\n document.getElementById('search-result').innerHTML = template('search-result-template', result);\r\n return [new Date().getTime() - counter, result.length];\r\n } else {\r\n return 'notFound';\r\n }\r\n}\r\n\r\nlet urlParams = new URLSearchParams(window.location.search); // get params from URL\r\nif (urlParams.has('s')) {\r\n let counter = new Date().getTime();\r\n let infoElements = document.querySelectorAll('.search-result-info');\r\n let key = urlParams.get('s'); // get search keyword, divided by space\r\n document.querySelector('.search-input input').setAttribute('value', key);\r\n // get search index from json\r\n let xhr = new XMLHttpRequest();\r\n xhr.open('GET', '/index.json', true);\r\n xhr.responseType = 'json';\r\n xhr.onerror = (e) => {\r\n infoElements[2].removeAttribute('style');\r\n };\r\n xhr.onload = () => {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n // use index json to search\r\n console.log(xhr.response);\r\n counter = searchAll(key, xhr.response, counter);\r\n console.log(counter);\r\n if (counter === 'notFound') {\r\n infoElements[1].removeAttribute('style');\r\n } else {\r\n infoElements[0].innerHTML = infoElements[0].innerHTML.replace('[TIME]', counter[0]);\r\n infoElements[0].innerHTML = infoElements[0].innerHTML.replace('[NUM]', counter[1]);\r\n infoElements[0].removeAttribute('style');\r\n }\r\n } else {\r\n console.error(`Failed to get index.json, ${xhr.status} ${xhr.statusText}`);\r\n infoElements[2].removeAttribute('style');\r\n }\r\n }\r\n };\r\n xhr.send(null);\r\n}\r\n"],"file":"fuji.min.js"} \ No newline at end of file +{"version":3,"sources":["fuji.js"],"names":["getNowTheme","nowTheme","document","body","getAttribute","window","matchMedia","matches","updateUtterancesTheme","utterancesFrame","targetTheme","contentWindow","postMessage","type","theme","querySelector","addEventListener","loadComment","documentElement","scrollTop","domTheme","systemTheme","setAttribute","localStorage","setItem","commentArea","DISQUS","reset","reload","searchAll","key","index","counter","fuse","Fuse","shouldSort","distance","keys","name","weight","result","search","length","getElementById","innerHTML","template","Date","getTime","urlParams","URLSearchParams","location","has","infoElements","querySelectorAll","get","xhr","XMLHttpRequest","open","responseType","onerror","removeAttribute","ontimeout","onreadystatechange","readyState","status","response","replace","send"],"mappings":"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","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 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// load comment button only when comment area exist\r\nif (document.querySelector('span.post-comment-notloaded')) {\r\n document.querySelector('span.post-comment-notloaded').addEventListener('click', loadComment);\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// 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 // switch comment area theme\r\n // if this page has comment area\r\n let commentArea = document.querySelector('.post-comment');\r\n if (commentArea) {\r\n // if comment area loaded\r\n if (document.querySelector('span.post-comment-notloaded').getAttribute('style')) {\r\n if (commentArea.getAttribute('data-comment') === 'utterances') {\r\n updateUtterancesTheme(document.querySelector('.post-comment iframe'));\r\n }\r\n if (commentArea.getAttribute('data-comment') === 'disqus') {\r\n DISQUS.reset({\r\n reload: true,\r\n });\r\n }\r\n }\r\n }\r\n});\r\n\r\n// search by fuse.js\r\nfunction searchAll(key, index, counter) {\r\n let fuse = new Fuse(index, {\r\n shouldSort: true,\r\n distance: 10000,\r\n keys: [\r\n {\r\n name: 'title',\r\n weight: 2.0,\r\n },\r\n {\r\n name: 'tags',\r\n weight: 1.5,\r\n },\r\n {\r\n name: 'content',\r\n weight: 1.0,\r\n },\r\n ],\r\n });\r\n let result = fuse.search(key);\r\n // console.log(result);\r\n if (result.length > 0) {\r\n document.getElementById('search-result').innerHTML = template('search-result-template', result);\r\n return [new Date().getTime() - counter, result.length];\r\n } else {\r\n return 'notFound';\r\n }\r\n}\r\n\r\nlet urlParams = new URLSearchParams(window.location.search); // get params from URL\r\nif (urlParams.has('s')) {\r\n let counter = new Date().getTime();\r\n let infoElements = document.querySelectorAll('.search-result-info');\r\n let key = urlParams.get('s'); // get search keyword, divided by space\r\n document.querySelector('.search-input input').setAttribute('value', key);\r\n // get search index from json\r\n let xhr = new XMLHttpRequest();\r\n xhr.open('GET', '/index.json', true);\r\n xhr.responseType = 'json';\r\n xhr.onerror = () => {\r\n infoElements[2].removeAttribute('style');\r\n };\r\n xhr.ontimeout = () => {\r\n infoElements[2].removeAttribute('style');\r\n };\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n // use index json to search\r\n // console.log(xhr.response);\r\n counter = searchAll(key, xhr.response, counter);\r\n // console.log(counter);\r\n if (counter === 'notFound') {\r\n infoElements[1].removeAttribute('style');\r\n } else {\r\n infoElements[0].innerHTML = infoElements[0].innerHTML.replace('[TIME]', counter[0]);\r\n infoElements[0].innerHTML = infoElements[0].innerHTML.replace('[NUM]', counter[1]);\r\n infoElements[0].removeAttribute('style');\r\n }\r\n } else {\r\n infoElements[2].removeAttribute('style');\r\n }\r\n }\r\n };\r\n xhr.send(null);\r\n}\r\n"],"file":"fuji.min.js"} \ No newline at end of file -- cgit v1.2.3 From 05dcb6fec60a71e7d88d86e6d1a0189abc01a9e7 Mon Sep 17 00:00:00 2001 From: amzrk2 Date: Tue, 16 Jun 2020 16:30:56 +0800 Subject: Clean resources --- static/assets/js/fuji.min.js | 152 +-------------------------------------- static/assets/js/fuji.min.js.map | 1 - 2 files changed, 1 insertion(+), 152 deletions(-) delete mode 100644 static/assets/js/fuji.min.js.map (limited to 'static/assets/js') diff --git a/static/assets/js/fuji.min.js b/static/assets/js/fuji.min.js index 6b0646d..d7e8d68 100644 --- a/static/assets/js/fuji.min.js +++ b/static/assets/js/fuji.min.js @@ -1,151 +1 @@ -'use strict'; // get current theme - -function getNowTheme() { - var nowTheme = document.body.getAttribute('data-theme'); - - if (nowTheme === 'auto') { - return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; - } else { - return nowTheme === 'dark' ? 'dark' : 'light'; - } -} // update utterances theme - - -function updateUtterancesTheme(utterancesFrame) { - var targetTheme = getNowTheme(); - - if (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'); - } - } -} // load comment button only when comment area exist - - -if (document.querySelector('span.post-comment-notloaded')) { - document.querySelector('span.post-comment-notloaded').addEventListener('click', loadComment); -} // to-top button - - -document.querySelector('.btn .btn-scroll-top').addEventListener('click', function () { - document.documentElement.scrollTop = 0; -}); // theme switch button - -document.querySelector('.btn .btn-toggle-mode').addEventListener('click', function () { - var nowTheme = getNowTheme(); - var domTheme = document.body.getAttribute('data-theme'); - var systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; - - if (domTheme === 'auto') { - // if now in auto mode, switch to user mode - document.body.setAttribute('data-theme', nowTheme === 'light' ? 'dark' : 'light'); - localStorage.setItem('fuji_data-theme', nowTheme === 'light' ? 'dark' : 'light'); - } else if (domTheme === 'light') { - // if now in user mode and light mode - document.body.setAttribute('data-theme', 'dark'); // if the theme want to switch is system theme - - localStorage.setItem('fuji_data-theme', systemTheme === 'dark' ? 'auto' : 'dark'); - } else { - // if now in user mode and dark mode - document.body.setAttribute('data-theme', 'light'); // if the theme want to switch is system theme - - localStorage.setItem('fuji_data-theme', systemTheme === 'light' ? 'auto' : 'light'); - } // switch comment area theme - // if this page has comment area - - - var commentArea = document.querySelector('.post-comment'); - - if (commentArea) { - // if comment area loaded - if (document.querySelector('span.post-comment-notloaded').getAttribute('style')) { - if (commentArea.getAttribute('data-comment') === 'utterances') { - updateUtterancesTheme(document.querySelector('.post-comment iframe')); - } - - if (commentArea.getAttribute('data-comment') === 'disqus') { - DISQUS.reset({ - reload: true - }); - } - } - } -}); // search by fuse.js - -function searchAll(key, index, counter) { - var fuse = new Fuse(index, { - shouldSort: true, - distance: 10000, - keys: [{ - name: 'title', - weight: 2.0 - }, { - name: 'tags', - weight: 1.5 - }, { - name: 'content', - weight: 1.0 - }] - }); - var result = fuse.search(key); // console.log(result); - - if (result.length > 0) { - document.getElementById('search-result').innerHTML = template('search-result-template', result); - return [new Date().getTime() - counter, result.length]; - } else { - return 'notFound'; - } -} - -var urlParams = new URLSearchParams(window.location.search); // get params from URL - -if (urlParams.has('s')) { - var counter = new Date().getTime(); - var infoElements = document.querySelectorAll('.search-result-info'); - var key = urlParams.get('s'); // get search keyword, divided by space - - document.querySelector('.search-input input').setAttribute('value', key); // get search index from json - - var xhr = new XMLHttpRequest(); - xhr.open('GET', '/index.json', true); - xhr.responseType = 'json'; - - xhr.onerror = function () { - infoElements[2].removeAttribute('style'); - }; - - xhr.ontimeout = function () { - infoElements[2].removeAttribute('style'); - }; - - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - if (xhr.status === 200) { - // use index json to search - // console.log(xhr.response); - counter = searchAll(key, xhr.response, counter); // console.log(counter); - - if (counter === 'notFound') { - infoElements[1].removeAttribute('style'); - } else { - infoElements[0].innerHTML = infoElements[0].innerHTML.replace('[TIME]', counter[0]); - infoElements[0].innerHTML = infoElements[0].innerHTML.replace('[NUM]', counter[1]); - infoElements[0].removeAttribute('style'); - } - } else { - infoElements[2].removeAttribute('style'); - } - } - }; - - xhr.send(null); -} -//# sourceMappingURL=fuji.min.js.map +"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 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"))}function searchAll(e,t,n){var o=new Fuse(t,{shouldSort:!0,distance:1e4,keys:[{name:"title",weight:2},{name:"tags",weight:1.5},{name:"content",weight:1}]}).search(e);return 0 {\r\n document.documentElement.scrollTop = 0;\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 // switch comment area theme\r\n // if this page has comment area\r\n let commentArea = document.querySelector('.post-comment');\r\n if (commentArea) {\r\n // if comment area loaded\r\n if (document.querySelector('span.post-comment-notloaded').getAttribute('style')) {\r\n if (commentArea.getAttribute('data-comment') === 'utterances') {\r\n updateUtterancesTheme(document.querySelector('.post-comment iframe'));\r\n }\r\n if (commentArea.getAttribute('data-comment') === 'disqus') {\r\n DISQUS.reset({\r\n reload: true,\r\n });\r\n }\r\n }\r\n }\r\n});\r\n\r\n// search by fuse.js\r\nfunction searchAll(key, index, counter) {\r\n let fuse = new Fuse(index, {\r\n shouldSort: true,\r\n distance: 10000,\r\n keys: [\r\n {\r\n name: 'title',\r\n weight: 2.0,\r\n },\r\n {\r\n name: 'tags',\r\n weight: 1.5,\r\n },\r\n {\r\n name: 'content',\r\n weight: 1.0,\r\n },\r\n ],\r\n });\r\n let result = fuse.search(key);\r\n // console.log(result);\r\n if (result.length > 0) {\r\n document.getElementById('search-result').innerHTML = template('search-result-template', result);\r\n return [new Date().getTime() - counter, result.length];\r\n } else {\r\n return 'notFound';\r\n }\r\n}\r\n\r\nlet urlParams = new URLSearchParams(window.location.search); // get params from URL\r\nif (urlParams.has('s')) {\r\n let counter = new Date().getTime();\r\n let infoElements = document.querySelectorAll('.search-result-info');\r\n let key = urlParams.get('s'); // get search keyword, divided by space\r\n document.querySelector('.search-input input').setAttribute('value', key);\r\n // get search index from json\r\n let xhr = new XMLHttpRequest();\r\n xhr.open('GET', '/index.json', true);\r\n xhr.responseType = 'json';\r\n xhr.onerror = () => {\r\n infoElements[2].removeAttribute('style');\r\n };\r\n xhr.ontimeout = () => {\r\n infoElements[2].removeAttribute('style');\r\n };\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n // use index json to search\r\n // console.log(xhr.response);\r\n counter = searchAll(key, xhr.response, counter);\r\n // console.log(counter);\r\n if (counter === 'notFound') {\r\n infoElements[1].removeAttribute('style');\r\n } else {\r\n infoElements[0].innerHTML = infoElements[0].innerHTML.replace('[TIME]', counter[0]);\r\n infoElements[0].innerHTML = infoElements[0].innerHTML.replace('[NUM]', counter[1]);\r\n infoElements[0].removeAttribute('style');\r\n }\r\n } else {\r\n infoElements[2].removeAttribute('style');\r\n }\r\n }\r\n };\r\n xhr.send(null);\r\n}\r\n"],"file":"fuji.min.js"} \ No newline at end of file -- cgit v1.2.3