{
  "url": "https://unifast.dev/it/docs/packages/core/overview/",
  "locale": "it",
  "title": "@unifast/core",
  "description": "Definizioni di tipi TypeScript, utility HAST e classi di errore condivise tra i pacchetti runtime di unifast",
  "section": "packages",
  "body": "## Panoramica\n\n`@unifast/core` fornisce definizioni di tipi TypeScript condivise per le opzioni di compilazione, i risultati, i nodi HAST (HTML Abstract Syntax Tree), l'interfaccia dei plugin e le classi di errore. È una dipendenza dei pacchetti runtime come `@unifast/node`: in genere **non** è necessario installarlo direttamente.\n\nPer il compilatore e i plugin integrati, usa [`@unifast/node`](/docs/packages/node/overview).\n\n## Installazione\n\n## Definizioni dei tipi\n\n### CompileOptions\n\nConfigurazione per la funzione `compile()`.\n\n| Proprietà | Tipo | Predefinito | Descrizione |\n|-----------|------|-------------|-------------|\n| `inputKind` | `\"md\" \\| \"mdx\"` | `\"md\"` | Formato di input |\n| `outputKind` | `\"html\" \\| \"hast\" \\| \"mdast\" \\| \"mdxJs\"` | `\"html\"` | Formato di output |\n| `gfm` | `object` | - | Impostazioni GitHub Flavored Markdown |\n| `gfm.tables` | `boolean` | - | Abilita le tabelle GFM |\n| `gfm.taskList` | `boolean` | - | Abilita le checkbox degli elenchi di attività |\n| `gfm.strikethrough` | `boolean` | - | Abilita `~~strikethrough~~` |\n| `gfm.footnotes` | `boolean` | - | Abilita le note a piè di pagina |\n| `gfm.autolink` | `boolean` | - | Abilita la creazione automatica di link dagli URL |\n| `frontmatter` | `object` | - | Impostazioni di parsing del frontmatter |\n| `frontmatter.yaml` | `boolean` | - | Analizza il frontmatter YAML |\n| `frontmatter.toml` | `boolean` | - | Analizza il frontmatter TOML |\n| `frontmatter.json` | `boolean` | - | Analizza il frontmatter JSON |\n| `rawHtml` | `\"disallow\" \\| \"allowDangerous\" \\| \"parseAndSanitize\"` | - | Come gestire l'HTML raw nel sorgente |\n| `sanitize` | `object` | - | Impostazioni di sanitizzazione HTML |\n| `sanitize.enabled` | `boolean` | - | Abilita la sanitizzazione |\n| `sanitize.schema` | `SanitizeSchema` | - | Regole di sanitizzazione personalizzate |\n| `highlight` | `object` | - | Impostazioni di evidenziazione della sintassi |\n| `highlight.enabled` | `boolean` | - | Abilita l'evidenziazione della sintassi |\n| `highlight.engine` | `\"none\" \\| \"syntect\" \\| \"treeSitter\"` | - | Motore di evidenziazione |\n| `slug` | `object` | - | Impostazioni di generazione degli slug dei titoli |\n| `slug.mode` | `\"github\" \\| \"unicode\"` | - | Algoritmo di generazione degli slug |\n| `toc` | `object` | - | Impostazioni della tabella dei contenuti |\n| `toc.enabled` | `boolean` | - | Abilita l'estrazione del TOC |\n| `toc.maxDepth` | `number` | - | Profondità massima dei titoli da includere |\n| `diagnostics` | `object` | - | Impostazioni di output della diagnostica |\n| `diagnostics.format` | `\"compact\" \\| \"verbose\"` | - | Formato della diagnostica |\n| `cache` | `object` | - | Impostazioni della cache |\n| `cache.enabled` | `boolean` | - | Abilita la cache dei risultati |\n| `cache.dir` | `string` | - | Percorso della directory della cache |\n| `plugins` | `UnifastPlugin[]` | `[]` | Array di plugin da applicare |\n\n### CompileResult\n\nRestituito dalla funzione `compile()`.\n\n| Proprietà | Tipo | Descrizione |\n|-----------|------|-------------|\n| `output` | `string \\| object` | Output compilato (stringa HTML, JSON HAST o JSON MDAST a seconda di `outputKind`) |\n| `frontmatter` | `Record<string, unknown>` | Metadati del frontmatter analizzati |\n| `diagnostics` | `Diagnostic[]` | Array di avvisi ed errori |\n| `stats` | `{ parseMs, transformMs, emitMs }` | Dettaglio dei tempi in millisecondi |\n| `toc` | `TocEntry[]` | Voci della tabella dei contenuti estratte |\n\n### Diagnostic\n\n| Proprietà | Tipo | Descrizione |\n|-----------|------|-------------|\n| `level` | `\"error\" \\| \"warn\"` | Livello di gravità |\n| `message` | `string` | Messaggio leggibile |\n| `start` | `number \\| undefined` | Offset di byte iniziale nel sorgente |\n| `end` | `number \\| undefined` | Offset di byte finale nel sorgente |\n| `line` | `number \\| undefined` | Numero di riga (a partire da 1) |\n| `column` | `number \\| undefined` | Numero di colonna (a partire da 1) |\n\n### TocEntry\n\nUn singolo titolo estratto per la tabella dei contenuti.\n\n| Proprietà | Tipo | Descrizione |\n|-----------|------|-------------|\n| `depth` | `number` | Livello del titolo (1-6) |\n| `text` | `string` | Contenuto testuale semplice del titolo |\n| `slug` | `string` | Slug generato per il link di ancoraggio |\n\n### SanitizeSchema\n\nRegole di sanitizzazione personalizzate.\n\n| Proprietà | Tipo | Descrizione |\n|-----------|------|-------------|\n| `allowedTags` | `string[]` | Tag HTML da consentire |\n| `allowedAttributes` | `Record<string, string[]>` | Attributi consentiti per ciascun tag |\n| `allowedProtocols` | `Record<string, string[]>` | Protocolli URL consentiti per ciascun attributo |\n\n### UnifastPlugin\n\nL'interfaccia dei plugin per estendere unifast.\n\n| Proprietà | Tipo | Descrizione |\n|-----------|------|-------------|\n| `name` | `string` | Nome univoco del plugin |\n| `options?` | `Partial<CompileOptions>` | Opzioni da unire alle opzioni di compilazione |\n| `hastTransform?` | `(hast: HastRoot) => HastRoot` | Trasforma l'albero HAST dopo la compilazione |\n\n### Tipi di nodo HAST\n\n| Tipo | Campo `type` | Proprietà | Descrizione |\n|------|--------------|-----------|-------------|\n| `HastRoot` | `\"root\"` | `children: HastNode[]` | Nodo radice dell'albero |\n| `HastElement` | `\"element\"` | `tagName`, `properties`, `children` | Un elemento HTML |\n| `HastText` | `\"text\"` | `value: string` | Un nodo di testo |\n| `HastRaw` | `\"raw\"` | `value: string` | Passthrough di HTML raw |\n| `HastComment` | `\"comment\"` | `value: string` | Un commento HTML |\n| `HastDoctype` | `\"doctype\"` | - | Un nodo `<!DOCTYPE html>` |\n\n`HastNode` è il tipo unione: `HastRoot | HastElement | HastText | HastRaw | HastComment | HastDoctype`\n\n## Classi di errore\n\n| Classe | Estende | Proprietà | Descrizione |\n|--------|---------|-----------|-------------|\n| `UnifastError` | `Error` | `code?: string`, `span?: { start, end }` | Classe di errore base per tutti gli errori di unifast |\n| `ParseError` | `UnifastError` | `code: \"PARSE_ERROR\"` | Sollevata quando l'input Markdown/MDX non può essere analizzato |\n| `CompileError` | `UnifastError` | `code: \"COMPILE_ERROR\"` | Sollevata quando la compilazione fallisce dopo il parsing |\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## Riepilogo degli export\n\n| Export | Tipo | Descrizione |\n|--------|------|-------------|\n| `CompileOptions` | type | Configurazione della compilazione |\n| `CompileResult` | type | Risultato della compilazione |\n| `TocEntry` | type | Voce della tabella dei contenuti |\n| `SanitizeSchema` | type | Regole di sanitizzazione |\n| `UnifastPlugin` | type | Interfaccia dei plugin |\n| `HastNode` | type | Unione di tutti i tipi di nodi HAST |\n| `HastRoot` | type | Nodo radice HAST |\n| `HastElement` | type | Nodo elemento HAST |\n| `HastText` | type | Nodo di testo HAST |\n| `HastRaw` | type | Nodo HTML raw HAST |\n| `HastComment` | type | Nodo di commento HAST |\n| `HastDoctype` | type | Nodo doctype HAST |\n| `hastToHtml` | function | Serializzatore da HAST a HTML |\n| `escapeHtml` | function | Esegue l'escape dei caratteri speciali HTML (`&`, `<`, `>`, `\"`) |\n| `extractLang` | function | Estrae l'identificatore del linguaggio da un elemento `<code>` HAST |\n| `extractText` | function | Estrae il contenuto testuale semplice da un nodo HAST |\n| `findCodeChild` | function | Trova l'elemento figlio `<code>` all'interno di un elemento `<pre>` |\n| `visitHast` | function | Utility con pattern visitor per attraversare gli alberi HAST |\n| `UnifastError` | class | Classe di errore base |\n| `ParseError` | class | Classe di errore di parsing |\n| `CompileError` | class | Classe di errore di compilazione |",
  "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"
    }
  ]
}
