Métadonnées

Helpers bas niveau de génération de métadonnées Next.js, titre, objet Metadata, directives robots.

Helpers de composition de métadonnées Next.js pour les pages qui n'ont pas de contenu SEO stocké : pages d'admin, pages techniques, pages d'un module sans champ seo.

Pour un contenu CMS qui porte un objet seo en base, utiliser @lrvo/core/seo, qui s'appuie sur generateRobots d'ici.

Import

import { generateTitle, generateMetadata, generateRobots } from '@lrvo/core/shared/metadata';

Sous-chemin neutre : rien n'y importe de code Node. En pratique il s'utilise côté serveur, dans un export const metadata ou un generateMetadata de page, et le nom d'application vient de getAppName(), qui lit LRVO_NAME : appelé depuis le navigateur, il retomberait sur LRVO.

API

generateTitle(title, options?)

Compose le titre de page avec le nom de l'application.

generateTitle('Commandes');
// 'Commandes - Mon site'

generateTitle('Commandes', { separator: ' — ' });
// 'Commandes — Mon site'

generateTitle('Commandes', { includeAppName: false });
// 'Commandes'
OptionDéfautRôle
includeAppNametrueAjoute le nom de l'application.
separator' - 'Séparateur.
appNamegetAppName()Nom explicite, sinon celui de la configuration.

generateMetadata(params?, options?)

Construit un objet Metadata Next.js. Le titre est passé par generateTitle, et openGraph comme twitter héritent du titre et de la description quand ils ne les définissent pas.

export const metadata = generateMetadata({
  title: 'Commandes',
  description: 'Suivi des commandes.',
  openGraph: { type: 'website' },
});
ParamètreRôle
titleTitre de page.
descriptionDescription.
openGraphBloc Open Graph. Titre et description hérités si absents.
twitterBloc Twitter. Même héritage.
Autres clésRecopiées telles quelles dans l'objet retourné.

Les clés absentes ne sont pas émises : une description vide ne produit pas de balise vide.

generateRobots(options?)

Construit le bloc robots.

generateRobots({ index: false, follow: true });
// { index: false, follow: true }

generateRobots({ noarchive: true });
// { index: true, follow: true, noarchive: true }
OptionDéfautEffet
indextrueAutorise l'indexation.
followtrueAutorise le suivi des liens.
noarchivefalseInterdit l'archivage. Émis seulement si vrai.
nocachefalseInterdit la mise en cache. Émis seulement si vrai.

noarchive et nocache ne sont ajoutés que lorsqu'ils sont activés, pour ne pas émettre de directive neutre.

Notes

Ne pas mélanger les deux voies. Une page de contenu CMS passe par buildSeoMetadata, qui gère les tokens, le canonical et les URL absolues. Utiliser generateMetadata d'ici sur un contenu qui a un objet seo reviendrait à ignorer ce que l'utilisateur a saisi dans l'éditeur.

Pour le <title> d'une page d'admin enregistrée, utiliser registerPageMeta plutôt que d'exporter un metadata : le shell d'admin le résout au premier rendu serveur.

Sur cette page