diff --git a/README.md b/README.md
index 118dd1b..864ffca 100644
--- a/README.md
+++ b/README.md
@@ -4,11 +4,11 @@ Sito vetrina per InsanityLab con blog integrato e form di contatti.
## Descrizione
-Il progetto realizza un sito web per InsanityLab, combinando una vetrina aziendale con un sistema di blog gestito tramite SQLite e un form di contatti funzionante. L'architettura è costruita su **Astro 5** con adapter **Node.js** per deployment su server, garantendo performance ottimali e SEO-friendly pages.
+Il progetto realizza un sito web per InsanityLab, combinando una vetrina aziendale con un sistema di blog gestito tramite SQLite e un form di contatti funzionante. L'architettura è costruita su **Astro 7** con adapter **Node.js** per deployment su server, garantendo performance ottimali e SEO-friendly pages.
## Stack Tecnologico
-- **Framework**: Astro 5
+- **Framework**: Astro 7
- **Runtime**: Node.js (adapter standalone)
- **Database**: SQLite (better-sqlite3)
- **Autenticazione**: bcryptjs
@@ -44,7 +44,7 @@ Modifica `.env` con le credenziali SMTP, percorsi database e upload directory se
| Comando | Descrizione |
|---------|-------------|
-| `npm run dev` | Avvia il server di sviluppo (localhost:3000) |
+| `npm run dev` | Avvia il server di sviluppo (localhost:4321) |
| `npm run build` | Compila il progetto per production |
| `npm run preview` | Visualizza l'anteprima della build (locale) |
| `npm run start` | Avvia il server production (richiede `npm run build` preliminare) |
diff --git a/astro.config.mjs b/astro.config.mjs
index 3c44492..ad4f5f3 100644
--- a/astro.config.mjs
+++ b/astro.config.mjs
@@ -6,5 +6,5 @@ export default defineConfig({
site: 'https://insanitylab.tielogic.xyz',
output: 'server',
adapter: node({ mode: 'standalone' }),
- integrations: [sitemap()],
+ integrations: [sitemap({ filter: (page) => !page.includes('/admin') })],
});
diff --git a/public/img/og.jpg b/public/img/og.jpg
new file mode 100644
index 0000000..edaa600
Binary files /dev/null and b/public/img/og.jpg differ
diff --git a/src/layouts/Base.astro b/src/layouts/Base.astro
index 4b19758..26474c9 100644
--- a/src/layouts/Base.astro
+++ b/src/layouts/Base.astro
@@ -22,6 +22,7 @@ const { title, description = 'InsanityLab — Performance. Balance. Longevity. A
+
diff --git a/src/pages/blog/[slug].astro b/src/pages/blog/[slug].astro
index fdf30f1..34eda3e 100644
--- a/src/pages/blog/[slug].astro
+++ b/src/pages/blog/[slug].astro
@@ -6,7 +6,7 @@ import { getPublishedBySlug } from '../../lib/posts';
export const prerender = false;
const post = getPublishedBySlug(getDb(), Astro.params.slug!);
-if (!post) return Astro.redirect('/404');
+if (!post) return new Response(null, { status: 404 });
const fmt = new Intl.DateTimeFormat('it-IT', { dateStyle: 'long' });
---
diff --git a/src/pages/programs/[slug].astro b/src/pages/programs/[slug].astro
index 6f0d178..fa8de66 100644
--- a/src/pages/programs/[slug].astro
+++ b/src/pages/programs/[slug].astro
@@ -3,6 +3,7 @@ import Base from '../../layouts/Base.astro';
import PageHero from '../../components/PageHero.astro';
import { programs } from '../../data/programs';
import { performanceClassPricing } from '../../data/pricing';
+import { CATEGORIES } from '../../lib/blog-const';
export const prerender = true;
export function getStaticPaths() {
@@ -10,7 +11,6 @@ export function getStaticPaths() {
}
const { program } = Astro.props;
const others = programs.filter((p) => p.slug !== program.slug);
-const blogCategories = ['Fitness', 'Salute', 'Stile di vita', 'Nutrizione'];
---
@@ -34,7 +34,7 @@ const blogCategories = ['Fitness', 'Salute', 'Stile di vita', 'Nutrizione'];