diff --git a/settings.yaml b/settings.yaml index 0251d63..e1452dc 100644 --- a/settings.yaml +++ b/settings.yaml @@ -1457,6 +1457,57 @@ spec: value: '您即将离开{title},去往:{url}' placeholder: '请输入安全链接页面跳转提示区域的文本描述' help: '""包裹时字体颜色为主题色,“ {title} ”表示站点主标题,“ {url} ”表示跳转URL,区分大小写。默认值:“您即将离开{title},去往:{url}”' + - group: pwa + label: 'PWA配置' + formSchema: + - $formkit: radio + name: enable_pwa + id: enable_pwa + label: 开启 PWA 配置 + value: false + help: '开启 PWA,请先参考 https://www.hcjike.com/archives/MNdz7kZ6 页面的相关说明。' + options: + - value: true + label: 开启 + - value: false + label: 关闭 + - $formkit: attachment + name: manifest_file + if: $get(enable_pwa).value + accepts: + - "application/json" + label: manifest.json 文件路径 + validation: required + placeholder: '请输入/选择 manifest.json 文件' + help: '请输入或选择一个 manifest.json 文件。该文件的创建方法可参考 https://www.hcjike.com/archives/MNdz7kZ6 页面的相关说明。' + - $formkit: color + name: theme_color + if: $get(enable_pwa).value + label: 主题颜色 + validation: required + help: 设置浏览器地址栏、工具栏或状态栏的主题颜色。 + value: '#50bfff' + - $formkit: select + name: apple_status_bar_style + if: $get(enable_pwa).value + label: iOS 设备状态栏样式 + validation: required + value: 'black' + help: '控制 iOS 设备上 Web 应用的状态栏样式。' + options: + - value: 'default' + label: 白色文字,灰色状态栏 + - value: 'black' + label: 白色文字,黑色状态栏 + - value: 'black-translucent' + label: 白色文字,半透明黑色状态栏 + - $formkit: attachment + name: apple_touch_icon + if: $get(enable_pwa).value + label: iOS 设备显示图标 + validation: required + placeholder: '请输入/选择图标文件' + help: '为 iOS 设备设置添加到主屏幕时的图标。' - group: custom label: '定制主题' formSchema: diff --git a/templates/assets/js/common.min.js b/templates/assets/js/common.min.js index 4af7dc0..350f0d3 100644 --- a/templates/assets/js/common.min.js +++ b/templates/assets/js/common.min.js @@ -1,4 +1,4 @@ -(()=>{window.encrypt=e=>window.btoa(unescape(encodeURIComponent(e))),window.decrypt=e=>decodeURIComponent(escape(window.atob(e)));const t={initWidget(){var e=$(".columns .column-right"),t=$(".columns .column-right-shadow");if(e.length&&t.length&&!t[0].children.length)for(const n of e[0].children)t[0].append(n.cloneNode(!0))},initTocAndNotice(){var e=location["pathname"],t=(window.tocPjax&&window.tocPjax(),0===$(".widget.toc .card-content ul").length),e="toc"===DreamConfig.notice_show_mode&&!t||"index"===DreamConfig.notice_show_mode&&"/"!==e;t?$(".widget.toc,.action-toc").addClass("is-hidden-all"):$(".widget.toc,.action-toc").removeClass("is-hidden-all"),e?$(".widget.notice").addClass("is-hidden-all"):$(".widget.notice").removeClass("is-hidden-all")},initBanner(){const i=$(".banner-info-desc");if(0!==i.length){const o=i.text();i.text("");let t,n="",a=!0;const s=function(){var e=n.length;a&&e
${this.alt&&DreamConfig.show_img_name?`

${this.alt}

`:""}`)})},initMode(){let t=localStorage.getItem("night")||!1;const n=e=>{e?$("html").addClass("color-scheme-dark").removeClass("color-scheme-light").addClass("night"):$("html").addClass("color-scheme-light").removeClass("color-scheme-dark").removeClass("night"),localStorage.setItem("night",e),t=e};$("#toggle-mode").on("click",()=>n("true"!==t.toString())),"system"===DreamConfig.default_theme?window.matchMedia("(prefers-color-scheme: dark)").addListener(e=>n(e.matches)):n("true"===t.toString())},initNavbar(){var t=$(".navbar-nav a"),e=$(".panel-side-menu .link");let n=0;var{href:a,pathname:i}=location;if(i&&"/"!==i)for(let e=0;e$(this).addClass("active"),()=>$(this).removeClass("active")):($(this).on("click",function(e){e.stopPropagation(),$(this).toggleClass("active"),$(document).one("click",()=>$(this).removeClass("active")),e.stopPropagation()}),n.on("click",e=>e.stopPropagation()))})},iniTaskItemDisabled(){$('li[data-type="taskItem"]').each(function(){$(this).find('label > input[type="checkbox"]').prop("disabled",!0)})},initLogonMenu(){$(".navbar-logon").each(function(e,t){"hover"===($(t).attr("trigger")||"click")?$(this).hover(()=>$(this).addClass("active"),()=>$(this).removeClass("active")):$(this).on("click",function(e){e.stopPropagation(),$(this).toggleClass("active"),$(document).one("click",()=>$(this).removeClass("active")),e.stopPropagation()})})},initScroll(){window.initTop=0,document.addEventListener("scroll",()=>{const e=$(document).scrollTop(),t=(i=e>window.initTop,window.initTop=e,i),n=$("body"),a=$(".actions");var i;50e.preventDefault),$(".navbar .toc-content").on("click",function(e){e.stopPropagation(),$("html").removeClass("disable-scroll"),$(".navbar-mask").removeClass("active slideout"),$(".navbar-slideout").removeClass("active slideout-toc")})},sideMenuMobile(){$(".navbar-slideout-menu .current").parents(".panel-body").show().siblings(".panel").addClass("in"),$(".navbar-slideout-menu .panel").on("click",function(e){e.stopPropagation();var e=$(this),t=e.parent().parent();t.find(".panel").not(e).removeClass("in"),t.find(".panel-body").not(e.siblings(".panel-body")).stop().hide("fast"),e.toggleClass("in").siblings(".panel-body").stop().toggle("fast")})},initEvent(){var e=$("body");function n(e){var e=$(e),t=e.attr("data-close");return t&&""!==t.trim()?e.closest(t.trim()):e}e.on("click",".click-close",function(e){e.stopPropagation(),n(this).remove()}),e.on("click",".click-animation-close",function(e){e.stopPropagation();let t=n(this);t.addClass("close-animation"),setTimeout(()=>t.remove(),300)})},offscreenTip(){if(!Utils.isMobile()&&(DreamConfig.document_hidden_title||DreamConfig.document_visible_title)){let e=document.title,t=null;document.addEventListener("visibilitychange",function(){document.hidden?(DreamConfig.document_visible_title&&document.title===DreamConfig.document_visible_title||(e=document.title),DreamConfig.document_hidden_title&&(document.title=DreamConfig.document_hidden_title),clearTimeout(t)):(document.title=DreamConfig.document_visible_title||e,DreamConfig.document_visible_title&&(t=setTimeout(function(){document.title===DreamConfig.document_visible_title&&(document.title=e)},2e3)))})}},initCarousel(){window.Swiper&&new Swiper(".swiper",{loop:!0,parallax:!0,effect:"slide",spaceBetween:10,speed:600,autoplay:{delay:3e3,disableOnInteraction:!1,pauseOnMouseEnter:!0},pagination:{el:".swiper-pagination",clickable:!0},navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"}})},closeFancybox(){document.querySelector(".fancybox-container")&&$.fancybox.close()},sparkInput(){const n=DreamConfig.spark_input_content&&DreamConfig.spark_input_content.filter(e=>0sparkInput(t,[t.innerText,...n]))})},loveTime(){let c=$(".love .love-time");if(0!==c.length){var e=c.attr("data-time");if(/^\d{4}\/\d{2}\/\d{2} \d{2}:\d{2}:\d{2}$/.test(e)){const d=new Date(e);setInterval(function(){var e=Date.now(),t=parseInt((e-d)/1e3),n=t%60,a=(t=parseInt(t/60))%60;let i=(t=parseInt(t/60))%24,o=parseInt(t/24),s=0,r=d.getFullYear(),l=e.getFullYear();for(;r${o}天${i}${a}${n}秒`},300)}}},webCopyright(){var e,t,n;DreamConfig.website_time&&(e=document.getElementById("webCopyright"),t=(new Date).getFullYear(),n=new Date(DreamConfig.website_time).getFullYear(),e.innerText=t!==n?"© "+n+"-"+t:"© "+t)},initTimeCount(){if($(".timelife").length&&o!==(new Date).getHours()){var e=[{title:"今日已经过去",endTitle:"小时",num:0,percent:"0%"},{title:"这周已经过去",endTitle:"天",num:0,percent:"0%"},{title:"本月已经过去",endTitle:"天",num:0,percent:"0%"},{title:"今年已经过去",endTitle:"个月",num:0,percent:"0%"}],t=(+new Date-new Date((new Date).toLocaleDateString()).getTime())/1e3/60/60,a=(o=t)/24*100,t=(e[0].num=parseInt(t),e[0].percent=parseInt(a)+"%",{0:7,1:1,2:2,3:3,4:4,5:5,6:6}[(new Date).getDay()]),a=t/7*100,t=(e[1].num=parseInt(t),e[1].percent=parseInt(a)+"%",(new Date).getFullYear()),a=(new Date).getDate(),i=(new Date).getMonth()+1,t=a/new Date(t,i,0).getDate()*100,i=(e[2].num=a,e[2].percent=parseInt(t)+"%",(new Date).getMonth()+1),a=i/12*100;e[3].num=i,e[3].percent=parseInt(a)+"%";let n="";e.forEach((e,t)=>{n+=` +(()=>{window.encrypt=e=>window.btoa(unescape(encodeURIComponent(e))),window.decrypt=e=>decodeURIComponent(escape(window.atob(e)));const t={initWidget(){var e=$(".columns .column-right"),t=$(".columns .column-right-shadow");if(e.length&&t.length&&!t[0].children.length)for(const n of e[0].children)t[0].append(n.cloneNode(!0))},initTocAndNotice(){var e=location["pathname"],t=(window.tocPjax&&window.tocPjax(),0===$(".widget.toc .card-content ul").length),e="toc"===DreamConfig.notice_show_mode&&!t||"index"===DreamConfig.notice_show_mode&&"/"!==e;t?$(".widget.toc,.action-toc").addClass("is-hidden-all"):$(".widget.toc,.action-toc").removeClass("is-hidden-all"),e?$(".widget.notice").addClass("is-hidden-all"):$(".widget.notice").removeClass("is-hidden-all")},initBanner(){const i=$(".banner-info-desc");if(0!==i.length){const o=i.text();i.text("");let t,n="",a=!0;const s=function(){var e=n.length;a&&e
${this.alt&&DreamConfig.show_img_name?`

${this.alt}

`:""}`)})},initMode(){let t=localStorage.getItem("night")||!1;const n=e=>{e?$("html").addClass("color-scheme-dark").removeClass("color-scheme-light").addClass("night"):$("html").addClass("color-scheme-light").removeClass("color-scheme-dark").removeClass("night"),localStorage.setItem("night",e),t=e};$("#toggle-mode").on("click",()=>n("true"!==t.toString())),"system"===DreamConfig.default_theme?window.matchMedia("(prefers-color-scheme: dark)").addListener(e=>n(e.matches)):n("true"===t.toString())},initNavbar(){var t=$(".navbar-nav a"),e=$(".panel-side-menu .link");let n=0;var{href:a,pathname:i}=location;if(i&&"/"!==i)for(let e=0;e$(this).addClass("active"),()=>$(this).removeClass("active")):($(this).on("click",function(e){e.stopPropagation(),$(this).toggleClass("active"),$(document).one("click",()=>$(this).removeClass("active")),e.stopPropagation()}),n.on("click",e=>e.stopPropagation()))})},iniTaskItemDisabled(){$('li[data-type="taskItem"]').each(function(){$(this).find('label > input[type="checkbox"]').prop("disabled",!0)})},initLogonMenu(){$(".navbar-logon").each(function(e,t){"hover"===($(t).attr("trigger")||"click")?$(this).hover(()=>$(this).addClass("active"),()=>$(this).removeClass("active")):$(this).on("click",function(e){e.stopPropagation(),$(this).toggleClass("active"),$(document).one("click",()=>$(this).removeClass("active")),e.stopPropagation()})})},initScroll(){window.initTop=0,document.addEventListener("scroll",()=>{const e=$(document).scrollTop(),t=(i=e>window.initTop,window.initTop=e,i),n=$("body"),a=$(".actions");var i;50e.preventDefault),$(".navbar .toc-content").on("click",function(e){e.stopPropagation(),$("html").removeClass("disable-scroll"),$(".navbar-mask").removeClass("active slideout"),$(".navbar-slideout").removeClass("active slideout-toc")})},sideMenuMobile(){$(".navbar-slideout-menu .current").parents(".panel-body").show().siblings(".panel").addClass("in"),$(".navbar-slideout-menu .panel").on("click",function(e){e.stopPropagation();var e=$(this),t=e.parent().parent();t.find(".panel").not(e).removeClass("in"),t.find(".panel-body").not(e.siblings(".panel-body")).stop().hide("fast"),e.toggleClass("in").siblings(".panel-body").stop().toggle("fast")})},initEvent(){var e=$("body");function n(e){var e=$(e),t=e.attr("data-close");return t&&""!==t.trim()?e.closest(t.trim()):e}e.on("click",".click-close",function(e){e.stopPropagation(),n(this).remove()}),e.on("click",".click-animation-close",function(e){e.stopPropagation();let t=n(this);t.addClass("close-animation"),setTimeout(()=>t.remove(),300)})},offscreenTip(){if(!Utils.isMobile()&&(DreamConfig.document_hidden_title||DreamConfig.document_visible_title)){let e=document.title,t=null;document.addEventListener("visibilitychange",function(){document.hidden?(DreamConfig.document_visible_title&&document.title===DreamConfig.document_visible_title||(e=document.title),DreamConfig.document_hidden_title&&(document.title=DreamConfig.document_hidden_title),clearTimeout(t)):(document.title=DreamConfig.document_visible_title||e,DreamConfig.document_visible_title&&(t=setTimeout(function(){document.title===DreamConfig.document_visible_title&&(document.title=e)},2e3)))})}},initCarousel(){window.Swiper&&new Swiper(".swiper",{loop:!0,parallax:!0,effect:"slide",spaceBetween:10,speed:600,autoplay:{delay:3e3,disableOnInteraction:!1,pauseOnMouseEnter:!0},pagination:{el:".swiper-pagination",clickable:!0},navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"}})},closeFancybox(){document.querySelector(".fancybox-container")&&$.fancybox.close()},sparkInput(){const n=DreamConfig.spark_input_content&&DreamConfig.spark_input_content.filter(e=>0sparkInput(t,[t.innerText,...n]))})},loveTime(){let c=$(".love .love-time");if(0!==c.length){var e=c.attr("data-time");if(/^\d{4}\/\d{2}\/\d{2} \d{2}:\d{2}:\d{2}$/.test(e)){const d=new Date(e);setInterval(function(){var e=new Date(Date.now()),t=parseInt((e-d)/1e3),n=t%60,a=(t=parseInt(t/60))%60;let i=(t=parseInt(t/60))%24,o=parseInt(t/24),s=0,r=d.getFullYear(),l=e.getFullYear();for(;r${o}天${i}${a}${n}秒`},300)}}},webCopyright(){var e,t,n;DreamConfig.website_time&&(e=document.getElementById("webCopyright"),t=(new Date).getFullYear(),n=new Date(DreamConfig.website_time).getFullYear(),e.innerText=t!==n?"© "+n+"-"+t:"© "+t)},initTimeCount(){if($(".timelife").length&&o!==(new Date).getHours()){var e=[{title:"今日已经过去",endTitle:"小时",num:0,percent:"0%"},{title:"这周已经过去",endTitle:"天",num:0,percent:"0%"},{title:"本月已经过去",endTitle:"天",num:0,percent:"0%"},{title:"今年已经过去",endTitle:"个月",num:0,percent:"0%"}],t=(+new Date-new Date((new Date).toLocaleDateString()).getTime())/1e3/60/60,a=(o=t)/24*100,t=(e[0].num=parseInt(t),e[0].percent=parseInt(a)+"%",{0:7,1:1,2:2,3:3,4:4,5:5,6:6}[(new Date).getDay()]),a=t/7*100,t=(e[1].num=parseInt(t),e[1].percent=parseInt(a)+"%",(new Date).getFullYear()),a=(new Date).getDate(),i=(new Date).getMonth()+1,t=a/new Date(t,i,0).getDate()*100,i=(e[2].num=a,e[2].percent=parseInt(t)+"%",(new Date).getMonth()+1),a=i/12*100;e[3].num=i,e[3].percent=parseInt(a)+"%";let n="";e.forEach((e,t)=>{n+=`
${e.title} diff --git a/templates/common/head.html b/templates/common/head.html index 173b170..2bdff1e 100644 --- a/templates/common/head.html +++ b/templates/common/head.html @@ -22,6 +22,15 @@ th:with="description=${isPost ? post != null ? post.status.excerpt : singlePage + + + + + + + + + @@ -31,7 +40,7 @@ th:with="description=${isPost ? post != null ? post.status.excerpt : singlePage - +