SPB Git

spb/phi-conseil

Public
1.3 KB · 40 lines typescript
1import type { Metadata } from "next";2import { site } from "./content";3import { siteUrl } from "./env";45export function baseUrl() {6  return siteUrl(site.seo.siteUrl).replace(/\/$/, "");7}89export function pageMetadata(opts: {10  title: string;11  description: string;12  path: string;13  noIndex?: boolean;14}): Metadata {15  const url = `${baseUrl()}${opts.path}`;16  return {17    title: opts.title,18    description: opts.description,19    alternates: { canonical: url },20    openGraph: { title: opts.title, description: opts.description, url, type: "website" },21    robots: opts.noIndex ? { index: false, follow: false } : undefined,22  };23}2425/** Données structurées minimales : aucune adresse/avis inventé (champs vides omis). */26export function organizationJsonLd() {27  const data: Record<string, unknown> = {28    "@context": "https://schema.org",29    "@type": "ProfessionalService",30    name: site.brand.name,31    url: baseUrl(),32    description: site.seo.defaultDescription,33    areaServed: site.contact.region || undefined,34    email: site.contact.email || undefined,35    telephone: site.contact.phone || undefined,36    sameAs: site.social.linkedin ? [site.social.linkedin] : undefined,37  };38  return Object.fromEntries(Object.entries(data).filter(([, v]) => v !== undefined));39}40
Files · main
Menu

Theme