diff --git a/.gitignore b/.gitignore index f6fbc06b2..4f27addcd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # build output build/ +dev-dist/ # generated types .astro/ diff --git a/astro.config.ts b/astro.config.ts index 626d6c654..8805e6364 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -1079,26 +1079,22 @@ export default defineConfig({ }), AstroPWA({ registerType: "autoUpdate", - + workbox: { + skipWaiting: true, + clientsClaim: true, + navigateFallback: "/404", + ignoreURLParametersMatching: [/./], + globPatterns: ["**/*.{html,js,css,png,svg,json,ttf,pf_fragment,pf_index,pf_meta,pagefind,wasm}"] + }, + experimental: { + directoryAndTrailingSlashHandler: true + }, manifest: { name: "Cubic Wiki", short_name: "Cubic Wiki", - theme_color: "#2196f3", - background_color: "#424242", display: "standalone", - start_url: "/", - icons: [ - { - src: "/icons/book-192.png", - sizes: "192x192", - type: "image/png" - }, - { - src: "/icons/book-512.png", - sizes: "512x512", - type: "image/png" - } - ] + theme_color: "#2196f3", + background_color: "#424242" } }), mermaid({ @@ -1108,7 +1104,7 @@ export default defineConfig({ vite: { plugins: [tailwindcss()], ssr: { - noExternal: ["naive-ui", "vueuc", "date-fns"] + noExternal: ["naive-ui", "vueuc", "date-fns", "workbox-window"] } } }); diff --git a/package.json b/package.json index 5d7c5f783..bf126e3e6 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,8 @@ "starlight-links-validator": "^0.19.2", "starlight-scroll-to-top": "^0.4.0", "tailwindcss": "^4.1.18", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "workbox-window": "^7.4.0" }, "engines": { "node": ">=18.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 677df9ffa..3fe19c375 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -75,6 +75,9 @@ importers: typescript: specifier: ^5.9.3 version: 5.9.3 + workbox-window: + specifier: ^7.4.0 + version: 7.4.0 packages: diff --git a/src/components/Head.astro b/src/components/Head.astro index defea6b11..c07dcd6d0 100644 --- a/src/components/Head.astro +++ b/src/components/Head.astro @@ -1,19 +1,71 @@ --- -import StarlightHead from '@astrojs/starlight/components/Head.astro'; +import StarlightHead from "@astrojs/starlight/components/Head.astro"; import VtbotStarlight from "astro-vtbot/components/starlight/Base.astro"; -import PageOffset from 'astro-vtbot/components/PageOffset.astro'; -import AutoNameSelected from 'astro-vtbot/components/AutoNameSelected.astro'; +import PageOffset from "astro-vtbot/components/PageOffset.astro"; +import AutoNameSelected from "astro-vtbot/components/AutoNameSelected.astro"; import ProgressBar from "astro-vtbot/components/ProgressBar.astro"; -import PageOrder from 'astro-vtbot/components/starlight/PageOrder.astro'; -import { fade, slide } from 'astro:transitions'; +import PageOrder from "astro-vtbot/components/starlight/PageOrder.astro"; +import { pwaInfo } from "virtual:pwa-info"; --- - + + + +{pwaInfo && } + - + diff --git a/src/env.d.ts b/src/env.d.ts new file mode 100644 index 000000000..5494bddf0 --- /dev/null +++ b/src/env.d.ts @@ -0,0 +1,8 @@ +/// +/// +/// +/// +/// +/// +/// +/// diff --git a/tsconfig.json b/tsconfig.json index 6742c701b..b1dfefdfe 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,5 @@ { "extends": "astro/tsconfigs/strict", - "include": [".astro/types.d.ts", "**/*"], - "exclude": ["dist"], "compilerOptions": { "resolveJsonModule": true, "jsx": "preserve",