import type { Metadata } from "next"; import { site } from "./content"; import { siteUrl } from "./env"; export function baseUrl() { return siteUrl(site.seo.siteUrl).replace(/\/$/, ""); } export function pageMetadata(opts: { title: string; description: string; path: string; noIndex?: boolean; }): Metadata { const url = `${baseUrl()}${opts.path}`; return { title: opts.title, description: opts.description, alternates: { canonical: url }, openGraph: { title: opts.title, description: opts.description, url, type: "website" }, robots: opts.noIndex ? { index: false, follow: false } : undefined, }; } /** Données structurées minimales : aucune adresse/avis inventé (champs vides omis). */ export function organizationJsonLd() { const data: Record = { "@context": "https://schema.org", "@type": "ProfessionalService", name: site.brand.name, url: baseUrl(), description: site.seo.defaultDescription, areaServed: site.contact.region || undefined, email: site.contact.email || undefined, telephone: site.contact.phone || undefined, sameAs: site.social.linkedin ? [site.social.linkedin] : undefined, }; return Object.fromEntries(Object.entries(data).filter(([, v]) => v !== undefined)); }