summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoão Augusto Costa Branco Marado Torres <torres.dev@disroot.org>2025-06-29 22:11:01 -0300
committerJoão Augusto Costa Branco Marado Torres <torres.dev@disroot.org>2025-06-29 22:11:01 -0300
commitcbcd32f25e9a7299d44e9dbff240c9926f0e356b (patch)
treeb4de9cddc66457c9fc759dac9a51ccc9356856c8
parent748149806d5b415e4b9343ae5c4a04523f61be22 (diff)
feat: manifest
Signed-off-by: João Augusto Costa Branco Marado Torres <torres.dev@disroot.org>
-rw-r--r--deno.lock125
-rw-r--r--public/cravodeabril.pt_.pngbin0 -> 299972 bytes
-rw-r--r--public/cravodeabril.pt_mobile.pngbin0 -> 1081455 bytes
-rw-r--r--public/favicon-96.webpbin0 -> 804 bytes
-rw-r--r--public/favicon.svg5
-rw-r--r--public/favicon.webpbin0 -> 1116 bytes
-rw-r--r--public/manifest.webmanifest84
-rw-r--r--src/components/BaseHead.astro6
8 files changed, 215 insertions, 5 deletions
diff --git a/deno.lock b/deno.lock
index 56974c3..80b6541 100644
--- a/deno.lock
+++ b/deno.lock
@@ -24,7 +24,8 @@
"npm:@t3-oss/env-core@~0.13.8": "0.13.8_typescript@5.8.3_zod@3.25.67",
"npm:@types/mdast@*": "4.0.4",
"npm:@types/mdast@^4.0.4": "4.0.4",
- "npm:astro@5.10.1": "5.10.1_typescript@5.8.3_vite@6.3.5__picomatch@4.0.2_zod@3.25.67",
+ "npm:@types/node@*": "22.15.15",
+ "npm:astro@5.10.1": "5.10.1_typescript@5.8.3_vite@6.3.5__picomatch@4.0.2_zod@3.25.67_@types+node@22.15.15",
"npm:openpgp@^6.1.1": "6.1.1",
"npm:reading-time@^1.5.0": "1.5.0",
"npm:rehype-external-links@3": "3.0.0",
@@ -38,7 +39,7 @@
"npm:unified@^11.0.5": "11.0.5",
"npm:unist-util-visit@5": "5.0.0",
"npm:vfile@^6.0.3": "6.0.3",
- "npm:vite@7": "7.0.0_picomatch@4.0.2",
+ "npm:vite@7": "7.0.0_picomatch@4.0.2_@types+node@22.15.15",
"npm:yaqrcode@~0.2.1": "0.2.1",
"npm:zod@^3.25.67": "3.25.67"
},
@@ -84,6 +85,7 @@
"integrity": "144b3737105b9071cb50c957681f58a1b8ec0f3e5b19ad830f401c5fa931e8f0",
"dependencies": [
"jsr:@std/assert",
+ "jsr:@std/async",
"jsr:@std/data-structures",
"jsr:@std/fs@^1.0.18",
"jsr:@std/internal@^1.0.8",
@@ -964,7 +966,77 @@
"unstorage",
"vfile",
"vite@6.3.5_picomatch@4.0.2",
- "vitefu",
+ "vitefu@1.0.7_vite@6.3.5__picomatch@4.0.2",
+ "xxhash-wasm",
+ "yargs-parser",
+ "yocto-spinner",
+ "zod",
+ "zod-to-json-schema",
+ "zod-to-ts"
+ ],
+ "optionalDependencies": [
+ "sharp"
+ ],
+ "bin": true
+ },
+ "astro@5.10.1_typescript@5.8.3_vite@6.3.5__picomatch@4.0.2_zod@3.25.67_@types+node@22.15.15": {
+ "integrity": "sha512-DJVmt+51jU1xmgmAHCDwuUgcG/5aVFSU+tcX694acAZqPVt8EMUAmUZcJDX36Z7/EztnPph9HR3pm72jS2EgHQ==",
+ "dependencies": [
+ "@astrojs/compiler",
+ "@astrojs/internal-helpers",
+ "@astrojs/markdown-remark",
+ "@astrojs/telemetry",
+ "@capsizecss/unpack",
+ "@oslojs/encoding",
+ "@rollup/pluginutils",
+ "acorn",
+ "aria-query",
+ "axobject-query",
+ "boxen",
+ "ci-info",
+ "clsx",
+ "common-ancestor-path",
+ "cookie",
+ "cssesc",
+ "debug",
+ "deterministic-object-hash",
+ "devalue",
+ "diff",
+ "dlv",
+ "dset",
+ "es-module-lexer",
+ "esbuild",
+ "estree-walker@3.0.3",
+ "flattie",
+ "fontace",
+ "github-slugger",
+ "html-escaper",
+ "http-cache-semantics",
+ "import-meta-resolve",
+ "js-yaml",
+ "kleur@4.1.5",
+ "magic-string",
+ "magicast",
+ "mrmime",
+ "neotraverse",
+ "p-limit",
+ "p-queue",
+ "package-manager-detector",
+ "picomatch@4.0.2",
+ "prompts",
+ "rehype",
+ "semver",
+ "shiki",
+ "tinyexec",
+ "tinyglobby",
+ "tsconfck",
+ "ultrahtml",
+ "unifont",
+ "unist-util-visit",
+ "unstorage",
+ "vfile",
+ "vite@6.3.5_picomatch@4.0.2_@types+node@22.15.15",
+ "vitefu@1.0.7_vite@6.3.5__picomatch@4.0.2_@types+node@22.15.15",
"xxhash-wasm",
"yargs-parser",
"yocto-spinner",
@@ -2657,6 +2729,25 @@
],
"bin": true
},
+ "vite@6.3.5_picomatch@4.0.2_@types+node@22.15.15": {
+ "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==",
+ "dependencies": [
+ "@types/node@22.15.15",
+ "esbuild",
+ "fdir",
+ "picomatch@4.0.2",
+ "postcss",
+ "rollup",
+ "tinyglobby"
+ ],
+ "optionalDependencies": [
+ "fsevents"
+ ],
+ "optionalPeers": [
+ "@types/node@22.15.15"
+ ],
+ "bin": true
+ },
"vite@7.0.0_picomatch@4.0.2": {
"integrity": "sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==",
"dependencies": [
@@ -2672,6 +2763,25 @@
],
"bin": true
},
+ "vite@7.0.0_picomatch@4.0.2_@types+node@22.15.15": {
+ "integrity": "sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==",
+ "dependencies": [
+ "@types/node@22.15.15",
+ "esbuild",
+ "fdir",
+ "picomatch@4.0.2",
+ "postcss",
+ "rollup",
+ "tinyglobby"
+ ],
+ "optionalDependencies": [
+ "fsevents"
+ ],
+ "optionalPeers": [
+ "@types/node@22.15.15"
+ ],
+ "bin": true
+ },
"vitefu@1.0.7_vite@6.3.5__picomatch@4.0.2": {
"integrity": "sha512-eRWXLBbJjW3X5z5P5IHcSm2yYbYRPb2kQuc+oqsbAl99WB5kVsPbiiox+cymo8twTzifA6itvhr2CmjnaZZp0Q==",
"dependencies": [
@@ -2681,6 +2791,15 @@
"vite@6.3.5_picomatch@4.0.2"
]
},
+ "vitefu@1.0.7_vite@6.3.5__picomatch@4.0.2_@types+node@22.15.15": {
+ "integrity": "sha512-eRWXLBbJjW3X5z5P5IHcSm2yYbYRPb2kQuc+oqsbAl99WB5kVsPbiiox+cymo8twTzifA6itvhr2CmjnaZZp0Q==",
+ "dependencies": [
+ "vite@6.3.5_picomatch@4.0.2_@types+node@22.15.15"
+ ],
+ "optionalPeers": [
+ "vite@6.3.5_picomatch@4.0.2_@types+node@22.15.15"
+ ]
+ },
"volar-service-css@0.0.62_@volar+language-service@2.4.15": {
"integrity": "sha512-JwNyKsH3F8PuzZYuqPf+2e+4CTU8YoyUHEHVnoXNlrLe7wy9U3biomZ56llN69Ris7TTy/+DEX41yVxQpM4qvg==",
"dependencies": [
diff --git a/public/cravodeabril.pt_.png b/public/cravodeabril.pt_.png
new file mode 100644
index 0000000..aee29c0
--- /dev/null
+++ b/public/cravodeabril.pt_.png
Binary files differ
diff --git a/public/cravodeabril.pt_mobile.png b/public/cravodeabril.pt_mobile.png
new file mode 100644
index 0000000..a29e455
--- /dev/null
+++ b/public/cravodeabril.pt_mobile.png
Binary files differ
diff --git a/public/favicon-96.webp b/public/favicon-96.webp
new file mode 100644
index 0000000..d161ad6
--- /dev/null
+++ b/public/favicon-96.webp
Binary files differ
diff --git a/public/favicon.svg b/public/favicon.svg
index 682932f..6dbe0b2 100644
--- a/public/favicon.svg
+++ b/public/favicon.svg
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="32" height="32">
- <rect width="42" height="32" fill="#d00"/>
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="144" height="144" viewBox="0 0 144 144">
+ <circle cx="72" cy="72" r="57.6" fill="#d00"/>
</svg>
+
diff --git a/public/favicon.webp b/public/favicon.webp
new file mode 100644
index 0000000..77c177f
--- /dev/null
+++ b/public/favicon.webp
Binary files differ
diff --git a/public/manifest.webmanifest b/public/manifest.webmanifest
new file mode 100644
index 0000000..c227c96
--- /dev/null
+++ b/public/manifest.webmanifest
@@ -0,0 +1,84 @@
+{
+ "$schema": "https://json.schemastore.org/web-manifest",
+ "lang": "pt-PT",
+ "dir": "ltr",
+ "name": "Cravo de Abril",
+ "description": "Um domínio da liberdade!",
+ "name_localized": {
+ "pt-BR": {
+ "value": "Cravo de Abril"
+ }
+ },
+ "short_name": "Cravo Abril",
+ "icons": [
+ {
+ "src": "./favicon.svg",
+ "sizes": "any",
+ "type": "image/svg",
+ "purpose": "any"
+ },
+ {
+ "src": "./favicon.webp",
+ "sizes": "144x144",
+ "type": "image/webp",
+ "purpose": "any"
+ },
+ {
+ "src": "./favicon-96.webp",
+ "sizes": "96x96",
+ "type": "image/svg",
+ "purpose": "any"
+ }
+ ],
+ "icons_localized": {},
+ "scope": "/",
+ "id": "cravodeabril",
+ "start_url": "/",
+ "display": "minimal-ui",
+ "orientation": "natural",
+ "theme_color": "oklch(0.4564 0.1835 20.81)",
+ "background_color": "white",
+ "shortcuts": [
+ {
+ "name": "Publicações",
+ "description": "Leia as últimas publicações",
+ "url": "/blog",
+ "icons": [
+ {
+ "src": "./favicon-96.webp",
+ "sizes": "96x96",
+ "type": "image/svg",
+ "purpose": "any"
+ }
+ ]
+ },
+ {
+ "name": "Micro Blogue",
+ "description": "Leia as últimas postagens no micro blogue",
+ "url": "/blog/micro/1",
+ "icons": [
+ {
+ "src": "./favicon-96.webp",
+ "sizes": "96x96",
+ "type": "image/svg",
+ "purpose": "any"
+ }
+ ]
+ }
+ ],
+ "screenshots": [
+ {
+ "src": "/cravodeabril.pt_.png",
+ "sizes": "2048x1440",
+ "type": "image/png",
+ "form_factor": "wide",
+ "label": "Página inicial que mostra as últimas publicações e links de navegação"
+ },
+ {
+ "src": "/cravodeabril.pt_mobile.png",
+ "sizes": "1819x3840",
+ "type": "image/png",
+ "label": "Página inicial que mostra as últimas publicações e links de navegação"
+ }
+ ]
+}
diff --git a/src/components/BaseHead.astro b/src/components/BaseHead.astro
index b4dbb74..552f87c 100644
--- a/src/components/BaseHead.astro
+++ b/src/components/BaseHead.astro
@@ -34,7 +34,13 @@ const {
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
+<link rel="manifest" href="manifest.webmanifest" />
+
+<meta name="application-name" content={PUBLIC_SITE_TITLE} />
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
+<link rel="icon" type="image/webp" sizes="144x144" href="/favicon.webp" />
+<link rel="icon" type="image/webp" sizes="96x96" href="/favicon-96.webp" />
<link rel="sitemap" href="/sitemap-index.xml" />
<link
rel="alternate"