{
  "url": "https://unifast.dev/fr/docs/packages/core/overview/",
  "locale": "fr",
  "title": "@unifast/core",
  "description": "Définitions de types TypeScript, utilitaires HAST et classes d'erreurs partagés par les paquets runtime d'unifast",
  "section": "packages",
  "body": "## Vue d'ensemble\n\n`@unifast/core` fournit les définitions de types TypeScript partagées pour les options de compilation, les résultats, les nœuds HAST (HTML Abstract Syntax Tree), l'interface des plugins ainsi que les classes d'erreurs. C'est une dépendance des paquets runtime tels que `@unifast/node` — vous n'avez généralement **pas** besoin de l'installer directement.\n\nPour le compilateur et les plugins intégrés, utilisez [`@unifast/node`](/docs/packages/node/overview).\n\n## Installation\n\n## Définitions de types\n\n### CompileOptions\n\nConfiguration pour la fonction `compile()`.\n\n| Propriété | Type | Défaut | Description |\n|----------|------|---------|-------------|\n| `inputKind` | `\"md\" \\| \"mdx\"` | `\"md\"` | Format d'entrée |\n| `outputKind` | `\"html\" \\| \"hast\" \\| \"mdast\" \\| \"mdxJs\"` | `\"html\"` | Format de sortie |\n| `gfm` | `object` | - | Paramètres GitHub Flavored Markdown |\n| `gfm.tables` | `boolean` | - | Activer les tableaux GFM |\n| `gfm.taskList` | `boolean` | - | Activer les cases à cocher de liste de tâches |\n| `gfm.strikethrough` | `boolean` | - | Activer le `~~texte barré~~` |\n| `gfm.footnotes` | `boolean` | - | Activer les notes de bas de page |\n| `gfm.autolink` | `boolean` | - | Activer la création automatique de liens à partir d'URL |\n| `frontmatter` | `object` | - | Paramètres d'analyse du frontmatter |\n| `frontmatter.yaml` | `boolean` | - | Analyser le frontmatter YAML |\n| `frontmatter.toml` | `boolean` | - | Analyser le frontmatter TOML |\n| `frontmatter.json` | `boolean` | - | Analyser le frontmatter JSON |\n| `rawHtml` | `\"disallow\" \\| \"allowDangerous\" \\| \"parseAndSanitize\"` | - | Mode de traitement du HTML brut dans la source |\n| `sanitize` | `object` | - | Paramètres d'assainissement HTML |\n| `sanitize.enabled` | `boolean` | - | Activer l'assainissement |\n| `sanitize.schema` | `SanitizeSchema` | - | Règles d'assainissement personnalisées |\n| `highlight` | `object` | - | Paramètres de coloration syntaxique |\n| `highlight.enabled` | `boolean` | - | Activer la coloration syntaxique |\n| `highlight.engine` | `\"none\" \\| \"syntect\" \\| \"treeSitter\"` | - | Moteur de coloration |\n| `slug` | `object` | - | Paramètres de génération de slugs de titres |\n| `slug.mode` | `\"github\" \\| \"unicode\"` | - | Algorithme de génération de slug |\n| `toc` | `object` | - | Paramètres de table des matières |\n| `toc.enabled` | `boolean` | - | Activer l'extraction de la TOC |\n| `toc.maxDepth` | `number` | - | Profondeur maximale des titres à inclure |\n| `diagnostics` | `object` | - | Paramètres de sortie des diagnostics |\n| `diagnostics.format` | `\"compact\" \\| \"verbose\"` | - | Format des diagnostics |\n| `cache` | `object` | - | Paramètres de mise en cache |\n| `cache.enabled` | `boolean` | - | Activer la mise en cache des résultats |\n| `cache.dir` | `string` | - | Chemin du répertoire de cache |\n| `plugins` | `UnifastPlugin[]` | `[]` | Tableau des plugins à appliquer |\n\n### CompileResult\n\nValeur retournée par la fonction `compile()`.\n\n| Propriété | Type | Description |\n|----------|------|-------------|\n| `output` | `string \\| object` | Sortie compilée (chaîne HTML, JSON HAST ou JSON MDAST selon `outputKind`) |\n| `frontmatter` | `Record<string, unknown>` | Métadonnées frontmatter analysées |\n| `diagnostics` | `Diagnostic[]` | Tableau des avertissements et erreurs |\n| `stats` | `{ parseMs, transformMs, emitMs }` | Détail du temps passé, en millisecondes |\n| `toc` | `TocEntry[]` | Entrées de la table des matières extraites |\n\n### Diagnostic\n\n| Propriété | Type | Description |\n|----------|------|-------------|\n| `level` | `\"error\" \\| \"warn\"` | Niveau de gravité |\n| `message` | `string` | Message lisible |\n| `start` | `number \\| undefined` | Décalage d'octet de début dans la source |\n| `end` | `number \\| undefined` | Décalage d'octet de fin dans la source |\n| `line` | `number \\| undefined` | Numéro de ligne (commençant à 1) |\n| `column` | `number \\| undefined` | Numéro de colonne (commençant à 1) |\n\n### TocEntry\n\nUn titre unique extrait pour la table des matières.\n\n| Propriété | Type | Description |\n|----------|------|-------------|\n| `depth` | `number` | Niveau de titre (1-6) |\n| `text` | `string` | Contenu textuel brut du titre |\n| `slug` | `string` | Slug généré pour l'ancre du lien |\n\n### SanitizeSchema\n\nRègles d'assainissement personnalisées.\n\n| Propriété | Type | Description |\n|----------|------|-------------|\n| `allowedTags` | `string[]` | Balises HTML autorisées |\n| `allowedAttributes` | `Record<string, string[]>` | Attributs autorisés par balise |\n| `allowedProtocols` | `Record<string, string[]>` | Protocoles d'URL autorisés par attribut |\n\n### UnifastPlugin\n\nL'interface de plugin pour étendre unifast.\n\n| Propriété | Type | Description |\n|----------|------|-------------|\n| `name` | `string` | Nom unique du plugin |\n| `options?` | `Partial<CompileOptions>` | Options à fusionner dans les options de compilation |\n| `hastTransform?` | `(hast: HastRoot) => HastRoot` | Transforme l'arbre HAST après compilation |\n\n### Types de nœuds HAST\n\n| Type | Champ `type` | Propriétés | Description |\n|------|-------------|------------|-------------|\n| `HastRoot` | `\"root\"` | `children: HastNode[]` | Nœud racine de l'arbre |\n| `HastElement` | `\"element\"` | `tagName`, `properties`, `children` | Un élément HTML |\n| `HastText` | `\"text\"` | `value: string` | Un nœud texte |\n| `HastRaw` | `\"raw\"` | `value: string` | Passage direct de HTML brut |\n| `HastComment` | `\"comment\"` | `value: string` | Un commentaire HTML |\n| `HastDoctype` | `\"doctype\"` | - | Un nœud `<!DOCTYPE html>` |\n\n`HastNode` est le type union : `HastRoot | HastElement | HastText | HastRaw | HastComment | HastDoctype`\n\n## Classes d'erreurs\n\n| Classe | Étend | Propriétés | Description |\n|-------|---------|------------|-------------|\n| `UnifastError` | `Error` | `code?: string`, `span?: { start, end }` | Classe d'erreur de base pour toutes les erreurs unifast |\n| `ParseError` | `UnifastError` | `code: \"PARSE_ERROR\"` | Levée lorsque l'entrée Markdown/MDX ne peut pas être analysée |\n| `CompileError` | `UnifastError` | `code: \"COMPILE_ERROR\"` | Levée lorsque la compilation échoue après l'analyse |\n\n```ts\n\ntry {\n  // ... compile something\n} catch (err) {\n  if (err instanceof ParseError) {\n    console.error(`Parse error at ${err.span?.start}: ${err.message}`);\n  } else if (err instanceof CompileError) {\n    console.error(`Compile error: ${err.message}`);\n  }\n}\n```\n\n## Résumé des exports\n\n| Export | Nature | Description |\n|--------|------|-------------|\n| `CompileOptions` | type | Configuration de compilation |\n| `CompileResult` | type | Résultat de compilation |\n| `TocEntry` | type | Entrée de table des matières |\n| `SanitizeSchema` | type | Règles d'assainissement |\n| `UnifastPlugin` | type | Interface de plugin |\n| `HastNode` | type | Union de tous les types de nœuds HAST |\n| `HastRoot` | type | Nœud racine HAST |\n| `HastElement` | type | Nœud élément HAST |\n| `HastText` | type | Nœud texte HAST |\n| `HastRaw` | type | Nœud HTML brut HAST |\n| `HastComment` | type | Nœud commentaire HAST |\n| `HastDoctype` | type | Nœud doctype HAST |\n| `hastToHtml` | fonction | Sérialiseur HAST vers HTML |\n| `escapeHtml` | fonction | Échappe les caractères spéciaux HTML (`&`, `<`, `>`, `\"`) |\n| `extractLang` | fonction | Extrait l'identifiant de langage d'un élément `<code>` HAST |\n| `extractText` | fonction | Extrait le contenu textuel brut d'un nœud HAST |\n| `findCodeChild` | fonction | Trouve l'élément enfant `<code>` à l'intérieur d'un élément `<pre>` |\n| `visitHast` | fonction | Utilitaire de type visiteur pour parcourir les arbres HAST |\n| `UnifastError` | classe | Classe d'erreur de base |\n| `ParseError` | classe | Classe d'erreur d'analyse |\n| `CompileError` | classe | Classe d'erreur de compilation |",
  "alternates": [
    {
      "locale": "en",
      "url": "https://unifast.dev/docs/packages/core/overview/",
      "api": "https://unifast.dev//api/docs/packages/core/overview.json"
    },
    {
      "locale": "ja",
      "url": "https://unifast.dev/ja/docs/packages/core/overview/",
      "api": "https://unifast.dev//api/ja/docs/packages/core/overview.json"
    },
    {
      "locale": "zh-CN",
      "url": "https://unifast.dev/zh-CN/docs/packages/core/overview/",
      "api": "https://unifast.dev//api/zh-CN/docs/packages/core/overview.json"
    },
    {
      "locale": "zh-TW",
      "url": "https://unifast.dev/zh-TW/docs/packages/core/overview/",
      "api": "https://unifast.dev//api/zh-TW/docs/packages/core/overview.json"
    },
    {
      "locale": "ko",
      "url": "https://unifast.dev/ko/docs/packages/core/overview/",
      "api": "https://unifast.dev//api/ko/docs/packages/core/overview.json"
    },
    {
      "locale": "fr",
      "url": "https://unifast.dev/fr/docs/packages/core/overview/",
      "api": "https://unifast.dev//api/fr/docs/packages/core/overview.json"
    },
    {
      "locale": "it",
      "url": "https://unifast.dev/it/docs/packages/core/overview/",
      "api": "https://unifast.dev//api/it/docs/packages/core/overview.json"
    },
    {
      "locale": "es",
      "url": "https://unifast.dev/es/docs/packages/core/overview/",
      "api": "https://unifast.dev//api/es/docs/packages/core/overview.json"
    },
    {
      "locale": "pt-BR",
      "url": "https://unifast.dev/pt-BR/docs/packages/core/overview/",
      "api": "https://unifast.dev//api/pt-BR/docs/packages/core/overview.json"
    },
    {
      "locale": "de",
      "url": "https://unifast.dev/de/docs/packages/core/overview/",
      "api": "https://unifast.dev//api/de/docs/packages/core/overview.json"
    },
    {
      "locale": "ru",
      "url": "https://unifast.dev/ru/docs/packages/core/overview/",
      "api": "https://unifast.dev//api/ru/docs/packages/core/overview.json"
    },
    {
      "locale": "hi",
      "url": "https://unifast.dev/hi/docs/packages/core/overview/",
      "api": "https://unifast.dev//api/hi/docs/packages/core/overview.json"
    },
    {
      "locale": "id",
      "url": "https://unifast.dev/id/docs/packages/core/overview/",
      "api": "https://unifast.dev//api/id/docs/packages/core/overview.json"
    },
    {
      "locale": "tr",
      "url": "https://unifast.dev/tr/docs/packages/core/overview/",
      "api": "https://unifast.dev//api/tr/docs/packages/core/overview.json"
    },
    {
      "locale": "vi",
      "url": "https://unifast.dev/vi/docs/packages/core/overview/",
      "api": "https://unifast.dev//api/vi/docs/packages/core/overview.json"
    }
  ]
}
