diff --git a/astro.config.mjs b/astro.config.mjs index 455f573..03cf130 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -4,10 +4,12 @@ import prefetch from '@astrojs/prefetch'; import sitemap from '@astrojs/sitemap'; import tailwind from '@astrojs/tailwind'; import { astroImageTools } from 'astro-imagetools'; +import webmanifest from 'astro-webmanifest'; import { defineConfig } from 'astro/config'; + +import { site } from './src/data/site'; import { remarkReadingTime, remarkWidont } from './src/utils'; -// https://astro.build/config export default defineConfig({ site: 'https://www.stefanimhoff.de', markdown: { @@ -32,5 +34,26 @@ export default defineConfig({ page !== 'https://www.stefanimhoff.de/cv/' && page !== 'https://www.stefanimhoff.de/imprint/', }), + webmanifest({ + name: site.title, + icons: [ + { + src: '/assets/images/branding/favicons/favicon-192.png', + sizes: '192x192', + type: 'image/png', + }, + { + src: '/assets/images/branding/favicons/favicon-512.png', + sizes: '512x512', + type: 'image/png', + }, + ], + short_name: site.title, + description: site.description, + start_url: '/', + theme_color: '#e7e6e4', + background_color: '#e7e6e4', + display: 'standalone', + }), ], }); diff --git a/package.json b/package.json index 4f42551..72b4c0f 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "astro-icon": "^0.8.0", "astro-imagetools": "^0.8.1", "astro-seo": "^0.7.4", + "astro-webmanifest": "^0.6.0", "autoprefixer": "^10.4.14", "chart.js": "^4.3.0", "chartjs-plugin-autocolors": "^0.2.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 540cf68..a23f663 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,6 +39,9 @@ dependencies: astro-seo: specifier: ^0.7.4 version: 0.7.4 + astro-webmanifest: + specifier: ^0.6.0 + version: 0.6.0 autoprefixer: specifier: ^10.4.14 version: 10.4.14(postcss@8.4.24) @@ -3602,6 +3605,14 @@ packages: resolution: {integrity: sha512-E+wJmxOnvBRjgzVctdGk/VdwoEqeQ6Q/KgVW2wRBXZWJVDgOweB32Da/UiH0/FpGncPzo2daOrc08DNn5wTanw==} dev: false + /astro-webmanifest@0.6.0: + resolution: {integrity: sha512-dHfjne0OXQwTgDmXPgo6NWxiXr3DFcFNNAm/SLAd0tbKCCXNWseC9vnW0irJF1WUQfAODNZgneRwKhFjleQssw==} + dependencies: + sharp: 0.31.3 + valid-filename: 4.0.0 + zod: 3.21.4 + dev: false + /astro@2.5.5(@types/node@17.0.45)(sharp@0.32.1): resolution: {integrity: sha512-VRwnlfRtPALeOxfE4e7To5Vlu9pGwlTRWN1zkn1QTizwfg0rLirFTm6t2MCG/fUhlu/p3QO9tz8SpAIyDq53/Q==} engines: {node: '>=16.12.0', npm: '>=6.14.0'} @@ -6139,7 +6150,6 @@ packages: /filename-reserved-regex@3.0.0: resolution: {integrity: sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true /filenamify@5.1.1: resolution: {integrity: sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA==} @@ -9519,6 +9529,10 @@ packages: dev: false optional: true + /node-addon-api@5.1.0: + resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} + dev: false + /node-addon-api@6.1.0: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} dev: false @@ -11896,6 +11910,21 @@ packages: dev: false optional: true + /sharp@0.31.3: + resolution: {integrity: sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg==} + engines: {node: '>=14.15.0'} + requiresBuild: true + dependencies: + color: 4.2.3 + detect-libc: 2.0.1 + node-addon-api: 5.1.0 + prebuild-install: 7.1.1 + semver: 7.5.1 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: false + /sharp@0.32.1: resolution: {integrity: sha512-kQTFtj7ldpUqSe8kDxoGLZc1rnMFU0AO2pqbX6pLy3b7Oj8ivJIdoKNwxHVQG2HN6XpHPJqCSM2nsma2gOXvOg==} engines: {node: '>=14.15.0'} @@ -13318,6 +13347,13 @@ packages: engines: {node: '>= 10.13.0'} dev: true + /valid-filename@4.0.0: + resolution: {integrity: sha512-VEYTpTVPMgO799f2wI7zWf0x2C54bPX6NAfbZ2Z8kZn76p+3rEYCTYVYzMUcVSMvakxMQTriBf24s3+WeXJtEg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + filename-reserved-regex: 3.0.0 + dev: false + /validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: