diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index b9722305e2a..00000000000 Binary files a/.DS_Store and /dev/null differ diff --git a/packages/.DS_Store b/packages/.DS_Store deleted file mode 100644 index 0c478fb6da8..00000000000 Binary files a/packages/.DS_Store and /dev/null differ diff --git a/packages/site/app/actus/[id]/[slug]/page.tsx b/packages/site/app/actus/[id]/[slug]/page.tsx index b6e4886dcd2..183d4375254 100644 --- a/packages/site/app/actus/[id]/[slug]/page.tsx +++ b/packages/site/app/actus/[id]/[slug]/page.tsx @@ -10,6 +10,7 @@ import GallerieArticle from './GallerieArticle'; import EmbededVideo from '@components/video/EmbededVideo'; import {ParagrapheCustomArticleData} from 'app/types'; import {Metadata, ResolvingMetadata} from 'next'; +import {getUpdatedMetadata} from 'src/utils/getUpdatedMetadata'; export async function generateMetadata( {params}: {params: {id: string}}, @@ -18,38 +19,21 @@ export async function generateMetadata( const data = await getMetaData(parseInt(params.id)); const metadata = (await parent) as Metadata; + let newMetaData = getUpdatedMetadata(metadata, { + title: data.title ?? 'Actualités', + networkTitle: data.title, + description: data.description, + image: data.image, + }); + return { - ...metadata, - title: data.title ? {absolute: data.title} : 'Actualités', - description: data.description ? data.description : metadata.description, + ...newMetaData, openGraph: { - ...metadata.openGraph, - title: data.title ? data.title : metadata.openGraph?.title, - description: data.description - ? data.description - : metadata.openGraph?.description, - images: data.image - ? [ - { - url: data.image.url, - width: data.image.width, - height: data.image.height, - type: data.image.type, - alt: data.image.alt, - }, - ] - : metadata.openGraph?.images, + ...newMetaData.openGraph, type: 'article', publishedTime: data.publishedAt, modifiedTime: data.updatedAt, }, - robots: { - index: true, - follow: true, - 'max-video-preview': -1, - 'max-image-preview': 'large', - 'max-snippet': -1, - }, }; } diff --git a/packages/site/app/budget/page.tsx b/packages/site/app/budget/page.tsx index 32c142410db..55adc866a8b 100644 --- a/packages/site/app/budget/page.tsx +++ b/packages/site/app/budget/page.tsx @@ -8,6 +8,24 @@ import BudgetConsomme from './BudgetConsomme'; import PerformanceBudget from './PerformanceBudget'; import {getStrapiData} from './utils'; import NoResult from '@components/info/NoResult'; +import {Metadata, ResolvingMetadata} from 'next'; +import {getUpdatedMetadata} from 'src/utils/getUpdatedMetadata'; + +export async function generateMetadata( + {params}: {params: {}}, + parent: ResolvingMetadata, +): Promise { + const metadata = (await parent) as Metadata; + const strapiData = await getStrapiData(); + + return getUpdatedMetadata(metadata, { + title: strapiData?.seo.metaTitle ?? 'Budget', + networkTitle: strapiData?.seo.metaTitle, + description: + strapiData?.seo.metaDescription ?? strapiData?.header.description, + image: strapiData?.seo.metaImage, + }); +} const Budget = async () => { const strapiData = await getStrapiData(); diff --git a/packages/site/app/collectivites/[code]/[name]/page.tsx b/packages/site/app/collectivites/[code]/[name]/page.tsx index 81faf62cec9..42a1b8dc1f3 100644 --- a/packages/site/app/collectivites/[code]/[name]/page.tsx +++ b/packages/site/app/collectivites/[code]/[name]/page.tsx @@ -25,6 +25,7 @@ export async function generateMetadata( const collectiviteData = await fetchCollectivite(params.code); const strapiData = await getStrapiData(params.code); const strapiDefaultData = await getStrapiDefaultData(); + const couverture = strapiData?.couverture?.attributes ?? undefined; if (!collectiviteData || !collectiviteData.nom) return metadata; @@ -33,9 +34,23 @@ export async function generateMetadata( strapiData?.seo.metaTitle ?? strapiDefaultData?.seo.metaTitle ?? collectiviteData.nom, + networkTitle: + strapiData?.seo.metaTitle ?? + strapiDefaultData?.seo.metaTitle ?? + collectiviteData.nom, description: strapiData?.seo.metaDescription ?? strapiDefaultData?.seo.metaDescription, - image: strapiData?.seo.metaImage ?? strapiDefaultData?.seo.metaImage, + image: strapiData?.seo.metaImage + ? strapiData.seo.metaImage + : couverture + ? { + url: couverture.url as unknown as string, + width: couverture.width as unknown as number, + height: couverture.height as unknown as number, + type: couverture.mime as unknown as string, + alt: couverture.alternativeText as unknown as string, + } + : strapiDefaultData?.seo.metaImage, }); } diff --git a/packages/site/app/contact/page.tsx b/packages/site/app/contact/page.tsx index 64ef2ae3696..24ea43d13a3 100644 --- a/packages/site/app/contact/page.tsx +++ b/packages/site/app/contact/page.tsx @@ -18,6 +18,7 @@ export async function generateMetadata( return getUpdatedMetadata(metadata, { title: strapiData?.seo.metaTitle ?? 'Contact', + networkTitle: strapiData?.seo.metaTitle, description: strapiData?.seo.metaDescription, image: strapiData?.seo.metaImage, }); diff --git a/packages/site/app/layout.tsx b/packages/site/app/layout.tsx index 7bc97286e8c..bb461af85ba 100644 --- a/packages/site/app/layout.tsx +++ b/packages/site/app/layout.tsx @@ -3,15 +3,11 @@ import '@gouvfr/dsfr/dist/dsfr.css'; import './global.css'; import {Footer} from '@components/footer/Footer'; import {Metadata} from 'next'; -import {headers} from 'next/headers'; import {getMetaData} from './utils'; -import {Amplitude} from "./Amplitude"; +import {Amplitude} from './Amplitude'; export async function generateMetadata(): Promise { const data = await getMetaData(); - const headersList = headers(); - const baseUrl = headersList.get('host') ?? ''; - const pathname = headersList.get('x-invoke-path') ?? ''; return { title: { @@ -53,7 +49,7 @@ export async function generateMetadata(): Promise { openGraph: { title: data.metaTitle ?? 'Territoires en Transitions', description: data.metaDescription, - url: `${baseUrl}${pathname !== '/' ? pathname : ''}`, + url: 'https://www.territoiresentransitions.fr', siteName: data.metaTitle ?? 'Territoires en Transitions', images: data.metaImage ? [ diff --git a/packages/site/app/outil-numerique/page.tsx b/packages/site/app/outil-numerique/page.tsx index a6aa3401571..0ad764c6bef 100644 --- a/packages/site/app/outil-numerique/page.tsx +++ b/packages/site/app/outil-numerique/page.tsx @@ -19,8 +19,9 @@ export async function generateMetadata( const strapiData = await getStrapiData(); return getUpdatedMetadata(metadata, { - title: strapiData?.seo.metaTitle ?? "L'outil numérique", - description: strapiData?.seo.metaDescription, + title: strapiData?.seo.metaTitle ?? 'Outil numérique', + networkTitle: strapiData?.seo.metaTitle, + description: strapiData?.seo.metaDescription ?? strapiData?.header.accroche, image: strapiData?.seo.metaImage, }); } diff --git a/packages/site/app/programme/page.tsx b/packages/site/app/programme/page.tsx index 607d94bbb6c..3b700f92911 100644 --- a/packages/site/app/programme/page.tsx +++ b/packages/site/app/programme/page.tsx @@ -20,8 +20,9 @@ export async function generateMetadata( const strapiData = await getStrapiData(); return getUpdatedMetadata(metadata, { - title: strapiData?.seo.metaTitle ?? 'Le programme', - description: strapiData?.seo.metaDescription, + title: strapiData?.seo.metaTitle ?? 'Programme', + networkTitle: strapiData?.seo.metaTitle, + description: strapiData?.seo.metaDescription ?? strapiData?.description, image: strapiData?.seo.metaImage, }); } diff --git a/packages/site/app/utils.ts b/packages/site/app/utils.ts index bfa2647a8de..dbf48448710 100644 --- a/packages/site/app/utils.ts +++ b/packages/site/app/utils.ts @@ -7,17 +7,21 @@ export const getMetaData = async () => { const data = await fetchSingle('page-accueil', [ ['populate[0]', 'seo'], ['populate[1]', 'seo.metaImage'], + ['populate[2]', 'Couverture'], ]); const metaImage = (data?.attributes?.seo?.metaImage?.data as unknown as StrapiItem) - ?.attributes ?? undefined; + ?.attributes ?? + (data.attributes.Couverture.data as unknown as StrapiItem)?.attributes ?? + undefined; return { metaTitle: (data?.attributes?.seo?.metaTitle as unknown as string) ?? undefined, metaDescription: (data?.attributes?.seo?.metaDescription as unknown as string) ?? + (data.attributes.Titre as unknown as string) ?? undefined, metaImage: metaImage ? { diff --git a/packages/site/src/utils/getUpdatedMetadata.ts b/packages/site/src/utils/getUpdatedMetadata.ts index 4e719fc78c7..1a7afea7505 100644 --- a/packages/site/src/utils/getUpdatedMetadata.ts +++ b/packages/site/src/utils/getUpdatedMetadata.ts @@ -4,6 +4,7 @@ export const getUpdatedMetadata = ( metadata: Metadata, newData: { title?: string; + networkTitle?: string; description?: string; image?: { url: string; @@ -23,7 +24,7 @@ export const getUpdatedMetadata = ( twitter: metadata.twitter, openGraph: { ...metadata.openGraph, - title: newData.title ?? metadata.openGraph?.title, + title: newData.networkTitle ?? metadata.openGraph?.title, description: newData.description ?? metadata.openGraph?.description, images: newData.image ?? metadata.openGraph?.images, },