From dcf9175dbbe1d412d13b99022b180825ec42254e Mon Sep 17 00:00:00 2001
From: Melih DARCAN <57872471+MelihDarcanxyz@users.noreply.github.com>
Date: Tue, 3 Sep 2024 11:16:34 +0300
Subject: [PATCH 1/9] format: run pnpm format
---
src/components/blog/Masthead.astro | 8 ++++++--
src/components/blog/webmentions/Comments.astro | 2 +-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/components/blog/Masthead.astro b/src/components/blog/Masthead.astro
index 20cf53832..900f1926b 100644
--- a/src/components/blog/Masthead.astro
+++ b/src/components/blog/Masthead.astro
@@ -43,7 +43,8 @@ const dateTimeOptions: Intl.DateTimeFormatOptions = {
{
data.updatedDate && (
- Updated:
+ Updated:
+
)
}
@@ -75,7 +76,10 @@ const dateTimeOptions: Intl.DateTimeFormatOptions = {
class="cactus-link inline-block before:content-['#']"
data-pagefind-filter="tag"
href={`/tags/${tag}/`}
- >{tag}{i < data.tags.length - 1 && ", "}
+ >
+ {tag}
+
+ {i < data.tags.length - 1 && ", "}
>
))}
diff --git a/src/components/blog/webmentions/Comments.astro b/src/components/blog/webmentions/Comments.astro
index d076b70ee..40dac4ad1 100644
--- a/src/components/blog/webmentions/Comments.astro
+++ b/src/components/blog/webmentions/Comments.astro
@@ -12,7 +12,7 @@ const { mentions } = Astro.props;
const validComments = ["mention-of", "in-reply-to"];
const comments = mentions.filter(
- (mention) => validComments.includes(mention["wm-property"]) && mention.content?.text
+ (mention) => validComments.includes(mention["wm-property"]) && mention.content?.text,
);
/**
From 7fdd11fd2ef44f2fd3bdbb2d62ab5359a5f01444 Mon Sep 17 00:00:00 2001
From: Melih DARCAN <57872471+MelihDarcanxyz@users.noreply.github.com>
Date: Tue, 3 Sep 2024 11:26:17 +0300
Subject: [PATCH 2/9] feat: automatize robots.txt
This is important in my opinion, since a change of domain can result in many manual edits, hence can increase the risk of wrong domains in place. This is especially important for a template theme.
---
astro.config.ts | 2 ++
package.json | 1 +
pnpm-lock.yaml | 25 +++++++++++++++++++++++++
public/robots.txt | 4 ----
4 files changed, 28 insertions(+), 4 deletions(-)
delete mode 100644 public/robots.txt
diff --git a/astro.config.ts b/astro.config.ts
index 3a85820b8..19b4f683d 100644
--- a/astro.config.ts
+++ b/astro.config.ts
@@ -4,6 +4,7 @@ import sitemap from "@astrojs/sitemap";
import tailwind from "@astrojs/tailwind";
import expressiveCode from "astro-expressive-code";
import icon from "astro-icon";
+import robotsTxt from "astro-robots-txt";
import { defineConfig } from "astro/config";
import { expressiveCodeOptions } from "./src/site.config";
@@ -30,6 +31,7 @@ export default defineConfig({
}),
sitemap(),
mdx(),
+ robotsTxt(),
],
markdown: {
rehypePlugins: [
diff --git a/package.json b/package.json
index 0cdc4d241..70e5cc9ce 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,7 @@
"astro": "4.14.3",
"astro-expressive-code": "^0.35.6",
"astro-icon": "^1.1.1",
+ "astro-robots-txt": "^1.0.0",
"cssnano": "^7.0.5",
"hastscript": "^9.0.0",
"mdast-util-directive": "^3.0.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 81561340b..c4f09f787 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -29,6 +29,9 @@ importers:
astro-icon:
specifier: ^1.1.1
version: 1.1.1
+ astro-robots-txt:
+ specifier: ^1.0.0
+ version: 1.0.0
cssnano:
specifier: ^7.0.5
version: 7.0.5(postcss@8.4.41)
@@ -1056,6 +1059,9 @@ packages:
astro-icon@1.1.1:
resolution: {integrity: sha512-HKBesWk2Faw/0+klLX+epQVqdTfSzZz/9+5vxXUjTJaN/HnpDf608gRPgHh7ZtwBPNJMEFoU5GLegxoDcT56OQ==}
+ astro-robots-txt@1.0.0:
+ resolution: {integrity: sha512-6JQSLid4gMhoWjOm85UHLkgrw0+hHIjnJVIUqxjU2D6feKlVyYukMNYjH44ZDZBK1P8hNxd33PgWlHzCASvedA==}
+
astro@4.14.3:
resolution: {integrity: sha512-+Hox1EhiS5iHy4pfZaLidpD9x7WVAcgGgjTo1JOYSQ0+a2ZA9mbLtGVEXbUeeYweviNc0ZNHMnI4r9S2e8xnXg==}
engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'}
@@ -1508,6 +1514,10 @@ packages:
fflate@0.7.4:
resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==}
+ filename-reserved-regex@3.0.0:
+ resolution: {integrity: sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
fill-range@7.1.1:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
@@ -2999,6 +3009,10 @@ packages:
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+ valid-filename@4.0.0:
+ resolution: {integrity: sha512-VEYTpTVPMgO799f2wI7zWf0x2C54bPX6NAfbZ2Z8kZn76p+3rEYCTYVYzMUcVSMvakxMQTriBf24s3+WeXJtEg==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
vfile-location@5.0.3:
resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
@@ -4219,6 +4233,11 @@ snapshots:
- debug
- supports-color
+ astro-robots-txt@1.0.0:
+ dependencies:
+ valid-filename: 4.0.0
+ zod: 3.23.8
+
astro@4.14.3(@types/node@22.4.2)(rollup@4.21.0)(typescript@5.5.4):
dependencies:
'@astrojs/compiler': 2.10.3
@@ -4812,6 +4831,8 @@ snapshots:
fflate@0.7.4: {}
+ filename-reserved-regex@3.0.0: {}
+
fill-range@7.1.1:
dependencies:
to-regex-range: 5.0.1
@@ -6711,6 +6732,10 @@ snapshots:
util-deprecate@1.0.2: {}
+ valid-filename@4.0.0:
+ dependencies:
+ filename-reserved-regex: 3.0.0
+
vfile-location@5.0.3:
dependencies:
'@types/unist': 3.0.3
diff --git a/public/robots.txt b/public/robots.txt
deleted file mode 100644
index 33713a8a4..000000000
--- a/public/robots.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-User-agent: *
-Allow: /
-
-Sitemap: https://astro-cactus.chriswilliams.dev/sitemap-index.xml
\ No newline at end of file
From 2c625ad75c6724ccaa8b1d696609f03bb10e2379 Mon Sep 17 00:00:00 2001
From: Melih DARCAN <57872471+MelihDarcanxyz@users.noreply.github.com>
Date: Tue, 3 Sep 2024 12:18:10 +0300
Subject: [PATCH 3/9] feat: automatize webmanifest/icon handling
User can change the `icon.svg` and forget about icons now. It's automatically handled by `astro-webmanifest`. Multiple sizes are generated including Apple touch icons.
Also, webmanifest config takes it inputs largely from `siteConfig` which makes it robust to the manual edits. Change the site config and you're ready.
---
astro.config.ts | 28 +++
package.json | 1 +
pnpm-lock.yaml | 326 ++++++++++++++++++++++++++++++++++
public/192x192.png | Bin 4547 -> 0 bytes
public/512x512.png | Bin 4316 -> 0 bytes
public/apple-touch-icon.png | Bin 7243 -> 0 bytes
public/favicon.ico | Bin 15406 -> 0 bytes
public/manifest.webmanifest | 21 ---
src/components/BaseHead.astro | 4 -
{public => src}/icon.svg | 0
10 files changed, 355 insertions(+), 25 deletions(-)
delete mode 100644 public/192x192.png
delete mode 100644 public/512x512.png
delete mode 100644 public/apple-touch-icon.png
delete mode 100644 public/favicon.ico
delete mode 100644 public/manifest.webmanifest
rename {public => src}/icon.svg (100%)
diff --git a/astro.config.ts b/astro.config.ts
index 19b4f683d..c75189cfb 100644
--- a/astro.config.ts
+++ b/astro.config.ts
@@ -5,8 +5,10 @@ import tailwind from "@astrojs/tailwind";
import expressiveCode from "astro-expressive-code";
import icon from "astro-icon";
import robotsTxt from "astro-robots-txt";
+import webmanifest from "astro-webmanifest";
import { defineConfig } from "astro/config";
import { expressiveCodeOptions } from "./src/site.config";
+import { siteConfig } from "./src/site.config";
// Remark plugins
import remarkDirective from "remark-directive"; /* Handle ::: directives as nodes */
@@ -32,6 +34,32 @@ export default defineConfig({
sitemap(),
mdx(),
robotsTxt(),
+ webmanifest({
+ /**
+ * required
+ **/
+ name: siteConfig.title,
+
+ /**
+ * optional
+ **/
+ // short_name: "Astro_Cactus",
+ description: siteConfig.description,
+ lang: siteConfig.lang,
+ icon: "src/icon.svg", // source for favicon & icons
+ start_url: "/",
+ background_color: "#1d1f21",
+ theme_color: "#2bbc8a",
+ display: "standalone",
+
+ config: {
+ outfile: "site.webmanifest",
+ createFavicon: true,
+ insertFaviconLinks: true,
+ insertManifestLink: true,
+ insertAppleTouchLinks: true,
+ },
+ }),
],
markdown: {
rehypePlugins: [
diff --git a/package.json b/package.json
index 70e5cc9ce..e68cdb650 100644
--- a/package.json
+++ b/package.json
@@ -23,6 +23,7 @@
"astro-expressive-code": "^0.35.6",
"astro-icon": "^1.1.1",
"astro-robots-txt": "^1.0.0",
+ "astro-webmanifest": "^1.0.0",
"cssnano": "^7.0.5",
"hastscript": "^9.0.0",
"mdast-util-directive": "^3.0.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c4f09f787..bd521806f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -32,6 +32,9 @@ importers:
astro-robots-txt:
specifier: ^1.0.0
version: 1.0.0
+ astro-webmanifest:
+ specifier: ^1.0.0
+ version: 1.0.0
cssnano:
specifier: ^7.0.5
version: 7.0.5(postcss@8.4.41)
@@ -1062,6 +1065,9 @@ packages:
astro-robots-txt@1.0.0:
resolution: {integrity: sha512-6JQSLid4gMhoWjOm85UHLkgrw0+hHIjnJVIUqxjU2D6feKlVyYukMNYjH44ZDZBK1P8hNxd33PgWlHzCASvedA==}
+ astro-webmanifest@1.0.0:
+ resolution: {integrity: sha512-ar8SZuFf8k2XuqAYpiaiGmzgpqVufyPx0A9d8OljPup+Sgs+1trG2bpvo7JcM+m4L3figPaYEZOy1rRawCEU0w==}
+
astro@4.14.3:
resolution: {integrity: sha512-+Hox1EhiS5iHy4pfZaLidpD9x7WVAcgGgjTo1JOYSQ0+a2ZA9mbLtGVEXbUeeYweviNc0ZNHMnI4r9S2e8xnXg==}
engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'}
@@ -1084,12 +1090,30 @@ packages:
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
engines: {node: '>= 0.4'}
+ b4a@1.6.6:
+ resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==}
+
bail@2.0.2:
resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ bare-events@2.4.2:
+ resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==}
+
+ bare-fs@2.3.3:
+ resolution: {integrity: sha512-7RYKL+vZVCyAsMLi5SPu7QGauGGT8avnP/HO571ndEuV4MYdGXvLhtW67FuLPeEI8EiIY7zbbRR9x7x7HU0kgw==}
+
+ bare-os@2.4.2:
+ resolution: {integrity: sha512-HZoJwzC+rZ9lqEemTMiO0luOePoGYNBgsLLgegKR/cljiJvcDNhDZQkzC+NC5Oh0aHbdBNSOHpghwMuB5tqhjg==}
+
+ bare-path@2.1.3:
+ resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==}
+
+ bare-stream@2.2.0:
+ resolution: {integrity: sha512-+o9MG5bPRRBlkVSpfFlMag3n7wMaIZb4YZasU2+/96f+3HTQ4F9DKQeu3K/Sjz1W0umu6xvVq1ON0ipWdMlr3A==}
+
base-64@1.0.0:
resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==}
@@ -1097,6 +1121,9 @@ packages:
resolution: {integrity: sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==}
engines: {node: '>= 0.4'}
+ base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+
bcp-47-match@2.0.3:
resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==}
@@ -1104,6 +1131,9 @@ packages:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
+ bl@4.1.0:
+ resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
+
boolbase@1.0.0:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
@@ -1126,6 +1156,9 @@ packages:
buffer-crc32@0.2.13:
resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
+ buffer@5.7.1:
+ resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
+
camelcase-css@2.0.1:
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
engines: {node: '>= 6'}
@@ -1177,6 +1210,9 @@ packages:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
+ chownr@1.1.4:
+ resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
+
chownr@2.0.0:
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
engines: {node: '>=10'}
@@ -1339,6 +1375,14 @@ packages:
decode-named-character-reference@1.0.2:
resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
+ decompress-response@6.0.0:
+ resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
+ engines: {node: '>=10'}
+
+ deep-extend@0.6.0:
+ resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
+ engines: {node: '>=4.0.0'}
+
delayed-stream@1.0.0:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: '>=0.4.0'}
@@ -1476,6 +1520,10 @@ packages:
resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
engines: {node: '>=16.17'}
+ expand-template@2.0.3:
+ resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
+ engines: {node: '>=6'}
+
expressive-code@0.35.6:
resolution: {integrity: sha512-+mx+TPTbMqgo0mL92Xh9QgjW0kSQIsEivMgEcOnaqKqL7qCw8Vkqc5Rg/di7ZYw4aMUSr74VTc+w8GQWu05j1g==}
@@ -1494,6 +1542,9 @@ packages:
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+ fast-fifo@1.3.2:
+ resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
+
fast-glob@3.3.2:
resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
engines: {node: '>=8.6.0'}
@@ -1557,6 +1608,9 @@ packages:
fraction.js@4.3.7:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
+ fs-constants@1.0.0:
+ resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
+
fs-minipass@2.1.0:
resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
engines: {node: '>= 8'}
@@ -1589,6 +1643,9 @@ packages:
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
engines: {node: '>=16'}
+ github-from-package@0.0.0:
+ resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
+
github-slugger@2.0.0:
resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==}
@@ -1695,9 +1752,18 @@ packages:
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
engines: {node: '>=0.10.0'}
+ ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+
import-meta-resolve@4.1.0:
resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==}
+ inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
+ ini@1.3.8:
+ resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
+
inline-style-parser@0.1.1:
resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
@@ -2105,10 +2171,17 @@ packages:
resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
engines: {node: '>=12'}
+ mimic-response@3.1.0:
+ resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
+ engines: {node: '>=10'}
+
minimatch@9.0.5:
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
engines: {node: '>=16 || 14 >=14.17'}
+ minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+
minipass@3.3.6:
resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
engines: {node: '>=8'}
@@ -2129,6 +2202,9 @@ packages:
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
engines: {node: '>= 8'}
+ mkdirp-classic@0.5.3:
+ resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
+
mkdirp@1.0.4:
resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
engines: {node: '>=10'}
@@ -2155,6 +2231,9 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
+ napi-build-utils@1.0.2:
+ resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
+
neotraverse@0.6.18:
resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==}
engines: {node: '>= 10'}
@@ -2162,6 +2241,13 @@ packages:
nlcst-to-string@4.0.0:
resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==}
+ node-abi@3.67.0:
+ resolution: {integrity: sha512-bLn/fU/ALVBE9wj+p4Y21ZJWYFjUXLXPi/IewyLZkx3ApxKDNBWCKdReeKOtD8dWpOdDCeMyLh6ZewzcLsG2Nw==}
+ engines: {node: '>=10'}
+
+ node-addon-api@6.1.0:
+ resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==}
+
node-releases@2.0.18:
resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
@@ -2532,6 +2618,11 @@ packages:
resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==}
engines: {node: ^10 || ^12 || >=14}
+ prebuild-install@7.1.2:
+ resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==}
+ engines: {node: '>=10'}
+ hasBin: true
+
preferred-pm@4.0.0:
resolution: {integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==}
engines: {node: '>=18.12'}
@@ -2625,9 +2716,20 @@ packages:
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ queue-tick@1.0.1:
+ resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==}
+
+ rc@1.2.8:
+ resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
+ hasBin: true
+
read-cache@1.0.0:
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
+ readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+ engines: {node: '>= 6'}
+
readdirp@3.6.0:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
@@ -2727,6 +2829,9 @@ packages:
s.color@0.0.15:
resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==}
+ safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
@@ -2756,6 +2861,10 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ sharp@0.32.6:
+ resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==}
+ engines: {node: '>=14.15.0'}
+
sharp@0.33.5:
resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
@@ -2778,6 +2887,12 @@ packages:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
+ simple-concat@1.0.1:
+ resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
+
+ simple-get@4.0.1:
+ resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
+
simple-swizzle@0.2.2:
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
@@ -2810,6 +2925,9 @@ packages:
stream-replace-string@2.0.0:
resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==}
+ streamx@2.20.0:
+ resolution: {integrity: sha512-ZGd1LhDeGFucr1CUCTBOS58ZhEendd0ttpGT3usTvosS4ntIwKN9LJFp+OeCSprsCPL14BXVRZlHGRY1V9PVzQ==}
+
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -2825,6 +2943,9 @@ packages:
string.prototype.codepointat@0.2.1:
resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==}
+ string_decoder@1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+
stringify-entities@4.0.4:
resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
@@ -2848,6 +2969,10 @@ packages:
resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
engines: {node: '>=12'}
+ strip-json-comments@2.0.1:
+ resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
+ engines: {node: '>=0.10.0'}
+
strnum@1.0.5:
resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
@@ -2889,10 +3014,26 @@ packages:
engines: {node: '>=14.0.0'}
hasBin: true
+ tar-fs@2.1.1:
+ resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
+
+ tar-fs@3.0.6:
+ resolution: {integrity: sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==}
+
+ tar-stream@2.2.0:
+ resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
+ engines: {node: '>=6'}
+
+ tar-stream@3.1.7:
+ resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==}
+
tar@6.2.1:
resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
engines: {node: '>=10'}
+ text-decoder@1.1.1:
+ resolution: {integrity: sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==}
+
thenify-all@1.6.0:
resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
engines: {node: '>=0.8'}
@@ -2936,6 +3077,9 @@ packages:
tslib@2.6.3:
resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==}
+ tunnel-agent@0.6.0:
+ resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
+
type-fest@2.19.0:
resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
engines: {node: '>=12.20'}
@@ -4238,6 +4382,12 @@ snapshots:
valid-filename: 4.0.0
zod: 3.23.8
+ astro-webmanifest@1.0.0:
+ dependencies:
+ sharp: 0.32.6
+ valid-filename: 4.0.0
+ zod: 3.23.8
+
astro@4.14.3(@types/node@22.4.2)(rollup@4.21.0)(typescript@5.5.4):
dependencies:
'@astrojs/compiler': 2.10.3
@@ -4354,18 +4504,51 @@ snapshots:
axobject-query@4.1.0: {}
+ b4a@1.6.6: {}
+
bail@2.0.2: {}
balanced-match@1.0.2: {}
+ bare-events@2.4.2:
+ optional: true
+
+ bare-fs@2.3.3:
+ dependencies:
+ bare-events: 2.4.2
+ bare-path: 2.1.3
+ bare-stream: 2.2.0
+ optional: true
+
+ bare-os@2.4.2:
+ optional: true
+
+ bare-path@2.1.3:
+ dependencies:
+ bare-os: 2.4.2
+ optional: true
+
+ bare-stream@2.2.0:
+ dependencies:
+ streamx: 2.20.0
+ optional: true
+
base-64@1.0.0: {}
base64-js@0.0.8: {}
+ base64-js@1.5.1: {}
+
bcp-47-match@2.0.3: {}
binary-extensions@2.3.0: {}
+ bl@4.1.0:
+ dependencies:
+ buffer: 5.7.1
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+
boolbase@1.0.0: {}
boxen@7.1.1:
@@ -4396,6 +4579,11 @@ snapshots:
buffer-crc32@0.2.13: {}
+ buffer@5.7.1:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
camelcase-css@2.0.1: {}
camelcase@7.0.1: {}
@@ -4464,6 +4652,8 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
+ chownr@1.1.4: {}
+
chownr@2.0.0: {}
ci-info@4.0.0: {}
@@ -4630,6 +4820,12 @@ snapshots:
dependencies:
character-entities: 2.0.2
+ decompress-response@6.0.0:
+ dependencies:
+ mimic-response: 3.1.0
+
+ deep-extend@0.6.0: {}
+
delayed-stream@1.0.0: {}
dequal@2.0.3: {}
@@ -4782,6 +4978,8 @@ snapshots:
signal-exit: 4.1.0
strip-final-newline: 3.0.0
+ expand-template@2.0.3: {}
+
expressive-code@0.35.6:
dependencies:
'@expressive-code/core': 0.35.6
@@ -4807,6 +5005,8 @@ snapshots:
fast-deep-equal@3.1.3: {}
+ fast-fifo@1.3.2: {}
+
fast-glob@3.3.2:
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -4866,6 +5066,8 @@ snapshots:
fraction.js@4.3.7: {}
+ fs-constants@1.0.0: {}
+
fs-minipass@2.1.0:
dependencies:
minipass: 3.3.6
@@ -4887,6 +5089,8 @@ snapshots:
get-stream@8.0.1: {}
+ github-from-package@0.0.0: {}
+
github-slugger@2.0.0: {}
glob-parent@5.1.2:
@@ -5108,8 +5312,14 @@ snapshots:
dependencies:
safer-buffer: 2.1.2
+ ieee754@1.2.1: {}
+
import-meta-resolve@4.1.0: {}
+ inherits@2.0.4: {}
+
+ ini@1.3.8: {}
+
inline-style-parser@0.1.1: {}
inline-style-parser@0.2.3: {}
@@ -5751,10 +5961,14 @@ snapshots:
mimic-fn@4.0.0: {}
+ mimic-response@3.1.0: {}
+
minimatch@9.0.5:
dependencies:
brace-expansion: 2.0.1
+ minimist@1.2.8: {}
+
minipass@3.3.6:
dependencies:
yallist: 4.0.0
@@ -5770,6 +5984,8 @@ snapshots:
minipass: 3.3.6
yallist: 4.0.0
+ mkdirp-classic@0.5.3: {}
+
mkdirp@1.0.4: {}
mlly@1.7.1:
@@ -5793,12 +6009,20 @@ snapshots:
nanoid@3.3.7: {}
+ napi-build-utils@1.0.2: {}
+
neotraverse@0.6.18: {}
nlcst-to-string@4.0.0:
dependencies:
'@types/nlcst': 2.0.3
+ node-abi@3.67.0:
+ dependencies:
+ semver: 7.6.3
+
+ node-addon-api@6.1.0: {}
+
node-releases@2.0.18: {}
normalize-path@3.0.0: {}
@@ -6167,6 +6391,21 @@ snapshots:
picocolors: 1.0.1
source-map-js: 1.2.0
+ prebuild-install@7.1.2:
+ dependencies:
+ detect-libc: 2.0.3
+ expand-template: 2.0.3
+ github-from-package: 0.0.0
+ minimist: 1.2.8
+ mkdirp-classic: 0.5.3
+ napi-build-utils: 1.0.2
+ node-abi: 3.67.0
+ pump: 3.0.0
+ rc: 1.2.8
+ simple-get: 4.0.1
+ tar-fs: 2.1.1
+ tunnel-agent: 0.6.0
+
preferred-pm@4.0.0:
dependencies:
find-up-simple: 1.0.0
@@ -6208,10 +6447,25 @@ snapshots:
queue-microtask@1.2.3: {}
+ queue-tick@1.0.1: {}
+
+ rc@1.2.8:
+ dependencies:
+ deep-extend: 0.6.0
+ ini: 1.3.8
+ minimist: 1.2.8
+ strip-json-comments: 2.0.1
+
read-cache@1.0.0:
dependencies:
pify: 2.3.0
+ readable-stream@3.6.2:
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+
readdirp@3.6.0:
dependencies:
picomatch: 2.3.1
@@ -6393,6 +6647,8 @@ snapshots:
s.color@0.0.15: {}
+ safe-buffer@5.2.1: {}
+
safer-buffer@2.1.2: {}
sass-formatter@0.7.9:
@@ -6427,6 +6683,17 @@ snapshots:
semver@7.6.3: {}
+ sharp@0.32.6:
+ dependencies:
+ color: 4.2.3
+ detect-libc: 2.0.3
+ node-addon-api: 6.1.0
+ prebuild-install: 7.1.2
+ semver: 7.6.3
+ simple-get: 4.0.1
+ tar-fs: 3.0.6
+ tunnel-agent: 0.6.0
+
sharp@0.33.5:
dependencies:
color: 4.2.3
@@ -6468,6 +6735,14 @@ snapshots:
signal-exit@4.1.0: {}
+ simple-concat@1.0.1: {}
+
+ simple-get@4.0.1:
+ dependencies:
+ decompress-response: 6.0.0
+ once: 1.4.0
+ simple-concat: 1.0.1
+
simple-swizzle@0.2.2:
dependencies:
is-arrayish: 0.3.2
@@ -6493,6 +6768,14 @@ snapshots:
stream-replace-string@2.0.0: {}
+ streamx@2.20.0:
+ dependencies:
+ fast-fifo: 1.3.2
+ queue-tick: 1.0.1
+ text-decoder: 1.1.1
+ optionalDependencies:
+ bare-events: 2.4.2
+
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -6513,6 +6796,10 @@ snapshots:
string.prototype.codepointat@0.2.1: {}
+ string_decoder@1.3.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
stringify-entities@4.0.4:
dependencies:
character-entities-html4: 2.1.0
@@ -6532,6 +6819,8 @@ snapshots:
strip-final-newline@3.0.0: {}
+ strip-json-comments@2.0.1: {}
+
strnum@1.0.5: {}
style-to-object@0.4.4:
@@ -6605,6 +6894,35 @@ snapshots:
transitivePeerDependencies:
- ts-node
+ tar-fs@2.1.1:
+ dependencies:
+ chownr: 1.1.4
+ mkdirp-classic: 0.5.3
+ pump: 3.0.0
+ tar-stream: 2.2.0
+
+ tar-fs@3.0.6:
+ dependencies:
+ pump: 3.0.0
+ tar-stream: 3.1.7
+ optionalDependencies:
+ bare-fs: 2.3.3
+ bare-path: 2.1.3
+
+ tar-stream@2.2.0:
+ dependencies:
+ bl: 4.1.0
+ end-of-stream: 1.4.4
+ fs-constants: 1.0.0
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+
+ tar-stream@3.1.7:
+ dependencies:
+ b4a: 1.6.6
+ fast-fifo: 1.3.2
+ streamx: 2.20.0
+
tar@6.2.1:
dependencies:
chownr: 2.0.0
@@ -6614,6 +6932,10 @@ snapshots:
mkdirp: 1.0.4
yallist: 4.0.0
+ text-decoder@1.1.1:
+ dependencies:
+ b4a: 1.6.6
+
thenify-all@1.6.0:
dependencies:
thenify: 3.3.1
@@ -6645,6 +6967,10 @@ snapshots:
tslib@2.6.3:
optional: true
+ tunnel-agent@0.6.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
type-fest@2.19.0: {}
typesafe-path@0.2.2: {}
diff --git a/public/192x192.png b/public/192x192.png
deleted file mode 100644
index 341a8149f73df843b070cdb2a0f9ce03d1527bfa..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 4547
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
nEue1C4SuyU2e5@#i|R
diff --git a/public/512x512.png b/public/512x512.png
deleted file mode 100644
index d84a80f3d964ec07fd73620d6272a355c553863b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 4316
zcmcgwc~}$KvajwA30pAZf{F-n1viKYNF0=a$l?NFlU0aTo@B+g!f&QA93063cBpiZFS@lSJ~pn(!*yTKOVMuyhNW;Jxr40dwg0I+X9
z0GR?Xj3Dv@z-|^mCl6pn7Qoc#vt@4909Xlkz2_Q4Q1L*u2~%w%#wUTeDiBjee+AJ5
zApz)08OQzLjSpPOaFW=mx!0s-AFwaZuvNI@yKh7f_+bMf+M+x^gcPqPn%(g2W%2Jl
z@kDW0-Fm{K>Zpv1*Y7h9k|uxHse9j1EkAR8g9~y0;0lkLqdt$1Y^*xMtIzOwlI~M;
z$g?KRvpU_Q`lu>k+$)6#UcGz%pf9$)H16Ql(8hi9IwL1PN;3OLjKP_6o^4UOk~Ktv
z$W!73#dd^bwOa9Nio}5`aUeXZ(9kIV~+e;UsBE{l-mTR*+
zUUFnrx?p)1PxGe)%Q6RI&<}gzLcHM;&o>b5o;V8sbgbnMh1)8eh!eTq!~WQ9drF@V
zwkOk95jN?P$ieqv%DrTZkh}4HTQsvzaV4p%1Xm*t=lDDm%=LMgl61hSV4Zfv<%mn3
zQv&bAXNSy>KDQ;LDCWl>I0@-ol}dFmf3*f$Hm<OdhYk
zzPGo&SB}na2bv+ISI!|Bxy*`a5m$n4^?4Ocxky5CCDHZrdPXnH^z#ql$TqfR
zouj=dPV=ZXx}gc2H>{zxQyG(3)GxCAz3A)s%-P=7Gw#TCizx`$EN$9;#n!==;;l1Ch_dk?2fv(>}B$y
z4kN=ZzCrG}H_PPNuCe@2f6Pf?*s0I@`{nS$FGf1u9UhFFn)&`~uRX2#JU1k?py_wCF4bwt2TSF^wqXJJ9cWJemmLF
zk{iLgBbH-cE9$VN-Zll5PRL5Zw4?Z}-myu~Y_kZnSYbh>beU}9^GD-G^7Yb!hinSZ
z9?Iufv0u1bq_7!I=d-vLmq)M7R@r>`Ze?53i2q=r>XB*gVu9M$+CB=W>#pg&pt0Ht
zvuZu*rzt1-$wuH8wCn!J5%2G-4W$2=BAAHphYz2(yTq!xs(pxQrAcNqYph{-W*A=)
z^Jdz1nB(1GnL`?apKADcPK$h6JUDxEkK*USDw|loqS}D77JI7SN8u%Nsy6U0Y)`Ww
z(|XU}nsAd92%hB=O~$H`4YumjF}6a3Jg?gEc2IaXxEp&f97>6r`WY*>RTRZk{+*;k>1^or1KLz(r-|?
zZH{4{$qyl9lg6PV73(2WxJQa&VBXeC7`
z&RkvLHfSFGkj7SMNqH7o?jx5W`g8uW0^2AUzMitJDrh#mu~`wUqr{6n=z%?Y!SuYN
zhUeVq!+5bTJ#>mNA38rbPIttjU?Aa&bU4Q~$laoCSz(SLlsy^F$@!RD)ZrNBI{oz$
zb(rB_-Er1b^)go;XWpf&4jneuku&9I>kNFDMI*>%BhS%xhFXGkm{NIeU%|>!FikL
zJ>xPh(#xVLXar+g!e^O+(@!In5aOL|+Me)Hv|G!N<6vRsj-+d0n@n+dB+B6C&RyVC
zKs}La13zo>F6pf|83TqXnHa$;LJz2ePX(2)S|@-T(R7`<43X@0I9(mW(_YBNJ{S%i
z_ZXP}`h19u?AL&cSaazh4LP0nswftidZhcCQ(uR>7;^?$HfR9$1h;c^-dBd6B*FCgeo&<@bRnBQ@NEY#r`ipCby)ryzVfT=6ZNAe^rG7!n9lkUB$abH6!
zm=rihJc+kehl^B^Dv1Flx)D?odK1YVKZcAJZM2Y5s2~tYY`pXZ;aW+L!h}a?+YhDT>?Y!#Zf4dBgxE1?x
znFf{hL#KJ|{Ap5gn2&iSguWe}M`W$4O>(A2AAM&!9m*@h!6-MRh(ahjjb=y}d)qt(
z<1u@JH*}g#wz`_b_5Bwy?#NRrr{75LD|@o=A{IS(;+r(prV*M(w-R~ENpw=28xE6&
zHxZrvEI3HxJ46@jM~aCrs|ikj2P*b=#_WgQ|2_*-baq4znKvpRmEK2o`EChLrM
zuD>w48S<2T%Mqi4fiFXMPwvwuTjXzhgmD8F=PdbBQ%JS(X1`dQ;1=~I`~>oWf9H$g
z+IWxn9{oNV*;@Zr)+=5(r|4-Yj*RRX+%?Kmi&AB+YlOuI
z47_cIs)F{vXqPIHzcP2kxTmMT98xQOO|6J=Ozg*bLy{8ZA`4ozCfO=!Z>>*~x(T6l
zIQ@chku|NFO14H>BLh@%`5_h3UX2kc01<_wmK#9p{
zt>35fN(XuA(I4hZf31yX!Tn*oCtsa{vLtV<57l|4fiT~PKSexiePeT#E?w~Y7vF)A
zyQsrq(vOCs$+f-79
zNU^YQ%&$!>uYEZmBi)6YaLz|8eAN9myYJl8Vef5w6}fFQ)u4d_eiiQLrClwRUV0SK
zavC&f!{rWXYwRJ!Q3_+a2rxG!O}yy_y;%W}%?C)wxUFkTeMjDY-O3G2Q2W|drjP^q
z0B0z9P8OveBfhv(4gul1(8VtHAMqueu2ZoFbJ!?TY;PIxT1yj|qbFIzJ?}?}trB%I
z1?^)xMdU%((G^xfnm%&O38u>wT`gz5o?)zUG8Y!`dAF2{w0XsP6pjZrcVlwR_th9V
z#s;z-pLTEJd|lyX==Ms6aI^8+cUifJ#v3vQ(t&6aQ$3DU+=M$F0D3ySc%4gAg>6{m
zIMo^@EL{#!Y*f|KLL`)}o>4+>CMP}i59yS@|{T6z1Bt_ZU-Mm!Vpz*kJ_hAlX%ez`)@86&pQhB&MO*nL1Jtrjh8>1l)?CrVR)>6t)=W7a+;`^}-1=!`<;qvj`L3_nTe<)d&@YAm6n7Ga6
z=|4@SBi%`J;N_L3(cf2UMt_>RiWUWKNdM0S^IVYyKIb5#Hv0!HWR
zs~L}_)MKeO3n(VKn6$?>;|a
diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png
deleted file mode 100644
index a269aebc224a9d2ceb0fb31e13ce978f3532ada7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 7243
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
EA4QjKF8}}l
diff --git a/public/favicon.ico b/public/favicon.ico
deleted file mode 100644
index 154b95fa78be342b41c99f97261b5269f64257d8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 15406
zcmeHNdu&rx7(e&k0Zx(d5D5^H{eikf67Ub$0A*Xt2J-6q+N13l6cilqr_dlJB7?0f
zR^A|NI(Ng#+35P<1DgJS9U*6Tgread5CI9-
z@6h>v4J#dJaVQ7+E{G5(x2ZXqjn8wacx$Cf?W+z}Zp(_0+ew~NO#nkyu;keUn{N8I
zQ&x3VeZAOc`w6>-QJDpHBUx6a;|I;l^9g@Md}*90Psc4bZ^!Q`Z!BCvjD?^0WFN^7
z4rWvrai2NoaLmW{I(Ag0AfM}0&i2~>dXj`P$UIiQXHK*KRCT!yWwzzl#FxC))AISN
zv1=ZvFIk;q`+B3pQ(m@u7glZBAn33^=&tjuPD7+UAKj`EyJlT`X!(*rTQirNLy}dDxL?8p{C*J-<`|jLCdDQxovcGu0)P3vrX>O=$%yp_hwK_FjgJD0X
zJO#tt6mki7OcMN|G6%!{f<3cH)cmvjZ2P>2Fa*y&T_bEpBOaZ<)&oNj?Wa@|Zp0Dt
z)~q!iu`x*Y?UM-C#EGAceWMVMASU8=hFdr>zX)d^O^4?Yxbbs|`^nOSM#0yny_t6y
z&D9z)PSU>1)a!iu*8C|_&wo~4QpJutO&I+H@`CX$8C$T8=F?R)Hqsc$&{(O5n3+ao
zQri~vrQR}uojP%>^mFgo7n<`g8Y^kc4CG}XeZlT-SA)-OS6F(0)=8j5izYyOF6$&P
zu7F;#MUg13cnsub$yR4JT;CA;%TW7z
zA8_9g^FxvI0Pm`Xn%H#nzLA|Iw=0oCF1}d7$?Vl4cG`>hoBEpEie!aE<|J3c$x5_<
z|MnB{J5;q+r&24qVTlyB;g`sfeyVBnzn_kiNUY8O5;@WvHE}yT#w^HrZNnLDNAdRX
z@V}Ww@%9)l!M_sg9vz2zmU#$(VRsHt>V%(D4c
z?$kA{@@FxQLJ#;rh@`W^g|viERqg~nq)Iy~_AU*>>!2Zl4(=XvdC
z1^n_Oh8AN8b^p8Y!?_uFceGExg4OFj4ln%XayVmDOBl*AjSN^=
zMA#9Bh1vw=7h#3}hZNxqhbKP@NBq?9-0;1?!B6oo8?W+e;NZ&+O%UR0NY5X^|Ld{9
z!8L!mIXE}I0Y{ro@)_GLJe)uLU9y1gqax4vPv;2xZUve2&2o1hnNzN*k6ms%gY*se
zMBd%pW87ilJwDoWyue4ZlHD%gmzUh;k`59^c>&I`G?IwS1~Pc%ezIWiOvvjswU%;q
z3h=%p;NZt7_ZH5y81Q`;Cnt%Lf$>Mth{FnI+?i@7?H?N7J#rjOdd#>)MyxBWnNd97
zwSTH3T_As$1ML8``H(~O^v9&6GO^A`q;E6;mTS%P!gaW#5hYje&*xi{tD
y2)KACT{NH3{siteTitle}
{/* Icons / Favicon */}
-
-
-
-
{/* Primary Meta Tags */}
diff --git a/public/icon.svg b/src/icon.svg
similarity index 100%
rename from public/icon.svg
rename to src/icon.svg
From 1ef725f4ed48e8965e3c079c97524304b4be49d2 Mon Sep 17 00:00:00 2001
From: Chris Williams
Date: Mon, 23 Sep 2024 11:41:24 +0100
Subject: [PATCH 4/9] mv icon to fix dev missing issue
---
{src => public}/icon.svg | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename {src => public}/icon.svg (100%)
diff --git a/src/icon.svg b/public/icon.svg
similarity index 100%
rename from src/icon.svg
rename to public/icon.svg
From 5201f45c6de076d8405884015f960cbb06aea9d2 Mon Sep 17 00:00:00 2001
From: Chris Williams
Date: Mon, 23 Sep 2024 11:42:41 +0100
Subject: [PATCH 5/9] update config to spec icons
---
astro.config.ts | 30 ++++++++++++++++++++++--------
1 file changed, 22 insertions(+), 8 deletions(-)
diff --git a/astro.config.ts b/astro.config.ts
index c75189cfb..c2d63ae55 100644
--- a/astro.config.ts
+++ b/astro.config.ts
@@ -35,29 +35,43 @@ export default defineConfig({
mdx(),
robotsTxt(),
webmanifest({
+ // See: https://github.com/alextim/astro-lib/blob/main/packages/astro-webmanifest/README.md
/**
* required
**/
name: siteConfig.title,
-
/**
* optional
**/
// short_name: "Astro_Cactus",
description: siteConfig.description,
lang: siteConfig.lang,
- icon: "src/icon.svg", // source for favicon & icons
+ icon: "public/icon.svg", // source for favicon & icons
+ icons: [
+ {
+ src: "icons/apple-touch-icon.png",
+ sizes: "180x180",
+ type: "image/png",
+ },
+ {
+ src: "icons/icon-192.png",
+ sizes: "192x192",
+ type: "image/png",
+ },
+ {
+ src: "icons/icon-512.png",
+ sizes: "512x512",
+ type: "image/png",
+ },
+ ],
start_url: "/",
background_color: "#1d1f21",
theme_color: "#2bbc8a",
display: "standalone",
-
config: {
- outfile: "site.webmanifest",
- createFavicon: true,
- insertFaviconLinks: true,
- insertManifestLink: true,
- insertAppleTouchLinks: true,
+ insertFaviconLinks: false,
+ insertThemeColorMeta: false,
+ insertManifestLink: false,
},
}),
],
From b431afad874136cab89467fb2a9423a5ad2f1822 Mon Sep 17 00:00:00 2001
From: Chris Williams
Date: Mon, 23 Sep 2024 12:04:11 +0100
Subject: [PATCH 6/9] add static links
---
src/components/BaseHead.astro | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/components/BaseHead.astro b/src/components/BaseHead.astro
index 73ee30fb3..dbcce9547 100644
--- a/src/components/BaseHead.astro
+++ b/src/components/BaseHead.astro
@@ -14,11 +14,24 @@ const socialImageURL = new URL(ogImage ? ogImage : "/social-card.png", Astro.url
---
-
-
+
{siteTitle}
{/* Icons / Favicon */}
+
+{
+ import.meta.env.PROD && (
+ <>
+
+
+ >
+ )
+}
+
+{/* Manifest */}
+
+
+{/* Canonical URL */}
{/* Primary Meta Tags */}
From 9d84596d106b2bc2e882b08cf8c302ded4e9eec7 Mon Sep 17 00:00:00 2001
From: Chris Williams
Date: Mon, 23 Sep 2024 12:04:41 +0100
Subject: [PATCH 7/9] fix lint formatting
---
src/components/blog/Masthead.astro | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/src/components/blog/Masthead.astro b/src/components/blog/Masthead.astro
index 900f1926b..ae95e34e7 100644
--- a/src/components/blog/Masthead.astro
+++ b/src/components/blog/Masthead.astro
@@ -43,8 +43,7 @@ const dateTimeOptions: Intl.DateTimeFormatOptions = {
{
data.updatedDate && (
- Updated:
-
+ Updated:
)
}
@@ -76,12 +75,9 @@ const dateTimeOptions: Intl.DateTimeFormatOptions = {
class="cactus-link inline-block before:content-['#']"
data-pagefind-filter="tag"
href={`/tags/${tag}/`}
- >
- {tag}
-
- {i < data.tags.length - 1 && ", "}
+ >{tag}{i < data.tags.length - 1 && ", "}
>
))}
)
-}
+}
\ No newline at end of file
From 96675c46dafdf2ea7d6ad4aecd5d94999b9afb2f Mon Sep 17 00:00:00 2001
From: Chris Williams
Date: Mon, 23 Sep 2024 12:11:37 +0100
Subject: [PATCH 8/9] update astro check issue
---
src/pages/index.astro | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pages/index.astro b/src/pages/index.astro
index c1cedf2f3..21302125a 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -68,7 +68,7 @@ const cactusTech: { desc: string; href: string; title: string }[] = [
{
allPostsByDate.map((p) => (
- {/* @ts-expect-error - issue with -> @astrojs/check@0.9.3 */}
+ {/* @ts-ignore-next-line - issue with -> @astrojs/check@0.9.3 */}
))
From 9a13029853eeac032d5690cc1fb2219799d1ad00 Mon Sep 17 00:00:00 2001
From: Chris Williams
Date: Mon, 23 Sep 2024 13:01:48 +0100
Subject: [PATCH 9/9] update comments and README
---
README.md | 16 ++++++++++------
astro.config.ts | 4 ++--
src/site.config.ts | 6 +++---
3 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/README.md b/README.md
index 313fc5540..7b4842ebf 100644
--- a/README.md
+++ b/README.md
@@ -38,7 +38,10 @@ Astro Cactus is a simple opinionated starter built with the Astro framework. Use
- Pagination
- [Automatic RSS feed](https://docs.astro.build/en/guides/rss)
- [Webmentions](https://webmention.io/)
-- Auto-generated [sitemap](https://docs.astro.build/en/guides/integrations-guide/sitemap/)
+- Auto-generated:
+ - [sitemap](https://docs.astro.build/en/guides/integrations-guide/sitemap/)
+ - [robots.txt](https://github.com/alextim/astro-lib/blob/main/packages/astro-robots-txt/README.md)
+ - [web app manifest](https://github.com/alextim/astro-lib/blob/main/packages/astro-webmanifest/README.md)
- [Pagefind](https://pagefind.app/) static search library integration
- [Astro Icon](https://github.com/natemoo-re/astro-icon) svg icon component
- [Expressive Code](https://expressive-code.com/) source code and syntax highlighter
@@ -84,11 +87,12 @@ Replace pnpm with your choice of npm / yarn
- Edit the config file `src/site.config.ts` for basic site meta data
- Read [this post](http://astro-cactus.chriswilliams.dev/posts/webmentions/) for adding webmentions to your site, otherwise set `siteConfig.webmentions.link` to an empty value.
-- Update file `astro.config.ts` site property with your own domain.
+- Update file `astro.config.ts`
+ - **Important**: the site property with your own domain.
+ - [astro-webmanifest options](https://github.com/alextim/astro-lib/blob/main/packages/astro-webmanifest/README.md)
- Replace & update files within the `/public` folder:
- - favicon.ico & other social icons
- - robots.txt - update the Sitemap url to your own domain
- - manifest.webmanifest
+ - icon.svg - used as the source to create favicons & manifest icons
+ - social-card.png - used as the default og:image
- Modify file `src/styles/global.css` with your own light and dark styles.
- You can also modify the theme(s) for markdown code blocks generated by [Expressive Code](https://expressive-code.com). Astro Cactus has both a dark (dracula) and light (github-light) theme, which can be found in `src/site.config.ts`. You can find more theme(s) and options [here](https://expressive-code.com/guides/themes/#available-themes).
- Edit social links in `src/components/SocialList.astro` to add/replace your media profile. Icons can be found @ [icones.js.org](https://icones.js.org/), per [Astro Icon's instructions](https://www.astroicon.dev/guides/customization/#find-an-icon-set).
@@ -147,7 +151,7 @@ You may want to track the number of visitors you receive to your blog/website in
This theme/template doesn't include a specific solution due to there being a number of use cases and/or options which some people may or may not use.
-You may be asked to included a snippet inside the **HEAD** tag of your website when setting it up, which can be found in `src/layouts/Base.astro`. Alternatively, you could add the snippet in `src/components/BaseHead.astro`.
+You may be asked to included a snippet inside the **HEAD** tag of your website when setting it up, which can be found in `src/layouts/Base.astro`. Alternatively, you can add the snippet in `src/components/BaseHead.astro`.
## Deploy
diff --git a/astro.config.ts b/astro.config.ts
index c2d63ae55..507b2a40c 100644
--- a/astro.config.ts
+++ b/astro.config.ts
@@ -46,10 +46,10 @@ export default defineConfig({
// short_name: "Astro_Cactus",
description: siteConfig.description,
lang: siteConfig.lang,
- icon: "public/icon.svg", // source for favicon & icons
+ icon: "public/icon.svg", // the source for generating favicon & icons
icons: [
{
- src: "icons/apple-touch-icon.png",
+ src: "icons/apple-touch-icon.png", // used in src/components/BaseHead.astro L:26
sizes: "180x180",
type: "image/png",
},
diff --git a/src/site.config.ts b/src/site.config.ts
index fbae46592..09088077e 100644
--- a/src/site.config.ts
+++ b/src/site.config.ts
@@ -13,15 +13,15 @@ export const siteConfig: SiteConfig = {
year: "numeric",
},
},
- // Meta property used as the default description meta property
+ // Used as the default description meta property and webmanifest description
description: "An opinionated starter theme for Astro",
- // HTML lang property, found in src/layouts/Base.astro L:18
+ // HTML lang property, found in src/layouts/Base.astro L:18 & astro.config.ts L:48
lang: "en-GB",
// Meta property, found in src/components/BaseHead.astro L:42
ogLocale: "en_GB",
// Option to sort posts by updatedDate if set to true (if property exists). Default (false) will sort by publishDate
sortPostsByUpdatedDate: false,
- // Meta property used to construct the meta title property, found in src/components/BaseHead.astro L:11
+ // Used to construct the meta title property found in src/components/BaseHead.astro L:11, and webmanifest name found in astro.config.ts L:42
title: "Astro Theme Cactus",
webmentions: {
// Webmention.io API endpoint. Get your own here: https://webmention.io/, and follow this blog post: https://astro-cactus.chriswilliams.dev/posts/webmentions/