Aller au contenu

NewsArticle builder

Le builder NewsArticle crée une entité NewsArticle, injecte son @type, valide les données de manière synchrone et rejette les propriétés inconnues.

// Astro — shown first when Astro is selected
import { NewsArticle } from '@unschema-graph/astro';
// Svelte 5
import { NewsArticle } from '@unschema-graph/svelte';
// Core / Node.js
import { NewsArticle } from '@unschema-graph/core';
import { ArticleSchema } from '@unschema-graph/core';

Le schéma Zod ArticleSchema est également exporté pour la composition et la validation avancées.

import {
ArticleSchema,
type SchemaInput,
type SchemaOutput,
} from '@unschema-graph/core';
type NewsArticleInput = SchemaInput<typeof ArticleSchema>;
type NewsArticleOutput = SchemaOutput<typeof ArticleSchema, 'NewsArticle'>;
Propriété Type d’entrée Obligatoire Valeur par défaut / contraintes
@id string Non non-empty
headline string Oui non-empty
image string | ImageObject | Array<string | ImageObject> Oui non-empty
datePublished string | number | Date Oui non-empty
dateModified string | number | Date Non non-empty
author string | Person | Organization | EntityReference | Array<string | Person | Organization | EntityReference> Oui non-empty
publisher string | Organization | EntityReference Non non-empty
description string Non —
articleBody string Non —
articleSection string | Array Non —
keywords string | Array Non —
inLanguage string Non —
mainEntityOfPage string | object Non —
wordCount number Non integer; greater than 0; maximum: 9007199254740991
speakable string | Array | object Non —

Les alias ci-dessus restent la référence exacte, notamment pour les objets imbriqués. Le builder accepte aussi une configuration de validation en second argument et possède une sortie dont le @type vaut toujours NewsArticle.

import { NewsArticle } from '@unschema-graph/core';
const entity = NewsArticle({
"headline": "Structured data with Astro",
"image": "/images/structured-data.jpg",
"datePublished": "2026-09-29",
"author": "Ada Lovelace"
});
{
"@type": "NewsArticle",
"headline": "Structured data with Astro",
"image": "/images/structured-data.jpg",
"datePublished": "2026-09-29",
"author": {
"@type": "Person",
"name": "Ada Lovelace"
}
}
  • Passer une propriété inconnue au builder strict.
  • Utiliser une donnée source privée d’une propriété obligatoire.
  • Supposer qu’un Schema.org valide garantit un affichage dans la recherche.

Utilisez NewsArticle.safeParse(input) pour les données externes. Pour une extension Schema.org non encore modélisée, validez d’abord l’entité puis utilisez withAdditionalProperties(). N’ajoutez jamais une propriété inventée au builder.