site: upgrade Astro 5 → 7

- astro 7.0.7, @astrojs/mdx 7, sitemap 3.7, rss 4.0.19, check 0.9.9
- trailingSlash 'always' → 'ignore': Astro 7 generates prerender paths for
  dynamic extension endpoints (/categories/<c>/rss.xml) with a trailing
  slash under 'always' but builds their route patterns without one, so the
  build fails with "Missing parameter"; directory-format output is
  identical either way. Also removes the now-unneeded dev feed-slash shim.
- compressHTML: true pinned to keep pre-v7 whitespace behavior
- zod 4: import z from 'astro/zod' (astro:content re-export deprecated),
  z.string().url() → z.url()
- npm audit fix (fast-uri, fast-xml-builder, yaml)

Claude-Session: https://claude.ai/code/session_01WZaczDJjL3xZ3u5spsN5AL
This commit is contained in:
2026-07-12 20:40:26 -04:00
parent 9f6cc65ea8
commit 1072e5faf3
4 changed files with 1566 additions and 1682 deletions
+6 -5
View File
@@ -1,4 +1,5 @@
import { defineCollection, z } from 'astro:content';
import { defineCollection } from 'astro:content';
import { z } from 'astro/zod';
import { glob } from 'astro/loaders';
import { TOPICS } from './lib/topics';
@@ -21,9 +22,9 @@ const reviews = defineCollection({
category: z.string(),
topics: z.array(z.enum(TOPICS)).default([]),
tags: z.array(z.string()).default([]),
link: z.string().url().optional(),
link: z.url().optional(),
linkText: z.string().optional(),
amazonLink: z.string().url().optional(),
amazonLink: z.url().optional(),
description: z.string().optional(),
source: z.string().optional(),
fromFind: z.string().optional(),
@@ -55,9 +56,9 @@ const find = defineCollection({
name: z.string(),
subtitle: z.string().optional(),
date: z.coerce.date(),
link: z.string().url(),
link: z.url(),
linkText: z.string().optional(),
amazonLink: z.string().url().optional(),
amazonLink: z.url().optional(),
source: z.string(),
topics: z.array(z.enum(TOPICS)).default([]),
tags: z.array(z.string()).default([]),