diff --git a/src/routes/+layout.server.ts b/src/routes/+layout.server.ts index 9fc531f..0ddf7eb 100644 --- a/src/routes/+layout.server.ts +++ b/src/routes/+layout.server.ts @@ -17,7 +17,8 @@ export const load: LayoutServerLoad = async ({ platform }) => { title: 'BlogFlare', description: 'A high-performance blog powered by Cloudflare D1, R2, and KV.', avatar_enabled: 'true', - avatar_url: '' + avatar_url: '', + launch_date: '' }; if (db) { diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 590b196..e2d12bd 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -7,6 +7,18 @@ import { page } from '$app/stores'; let scrolled = $state(false); + let uptimeText = $state(''); + + function calcUptime(launchDate: string): string { + if (!launchDate) return ''; + const start = new Date(launchDate).getTime(); + const diff = Date.now() - start; + if (diff < 0) return ''; + const days = Math.floor(diff / 86400000); + const hours = Math.floor((diff % 86400000) / 3600000); + const minutes = Math.floor((diff % 3600000) / 60000); + return `${days} 天 ${hours} 小时 ${minutes} 分钟`; + } onMount(() => { const handleScroll = () => { @@ -14,8 +26,16 @@ }; window.addEventListener('scroll', handleScroll); + // 初始化建站时长 + const launchDate = $page.data.site?.launch_date || ''; + uptimeText = calcUptime(launchDate); + const timer = setInterval(() => { + uptimeText = calcUptime(launchDate); + }, 60000); + return () => { window.removeEventListener('scroll', handleScroll); + clearInterval(timer); }; }); @@ -96,7 +116,9 @@ © {new Date().getFullYear()} {$page.data.site?.title || 'BlogFlare'}

-

感谢陪伴:

+ {#if uptimeText} +

感谢陪伴:{uptimeText}

+ {/if}

diff --git a/src/routes/admin/settings/+page.server.ts b/src/routes/admin/settings/+page.server.ts index 2bf031b..5122f92 100644 --- a/src/routes/admin/settings/+page.server.ts +++ b/src/routes/admin/settings/+page.server.ts @@ -42,6 +42,10 @@ export const actions: Actions = { { key: 'r2.public_domain', value: data.get('r2_public_domain')?.toString() || 'https://assets.yourdomain.com' + }, + { + key: 'site.launch_date', + value: data.get('site_launch_date')?.toString() || '' } ]; diff --git a/src/routes/admin/settings/+page.svelte b/src/routes/admin/settings/+page.svelte index 0bad080..32e5384 100644 --- a/src/routes/admin/settings/+page.svelte +++ b/src/routes/admin/settings/+page.svelte @@ -85,6 +85,16 @@ /> 请确保不要以斜杠 / 结尾 +

+ + + 用于在底栏显示"感谢陪伴 X 天 X 小时" +