mirror of
https://ghfast.top/https://github.com/zsjy/halo-theme-dream2.0-plus.git
synced 2025-03-15 20:09:41 +08:00
优化 自定义灰色模式,改为设定时间段,每年固定时间重复
This commit is contained in:
parent
492fa6ddcc
commit
3220136b01
@ -1351,19 +1351,18 @@ spec:
|
|||||||
label: 自定义
|
label: 自定义
|
||||||
- value: false
|
- value: false
|
||||||
label: 关闭
|
label: 关闭
|
||||||
- $formkit: datetime-local
|
- $formkit: repeater
|
||||||
name: gray_mode_start_time
|
name: gray_mode_time_list
|
||||||
id: gray_mode_start_time
|
|
||||||
if: $get(enable_gray_mode).value == 'custom'
|
if: $get(enable_gray_mode).value == 'custom'
|
||||||
|
label: 灰色模式时间段
|
||||||
validation: required
|
validation: required
|
||||||
help: 请选择开始时间,包含开始时间。
|
help: '请输入时间段,格式: 01/01|01/07 或 1/1|1/7,表示每年的1月1日00时00分00秒至1月7日23时59分59秒,持续7天。'
|
||||||
label: 灰色模式 - 开始时间
|
children:
|
||||||
- $formkit: datetime-local
|
- $formkit: text
|
||||||
name: gray_mode_end_time
|
name: time_span
|
||||||
if: $get(enable_gray_mode).value == 'custom'
|
label: 灰色模式时间段
|
||||||
validation: required
|
value: ""
|
||||||
help: 请选择结束时间,结束时间须大于开始时间,不包含结束时间。
|
placeholder: '请输入时间段,必须包含“|”分割开始和结束时间'
|
||||||
label: 灰色模式 - 结束时间
|
|
||||||
- $formkit: group
|
- $formkit: group
|
||||||
name: busuanzi_group
|
name: busuanzi_group
|
||||||
label: busuanzi 访客统计
|
label: busuanzi 访客统计
|
||||||
|
@ -590,12 +590,35 @@ const commonContext = {
|
|||||||
initGrayMode() {
|
initGrayMode() {
|
||||||
if (DreamConfig.gray_mode === true) {
|
if (DreamConfig.gray_mode === true) {
|
||||||
$('html').addClass('gray-mode')
|
$('html').addClass('gray-mode')
|
||||||
} else if (DreamConfig.gray_mode === 'custom') {
|
} else if (DreamConfig.gray_mode === 'custom' && DreamConfig.gray_mode_time_list) {
|
||||||
var now = Date.now()
|
const now = new Date()
|
||||||
var startTime = new Date(DreamConfig.gray_mode_start_time).getTime()
|
const month = now.getMonth() + 1
|
||||||
var endTime = new Date(DreamConfig.gray_mode_end_time).getTime()
|
const day = now.getDate()
|
||||||
if (now >= startTime && now <= endTime) {
|
const isDateInRange = (currentMonth, currentDay, startDate, endDate) => {
|
||||||
|
const [startMonth, startDay] = startDate.split('/').map(part => part.trim()).map(Number)
|
||||||
|
const [endMonth, endDay] = endDate.split('/').map(part => part.trim()).map(Number)
|
||||||
|
if (!startMonth || !startDay || !endMonth || !endDay) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
const start = new Date(now.getFullYear(), startMonth - 1, startDay)
|
||||||
|
const end = new Date(now.getFullYear(), endMonth - 1, endDay)
|
||||||
|
const current = new Date(now.getFullYear(), currentMonth - 1, currentDay)
|
||||||
|
return current >= start && current <= end
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const timeRange of DreamConfig.gray_mode_time_list) {
|
||||||
|
try {
|
||||||
|
const [startDate, endDate] = timeRange.split('|').map(part => part.trim())
|
||||||
|
if (!startDate || !endDate) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if (isDateInRange(month, day, startDate, endDate)) {
|
||||||
$('html').addClass('gray-mode')
|
$('html').addClass('gray-mode')
|
||||||
|
break
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
2
templates/assets/js/common.min.js
vendored
2
templates/assets/js/common.min.js
vendored
@ -11,4 +11,4 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="progress-percentage">${e.percent}</div>
|
<div class="progress-percentage">${e.percent}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>`}),$(".aside-timelife").html(a)}},initSecurityLink(){DreamConfig.enable_security_link&&DreamConfig.security_link_url&&0!==DreamConfig.security_link_url.length&&$(document).on("click","a[target=_blank]",e=>{e.preventDefault();var t,e=$(e.currentTarget).attr("href"),a=window.location.hostname;window.open("_blank").location=(a=a,t=(t=e).toLowerCase().trim(),a=a.toLowerCase().trim(),t.startsWith("//")?t=window.location.protocol+t:t.startsWith("/")&&(t=window.location.origin+t),(t=t.startsWith("http://")||t.startsWith("https://")?t.replace(/\/$/,""):t).includes(a)?e:DreamConfig.security_link_url+"?target="+encodeURIComponent(e))})},initGrayMode(){var e,t,a;(!0===DreamConfig.gray_mode||"custom"===DreamConfig.gray_mode&&(e=Date.now(),t=new Date(DreamConfig.gray_mode_start_time).getTime(),a=new Date(DreamConfig.gray_mode_end_time).getTime(),t<=e)&&e<=a)&&$("html").addClass("gray-mode")},initEffects(){Utils.isMobile()||(DreamConfig.cursor_move&&Utils.cachedScript(`${DreamConfig.theme_base}/js/cursor/move/${DreamConfig.cursor_move}.min.js?mew=`+DreamConfig.theme_version),DreamConfig.cursor_click&&Utils.cachedScript(`${DreamConfig.theme_base}/js/cursor/click/${DreamConfig.cursor_click}.min.js?mew=`+DreamConfig.theme_version),DreamConfig.enable_live2d&&Utils.cachedScript(DreamConfig.theme_base+"/js/autoload.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_lantern_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/lantern.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_sakura_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/sakura.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_snowflake_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/snowflake.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_universe_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/universe.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_circle_magic_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/circleMagic.min.js?mew="+DreamConfig.theme_version))},showThemeVersion(){DreamConfig.enable_console_version_info&&window.logger(`%c页面加载耗时:${Math.round(performance.now())}ms | Theme By Dream2 Plus `+DreamConfig.theme_version,"color:#fff; background: linear-gradient(270deg, #986fee, #8695e6, #68b7dd, #18d7d3); padding: 8px 15px; border-radius: 0 15px 0 15px")}};window.commonContext=t;let o=-1;{const a=["initCarousel","sparkInput","websiteTime"],n=["initEffects","showThemeVersion","iniTaskItemDisabled"];Object.keys(t).forEach(e=>!a.includes(e)&&!n.includes(e)&&t[e]()),document.addEventListener("DOMContentLoaded",function(){$("html").addClass("loaded"),a.forEach(e=>t[e]&&t[e]())}),window.addEventListener("load",function(){n.forEach(e=>t[e]&&t[e]()),$("html").addClass("ready")})}})();
|
</div>`}),$(".aside-timelife").html(a)}},initSecurityLink(){DreamConfig.enable_security_link&&DreamConfig.security_link_url&&0!==DreamConfig.security_link_url.length&&$(document).on("click","a[target=_blank]",e=>{e.preventDefault();var t,e=$(e.currentTarget).attr("href"),a=window.location.hostname;window.open("_blank").location=(a=a,t=(t=e).toLowerCase().trim(),a=a.toLowerCase().trim(),t.startsWith("//")?t=window.location.protocol+t:t.startsWith("/")&&(t=window.location.origin+t),(t=t.startsWith("http://")||t.startsWith("https://")?t.replace(/\/$/,""):t).includes(a)?e:DreamConfig.security_link_url+"?target="+encodeURIComponent(e))})},initGrayMode(){if(!0===DreamConfig.gray_mode)$("html").addClass("gray-mode");else if("custom"===DreamConfig.gray_mode&&DreamConfig.gray_mode_time_list){const s=new Date,a=s.getMonth()+1,n=s.getDate();for(const i of DreamConfig.gray_mode_time_list)try{var[e,t]=i.split("|").map(e=>e.trim());if(!e||!t)continue;if(((e,t,a,n)=>{var[a,i]=a.split("/").map(e=>e.trim()).map(Number),[n,o]=n.split("/").map(e=>e.trim()).map(Number);return!!(a&&i&&n&&o)&&(a=new Date(s.getFullYear(),a-1,i),i=new Date(s.getFullYear(),n-1,o),a<=(n=new Date(s.getFullYear(),e-1,t)))&&n<=i})(a,n,e,t)){$("html").addClass("gray-mode");break}}catch(e){console.log(e)}}},initEffects(){Utils.isMobile()||(DreamConfig.cursor_move&&Utils.cachedScript(`${DreamConfig.theme_base}/js/cursor/move/${DreamConfig.cursor_move}.min.js?mew=`+DreamConfig.theme_version),DreamConfig.cursor_click&&Utils.cachedScript(`${DreamConfig.theme_base}/js/cursor/click/${DreamConfig.cursor_click}.min.js?mew=`+DreamConfig.theme_version),DreamConfig.enable_live2d&&Utils.cachedScript(DreamConfig.theme_base+"/js/autoload.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_lantern_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/lantern.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_sakura_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/sakura.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_snowflake_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/snowflake.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_universe_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/universe.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_circle_magic_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/circleMagic.min.js?mew="+DreamConfig.theme_version))},showThemeVersion(){DreamConfig.enable_console_version_info&&window.logger(`%c页面加载耗时:${Math.round(performance.now())}ms | Theme By Dream2 Plus `+DreamConfig.theme_version,"color:#fff; background: linear-gradient(270deg, #986fee, #8695e6, #68b7dd, #18d7d3); padding: 8px 15px; border-radius: 0 15px 0 15px")}};window.commonContext=t;let o=-1;{const a=["initCarousel","sparkInput","websiteTime"],n=["initEffects","showThemeVersion","iniTaskItemDisabled"];Object.keys(t).forEach(e=>!a.includes(e)&&!n.includes(e)&&t[e]()),document.addEventListener("DOMContentLoaded",function(){$("html").addClass("loaded"),a.forEach(e=>t[e]&&t[e]())}),window.addEventListener("load",function(){n.forEach(e=>t[e]&&t[e]()),$("html").addClass("ready")})}})();
|
@ -73,8 +73,18 @@
|
|||||||
DreamConfig["site_title"] = [[${site.title}]];
|
DreamConfig["site_title"] = [[${site.title}]];
|
||||||
/** 灰色模式 */
|
/** 灰色模式 */
|
||||||
DreamConfig["gray_mode"] = [[${theme.config.enhance.gray_mode_group.enable_gray_mode}]];
|
DreamConfig["gray_mode"] = [[${theme.config.enhance.gray_mode_group.enable_gray_mode}]];
|
||||||
DreamConfig["gray_mode_start_time"] = [[${theme.config.enhance.gray_mode_group.gray_mode_start_time}]];
|
/** 配置自定义灰色模式时段 */
|
||||||
DreamConfig["gray_mode_end_time"] = [[${theme.config.enhance.gray_mode_group.gray_mode_end_time}]];
|
let gray_mode_time_list = []
|
||||||
|
let custom_gray_mode_time_list = [[${theme.config.enhance.gray_mode_group.gray_mode_time_list}]];
|
||||||
|
if(custom_gray_mode_time_list) {
|
||||||
|
for (let time of custom_gray_mode_time_list) {
|
||||||
|
let type = time.realNode.time_span;
|
||||||
|
if (gray_mode_time_list.indexOf(type) === -1) {
|
||||||
|
gray_mode_time_list.push(type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DreamConfig["gray_mode_time_list"] = gray_mode_time_list;
|
||||||
DreamConfig["pjax_state"] = [[${theme.config.enhance.enable_pjax}]];
|
DreamConfig["pjax_state"] = [[${theme.config.enhance.enable_pjax}]];
|
||||||
/** 配置分享方式 */
|
/** 配置分享方式 */
|
||||||
let post_share = []
|
let post_share = []
|
||||||
|
@ -30,7 +30,7 @@ spec:
|
|||||||
settingName: theme-dream2-plus-setting
|
settingName: theme-dream2-plus-setting
|
||||||
configMapName: theme-dream2-plus-configMap
|
configMapName: theme-dream2-plus-configMap
|
||||||
# 版本号
|
# 版本号
|
||||||
version: 1.4.0
|
version: 1.4.1.beta1
|
||||||
# 最低支持的 Halo 版本
|
# 最低支持的 Halo 版本
|
||||||
require: ">=2.20.0"
|
require: ">=2.20.0"
|
||||||
# 许可
|
# 许可
|
||||||
|
Loading…
x
Reference in New Issue
Block a user