From 8648f761ed71bf7e5dc6a45097b3d80ae8fc0876 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=A8=E8=90=BD?= <53731501+qyl27@users.noreply.github.com> Date: Tue, 17 Mar 2026 17:40:16 +0800 Subject: [PATCH] refactor(docs): home layout component (#1404) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --------- Signed-off-by: 秋雨落 Co-authored-by: Neko-233 <1260907335@qq.com> Co-authored-by: Neko --- docs/.vitepress/components/Home.vue | 76 +++++++------------- docs/.vitepress/components/HomeButton.vue | 26 +++++++ docs/.vitepress/components/HomeButtonSet.vue | 19 +++++ docs/.vitepress/config.ts | 59 ++++++++++++++- docs/.vitepress/constants.ts | 1 + docs/.vitepress/theme/config.ts | 17 +++++ docs/content/en/index.md | 3 +- docs/content/ja/index.md | 3 +- docs/content/zh-Hans/index.md | 4 +- 9 files changed, 153 insertions(+), 55 deletions(-) create mode 100644 docs/.vitepress/components/HomeButton.vue create mode 100644 docs/.vitepress/components/HomeButtonSet.vue create mode 100644 docs/.vitepress/constants.ts create mode 100644 docs/.vitepress/theme/config.ts diff --git a/docs/.vitepress/components/Home.vue b/docs/.vitepress/components/Home.vue index b5e3208ba..fb84d2dea 100644 --- a/docs/.vitepress/components/Home.vue +++ b/docs/.vitepress/components/Home.vue @@ -3,7 +3,8 @@ import type { AnimatableObject } from 'animejs' import { useLocalStorage, useWindowSize } from '@vueuse/core' import { createAnimatable } from 'animejs' -import { onMounted, shallowRef, useTemplateRef, watch, watchEffect } from 'vue' +import { useData } from 'vitepress' +import { computed, onMounted, shallowRef, useTemplateRef, watch, watchEffect } from 'vue' import { useI18n } from 'vue-i18n' import homeBackgroundChristmas20251224 from '../assets/home-cover-2025-12-24-bg.avif' @@ -12,6 +13,7 @@ import homeBackgroundChristmas20251224 from '../assets/home-cover-2025-12-24-bg. // cached or erased in dev/prod, causing the mask pattern to not show up. import homeBackgroundPatternGhost from '../assets/home-patterns-ghost.svg?no-inline' import homeBackgroundPatternLollipop from '../assets/home-patterns-lollipop.svg?no-inline' +import HomeButtonSet from './HomeButtonSet.vue' import ParallaxCover from './ParallaxCover.vue' import ParallaxCoverChristmas20251224 from './ParallaxCoverChristmas20251224.vue' import ParallaxCoverHalloween20251029 from './ParallaxCoverHalloween20251029.vue' @@ -89,6 +91,13 @@ watchEffect((onCleanup) => { } } }) + +const isShowHalloween = isBetweenHalloweenAndHalfOfNovember(new Date()) +const isShowChristmas = isBetweenChristmasAndHalfOfJanuary(new Date()) + +const { theme, frontmatter } = useData() + +const buttons = computed(() => theme.value.homepage?.buttons || [])