Skip to content

Commit ac977de

Browse files
mrtnzlmlclaude
andcommitted
chore(deps): update all dependencies, Astro 6 → 7
Astro 6.4.6 → 7.2.0, @astrojs/sitemap 3.7.2 → 3.7.3, tailwindcss and @tailwindcss/vite 4.2.4 → 4.3.3, vitest 4.1.5 → 4.1.10. `npm audit` goes from 7 vulnerabilities to 0 — three of them high-severity Astro XSS advisories that only the v7 bump fixes, plus transitive sharp/svgo/undici resolved by a non-breaking `npm audit fix`. Most of Astro 7's breaking changes don't apply here: no markdown or content collections (the remark → Sätteri switch), no src/fetch.ts, no @astrojs/db, no transitions API. Two did: compressHTML now defaults to 'jsx', which strips whitespace and line breaks around elements. That closed up the gap at every element boundary rendered across separate lines ("Pricing About" → "PricingAbout"), and since .es-tip is display:inline-block the same rule can visibly corrupt prose. Pin the pre-v7 lossless mode to keep output identical; switching to the v7 default later means auditing the markup for cross-line inline elements first. Vite 8's minifier emits backtick string literals where esbuild emitted double quotes, which broke the Escape-key test. The handler was intact — the assertion was pinned to minifier quote style rather than call structure, contradicting its own comment. Both assertions are now quote-agnostic (the second would have failed too, masked by the first aborting). Verified against a pre-upgrade snapshot of dist/: rendered text, markup structure, file set, and sitemap (including git-mtime lastmod) are all identical. 228/228 tests pass from a clean npm ci. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent d8ed47c commit ac977de

5 files changed

Lines changed: 2090 additions & 2664 deletions

File tree

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Requires Node.js >=22.12.0. Deployed to Cloudflare Workers Builds: push to `main
1717

1818
## Architecture
1919

20-
**Static site built with Astro 6 + Tailwind CSS 4.** Zero client-side JavaScript by default — games use inline `<script>` blocks with vanilla JS, no framework hydration. The homepage additionally ships three tiny progressive-enhancement scripts (seasonal papel-picado swap, daily word-of-the-day, EsTip width measurement); with JS disabled it renders the year-round banner, the fallback word, and Spanish-sized swap boxes.
20+
**Static site built with Astro 7 + Tailwind CSS 4.** Zero client-side JavaScript by default — games use inline `<script>` blocks with vanilla JS, no framework hydration. The homepage additionally ships three tiny progressive-enhancement scripts (seasonal papel-picado swap, daily word-of-the-day, EsTip width measurement); with JS disabled it renders the year-round banner, the fallback word, and Spanish-sized swap boxes.
2121

2222
### Key directories
2323

astro.config.mjs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,14 @@ function sharedMtime() {
7373
export default defineConfig({
7474
site: "https://elenkaspanish.com",
7575

76+
// Astro 7 switched the default to 'jsx', which strips whitespace and line
77+
// breaks around elements — that silently closes up the gaps between inline
78+
// elements written across separate lines (nav links, footer links, the
79+
// inline-block <EsTip> spans). `true` is the pre-v7 lossless mode, which
80+
// preserves whitespace where it affects visual rendering. Keep it until the
81+
// markup is audited for JSX whitespace rules.
82+
compressHTML: true,
83+
7684
vite: {
7785
plugins: [tailwindcss()],
7886
},

0 commit comments

Comments
 (0)