From 34c1f13d8b7bbff2e24b4b25d7941d7a0ce7d9d3 Mon Sep 17 00:00:00 2001 From: taskylizard <75871323+taskylizard@users.noreply.github.com> Date: Sun, 5 Nov 2023 14:33:11 +0530 Subject: [PATCH] less ugly appearance switch --- .vitepress/config.mts | 11 +++++ .vitepress/theme/Layout.vue | 18 +++++++ .vitepress/theme/components/ThemeSwitch.vue | 53 +++++++++++++++++++++ .vitepress/theme/index.ts | 8 ++-- .vitepress/vue-shim.d.ts | 4 +- 5 files changed, 87 insertions(+), 7 deletions(-) create mode 100644 .vitepress/theme/Layout.vue create mode 100644 .vitepress/theme/components/ThemeSwitch.vue diff --git a/.vitepress/config.mts b/.vitepress/config.mts index eace46a13..079122330 100644 --- a/.vitepress/config.mts +++ b/.vitepress/config.mts @@ -5,6 +5,7 @@ import { presetUno, presetAttributify, presetIcons } from "unocss"; import { commitRef, meta } from "./constants"; import { pwa } from "./pwa"; import { generateMeta } from "./hooks/meta"; +import { fileURLToPath } from "url"; export default defineConfig({ title: "FMHY", @@ -54,6 +55,16 @@ export default defineConfig({ // Shut the fuck up chunkSizeWarningLimit: Infinity, }, + resolve: { + alias: [ + { + find: /^.*VPSwitchAppearance\.vue$/, + replacement: fileURLToPath( + new URL("./theme/components/ThemeSwitch.vue", import.meta.url), + ), + }, + ] + } }, themeConfig: { search: { diff --git a/.vitepress/theme/Layout.vue b/.vitepress/theme/Layout.vue new file mode 100644 index 000000000..0520f4052 --- /dev/null +++ b/.vitepress/theme/Layout.vue @@ -0,0 +1,18 @@ + + + diff --git a/.vitepress/theme/components/ThemeSwitch.vue b/.vitepress/theme/components/ThemeSwitch.vue new file mode 100644 index 000000000..8fe0d3434 --- /dev/null +++ b/.vitepress/theme/components/ThemeSwitch.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/.vitepress/theme/index.ts b/.vitepress/theme/index.ts index 5c7dd8984..c8c5e9b20 100644 --- a/.vitepress/theme/index.ts +++ b/.vitepress/theme/index.ts @@ -2,16 +2,14 @@ import { h } from "vue"; import { type Theme, inBrowser } from "vitepress"; import DefaultTheme from "vitepress/theme"; import Sidebar from "./components/SidebarCard.vue"; +import Layout from "./Layout.vue"; import "./style.css"; import "uno.css"; // if (inBrowser) import("./pwa"); export default { - Layout: () => { - return h(DefaultTheme.Layout, null, { - "sidebar-nav-after": () => h(Sidebar), - }); - }, + extends: DefaultTheme, + Layout: Layout, enhanceApp({ app, router, siteData }) {}, } satisfies Theme; diff --git a/.vitepress/vue-shim.d.ts b/.vitepress/vue-shim.d.ts index 0660bd67a..ccfa68ba0 100644 --- a/.vitepress/vue-shim.d.ts +++ b/.vitepress/vue-shim.d.ts @@ -1,4 +1,4 @@ declare module "*.vue" { - import Vue from "vue"; - export default Vue; + const component: import("vue").Component; + export default component; }