Composant Schema
Le composant <Schema /> sérialise vos entités Schema.org en une balise <script type="application/ld+json"> assainie, avec zéro JavaScript côté client.
1. Imports
Section intitulée « 1. Imports »Astro
---import { Schema } from '@unschema-graph/astro';---
<head> <Schema items={[organization, article]} /></head>Svelte 5
<script lang="ts">import { Schema } from '@unschema-graph/svelte';</script>
<!-- Rendu automatique dans le <head> via <svelte:head> --><Schema items={[organization, article]} baseUrl="https://mon-site.fr" />2. Référence des propriétés (Props)
Section intitulée « 2. Référence des propriétés (Props) »| Propriété | Type | Défaut | Description |
|---|---|---|---|
items |
(SchemaOrgEntity | null | undefined)[] |
undefined |
Tableau d’entités à fusionner dans le @graph unifié. |
item |
SchemaOrgEntity | null |
undefined |
Raccourci pour transmettre une seule entité. |
data |
SchemaOrgEntity | SchemaOrgEntity[] | null |
undefined |
Alias universel acceptant une entité unique ou un tableau. |
baseUrl |
string |
Voir priorité ci-dessous | Résout les @id, url et item relatifs par rapport à cette origine. |
inLanguage |
string |
Astro: Astro.currentLocaleSvelte: undefined |
Renseigne la langue par défaut pour les entités compatibles. |
pretty |
boolean |
false |
Active le formatage indenté du JSON pour le débogage. |
indent |
number |
2 |
Nombre d’espaces d’indentation si pretty est actif. |
graph |
boolean |
true |
Enveloppe les entités dans un @graph. Si false et 1 seule entité, rendu à plat. |
context |
string |
'https://schema.org' |
URL du contexte JSON-LD racine. |
debug (Astro uniquement) |
boolean |
false |
Injecte un commentaire diagnostic HTML et affiche des logs dans le terminal. |
3. Priorité de résolution de la Base URL
Section intitulée « 3. Priorité de résolution de la Base URL »Lors de la résolution des identifiants relatifs (#organization, /articles/guide#article) :
- Composant Astro : prop
baseUrl→Astro.site→ configuration globale. L’intégration Astro écrit son optionbaseUrldans cette configuration globale ou utiliseconfig.sitelorsque l’option est absente. - Composant Svelte : uniquement la prop
baseUrl. Il ne lit pas automatiquement la configuration globale du Core. - API Core : la valeur
baseUrltransmise dansGraphOptions.getGlobalConfig()reste accessible au code de l’application, maisbuildJsonLdGraph()ne la lit pas automatiquement.
4. Modèles d’utilisation
Section intitulée « 4. Modèles d’utilisation »Rendu d’entités multiples (items)
Section intitulée « Rendu d’entités multiples (items) »Méthode recommandée : passez toutes les entités du layout et de la page dans un appel unique à <Schema /> :
<Schema items={[editeurOrg, auteurPerson, articleNode, filAriane]} />Rendu d’une entité unique (item)
Section intitulée « Rendu d’une entité unique (item) »<Schema item={organisation} />Formatage lisible en développement
Section intitulée « Formatage lisible en développement »<Schema items={[org, website]} pretty={import.meta.env.DEV} debug={import.meta.env.DEV}/>