feat(seo): facts in src/data/business.ts, SEO + JSON-LD components in layout

- business.ts: single source of truth; unknown facts (city, area, prices,
  packages, phone, delivery time, experience, testimonials) are null and are
  skipped everywhere. faq.ts builds answers only from known facts.
- portfolio-meta.ts: data hook for real per-image alt texts.
- SEO.astro: title, description, canonical, Open Graph, Twitter, og:image
  (EXIF-free JPG via getImage, absolute URL).
- SchemaOrg.astro: @graph with WebSite, Person, ProfessionalService
  (sameAs, ReserveAction to the customer portal, offer catalog without
  prices), WebPage, optional FAQPage and BreadcrumbList.
- MainLayout: lang=sv, Swedish nav (adds Tjänster), consent banner and
  footer in Swedish, lyxlimo/karleksguiden line removed, info@ address.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WvE3C43Uwtv2vtnoFBLDw7
This commit is contained in:
Linus Olofsson
2026-10-27 19:13:07 +01:00
co-authored by Claude Opus 5.5
parent ce5676f552
commit 30e385ec7f
12 changed files with 578 additions and 28 deletions
+26
View File
@@ -0,0 +1,26 @@
// src/data/portfolio-meta.ts
// DATAKROK för riktiga alt-texter (och ev. titel/kategori) per portfoliobild.
// Fylls i senare (t.ex. av Imogen-agenten). Tom post = sidan använder en
// neutral svensk reservtext byggd på datum, aldrig kameramodell eller "undefined".
//
// Nyckel = bildens filnamn utan ändelse, exakt som i src/assets/images/portfolio/,
// t.ex. "immich-02533d10-07ca-4a39-8b8a-6648fe2ffcef-20260905-DSC07734"
// eller "20250510-WJ9E1439-Enhanced-NR".
//
// Exempel:
// "immich-02533d10-...-20260905-DSC07734": {
// alt: "Norrsken i grönt och lila över en mörk skogssiluett",
// title: "Norrsken i september",
// category: "Norrsken",
// },
export type PortfolioMeta = {
/** Beskriv vad bilden visar, på svenska, ca 8–16 ord. */
alt?: string;
/** Kort bildtitel (visas i lightboxen om den finns). */
title?: string;
/** Helst ett av namnen i business.genres, t.ex. "Natur och djur". */
category?: string;
};
export const portfolioMeta: Record<string, PortfolioMeta> = {};