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'];