{
  "url": "https://unifast.dev/id/docs/packages/core/overview/",
  "locale": "id",
  "title": "@unifast/core",
  "description": "Definisi tipe TypeScript, utilitas HAST, dan kelas error yang dibagikan di seluruh paket runtime unifast",
  "section": "packages",
  "body": "## Ikhtisar\n\n`@unifast/core` menyediakan definisi tipe TypeScript bersama untuk opsi compile, hasil, node HAST (HTML Abstract Syntax Tree), antarmuka plugin, dan kelas error. Paket ini merupakan dependensi dari paket runtime seperti `@unifast/node` — Anda biasanya **tidak** perlu menginstalnya secara langsung.\n\nUntuk compiler dan plugin bawaan, gunakan [`@unifast/node`](/docs/packages/node/overview).\n\n## Instalasi\n\n## Definisi Tipe\n\n### CompileOptions\n\nKonfigurasi untuk fungsi `compile()`.\n\n| Properti | Tipe | Default | Deskripsi |\n|----------|------|---------|-------------|\n| `inputKind` | `\"md\" \\| \"mdx\"` | `\"md\"` | Format input |\n| `outputKind` | `\"html\" \\| \"hast\" \\| \"mdast\" \\| \"mdxJs\"` | `\"html\"` | Format output |\n| `gfm` | `object` | - | Pengaturan GitHub Flavored Markdown |\n| `gfm.tables` | `boolean` | - | Mengaktifkan tabel GFM |\n| `gfm.taskList` | `boolean` | - | Mengaktifkan checkbox task list |\n| `gfm.strikethrough` | `boolean` | - | Mengaktifkan `~~strikethrough~~` |\n| `gfm.footnotes` | `boolean` | - | Mengaktifkan footnote |\n| `gfm.autolink` | `boolean` | - | Mengaktifkan auto-linking URL |\n| `frontmatter` | `object` | - | Pengaturan parsing frontmatter |\n| `frontmatter.yaml` | `boolean` | - | Mem-parse frontmatter YAML |\n| `frontmatter.toml` | `boolean` | - | Mem-parse frontmatter TOML |\n| `frontmatter.json` | `boolean` | - | Mem-parse frontmatter JSON |\n| `rawHtml` | `\"disallow\" \\| \"allowDangerous\" \\| \"parseAndSanitize\"` | - | Cara menangani HTML mentah di sumber |\n| `sanitize` | `object` | - | Pengaturan sanitasi HTML |\n| `sanitize.enabled` | `boolean` | - | Mengaktifkan sanitasi |\n| `sanitize.schema` | `SanitizeSchema` | - | Aturan sanitasi kustom |\n| `highlight` | `object` | - | Pengaturan syntax highlighting |\n| `highlight.enabled` | `boolean` | - | Mengaktifkan syntax highlighting |\n| `highlight.engine` | `\"none\" \\| \"syntect\" \\| \"treeSitter\"` | - | Engine highlighting |\n| `slug` | `object` | - | Pengaturan generasi slug heading |\n| `slug.mode` | `\"github\" \\| \"unicode\"` | - | Algoritma generasi slug |\n| `toc` | `object` | - | Pengaturan daftar isi |\n| `toc.enabled` | `boolean` | - | Mengaktifkan ekstraksi TOC |\n| `toc.maxDepth` | `number` | - | Kedalaman heading maksimum yang disertakan |\n| `diagnostics` | `object` | - | Pengaturan output diagnostic |\n| `diagnostics.format` | `\"compact\" \\| \"verbose\"` | - | Format diagnostic |\n| `cache` | `object` | - | Pengaturan caching |\n| `cache.enabled` | `boolean` | - | Mengaktifkan caching hasil |\n| `cache.dir` | `string` | - | Path direktori cache |\n| `plugins` | `UnifastPlugin[]` | `[]` | Array plugin yang akan diterapkan |\n\n### CompileResult\n\nDikembalikan oleh fungsi `compile()`.\n\n| Properti | Tipe | Deskripsi |\n|----------|------|-------------|\n| `output` | `string \\| object` | Output kompilasi (string HTML, JSON HAST, atau JSON MDAST tergantung pada `outputKind`) |\n| `frontmatter` | `Record<string, unknown>` | Metadata frontmatter yang sudah di-parse |\n| `diagnostics` | `Diagnostic[]` | Array peringatan dan error |\n| `stats` | `{ parseMs, transformMs, emitMs }` | Rincian timing dalam milidetik |\n| `toc` | `TocEntry[]` | Entri daftar isi yang diekstrak |\n\n### Diagnostic\n\n| Properti | Tipe | Deskripsi |\n|----------|------|-------------|\n| `level` | `\"error\" \\| \"warn\"` | Tingkat severity |\n| `message` | `string` | Pesan yang dapat dibaca manusia |\n| `start` | `number \\| undefined` | Offset byte awal di sumber |\n| `end` | `number \\| undefined` | Offset byte akhir di sumber |\n| `line` | `number \\| undefined` | Nomor baris (berbasis 1) |\n| `column` | `number \\| undefined` | Nomor kolom (berbasis 1) |\n\n### TocEntry\n\nSebuah heading tunggal yang diekstrak untuk daftar isi.\n\n| Properti | Tipe | Deskripsi |\n|----------|------|-------------|\n| `depth` | `number` | Level heading (1-6) |\n| `text` | `string` | Konten teks polos dari heading |\n| `slug` | `string` | Slug yang dihasilkan untuk anchor link |\n\n### SanitizeSchema\n\nAturan sanitasi kustom.\n\n| Properti | Tipe | Deskripsi |\n|----------|------|-------------|\n| `allowedTags` | `string[]` | Tag HTML yang diizinkan |\n| `allowedAttributes` | `Record<string, string[]>` | Atribut yang diizinkan per tag |\n| `allowedProtocols` | `Record<string, string[]>` | Protokol URL yang diizinkan per atribut |\n\n### UnifastPlugin\n\nAntarmuka plugin untuk memperluas unifast.\n\n| Properti | Tipe | Deskripsi |\n|----------|------|-------------|\n| `name` | `string` | Nama plugin yang unik |\n| `options?` | `Partial<CompileOptions>` | Opsi yang akan digabungkan ke opsi compile |\n| `hastTransform?` | `(hast: HastRoot) => HastRoot` | Mentransformasi pohon HAST setelah kompilasi |\n\n### Tipe Node HAST\n\n| Tipe | Field `type` | Properti | Deskripsi |\n|------|-------------|------------|-------------|\n| `HastRoot` | `\"root\"` | `children: HastNode[]` | Node root dari pohon |\n| `HastElement` | `\"element\"` | `tagName`, `properties`, `children` | Sebuah elemen HTML |\n| `HastText` | `\"text\"` | `value: string` | Sebuah text node |\n| `HastRaw` | `\"raw\"` | `value: string` | Passthrough HTML mentah |\n| `HastComment` | `\"comment\"` | `value: string` | Sebuah komentar HTML |\n| `HastDoctype` | `\"doctype\"` | - | Sebuah node `<!DOCTYPE html>` |\n\n`HastNode` adalah union type: `HastRoot | HastElement | HastText | HastRaw | HastComment | HastDoctype`\n\n## Kelas Error\n\n| Kelas | Mewarisi | Properti | Deskripsi |\n|-------|---------|------------|-------------|\n| `UnifastError` | `Error` | `code?: string`, `span?: { start, end }` | Kelas error dasar untuk semua error unifast |\n| `ParseError` | `UnifastError` | `code: \"PARSE_ERROR\"` | Dilempar ketika input Markdown/MDX tidak dapat di-parse |\n| `CompileError` | `UnifastError` | `code: \"COMPILE_ERROR\"` | Dilempar ketika kompilasi gagal setelah 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## Ringkasan Export\n\n| Export | Jenis | Deskripsi |\n|--------|------|-------------|\n| `CompileOptions` | type | Konfigurasi kompilasi |\n| `CompileResult` | type | Hasil kompilasi |\n| `TocEntry` | type | Entri daftar isi |\n| `SanitizeSchema` | type | Aturan sanitasi |\n| `UnifastPlugin` | type | Antarmuka plugin |\n| `HastNode` | type | Union dari semua tipe node HAST |\n| `HastRoot` | type | Node root HAST |\n| `HastElement` | type | Node elemen HAST |\n| `HastText` | type | Node teks HAST |\n| `HastRaw` | type | Node HTML mentah HAST |\n| `HastComment` | type | Node komentar HAST |\n| `HastDoctype` | type | Node doctype HAST |\n| `hastToHtml` | function | Serializer HAST-ke-HTML |\n| `escapeHtml` | function | Escape karakter spesial HTML (`&`, `<`, `>`, `\"`) |\n| `extractLang` | function | Mengekstrak identifier bahasa dari elemen `<code>` HAST |\n| `extractText` | function | Mengekstrak konten teks polos dari node HAST |\n| `findCodeChild` | function | Menemukan elemen anak `<code>` di dalam elemen `<pre>` |\n| `visitHast` | function | Utilitas visitor pattern untuk berjalan di pohon HAST |\n| `UnifastError` | class | Kelas error dasar |\n| `ParseError` | class | Kelas error parse |\n| `CompileError` | class | Kelas error compile |",
  "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"
    }
  ]
}
