{
  "url": "https://unifast.dev/hi/docs/guides/syntax-highlighting/",
  "locale": "hi",
  "title": "Syntax Highlighting",
  "description": "unifast में चार syntax highlighting engines में से चुनें: tree-sitter, syntect, Shiki, और highlight.js।",
  "section": "guides",
  "body": "unifast चार syntax highlighting engines को सपोर्ट करता है। दो Rust कंपाइलर के अंदर चलते हैं (**tree-sitter**, **syntect**), और दो JavaScript में चलते हैं (**Shiki**, **highlight.js**)।\n\n### तुलना\n\n| | tree-sitter | syntect | Shiki | highlight.js |\n|---|-------------|---------|-------|--------------|\n| **Runtime** | Rust (built-in) | Rust (built-in) | JavaScript | JavaScript |\n| **Parsing** | AST-based (tree-sitter grammars) | Regex-based (TextMate grammars) | Regex-based (VS Code grammars) | Regex-based (highlight.js grammars) |\n| **गति** | सबसे तेज़ | तेज़ | धीमा | धीमा |\n| **भाषाएँ** | 29 भाषाएँ + syntect fallback | 100+ (TextMate) | VS Code grammars | 190+ |\n| **CSS output** | Class-based (`ts-*`) | Class-based (`sy-*`) | Inline styles या class-based | Class-based (`hljs`) |\n| **Package** | `@unifast/node` | `@unifast/node` | `@unifast/shiki` | `@unifast/highlight` |\n| **सर्वश्रेष्ठ उपयोग** | सटीक highlighting, व्यापक coverage | सरल setup, तेज़ startup | fine-grained theme control | highlight.js theme ecosystem |\n\n### tree-sitter का उपयोग\n\ntree-sitter सटीक syntax highlighting के लिए AST-based parsing का उपयोग करता है। यह Rust कंपाइलर के अंदर चलता है और 29 भाषाओं को natively सपोर्ट करता है। असमर्थित भाषाओं के लिए, यह अपने आप syntect पर fall back करता है।\n\ntree-sitter `@unifast/node` में शामिल है — अलग से install करने की ज़रूरत नहीं है।\n\n```ts\n\nconst result = compile(\n  '```typescript\\nconst x: number = 42;\\n```',\n  { plugins: [treeSitter()] }\n);\n```\n\ntree-sitter `ts-` prefix वाले CSS class names उत्पन्न करता है। आपको अपनी stylesheet में इन classes के लिए CSS rules प्रदान करने होंगे।\n\n#### समर्थित भाषाएँ\n\nTypeScript, TSX, JavaScript, HTML, CSS, Python, Rust, JSON, YAML, Go, Ruby, TOML, Swift, PHP, Java, Lua, Scala, Zig, Elixir, OCaml, R, Make, Nix, Regex, Erlang, Bash, C, C++, CMake\n\nLanguage aliases भी समर्थित हैं (जैसे `ts`, `py`, `rs`, `sh`, `yml`, `rb`)।\n\n### syntect का उपयोग\n\nsyntect TextMate grammars का उपयोग करता है और पूरी तरह से Rust कंपाइलर के अंदर चलता है — कोई अतिरिक्त JavaScript overhead नहीं।\n\nsyntect `@unifast/node` में शामिल है — अलग से install करने की ज़रूरत नहीं है।\n\n```ts\n\nconst result = compile(\n  '```typescript\\nconst x: number = 42;\\n```',\n  { plugins: [syntect()] }\n);\n```\n\nsyntect `sy-` prefix वाले CSS class names उत्पन्न करता है। आपको अपनी stylesheet में इन classes के लिए CSS rules प्रदान करने होंगे।\n\n### Shiki का उपयोग\n\nShiki theme support के साथ सटीक highlighting के लिए VS Code के TextMate grammar engine का उपयोग करता है।\n\n```ts\n\nconst shiki = await createShikiPlugin({\n  theme: \"github-dark\",\n  langs: [\"typescript\", \"rust\", \"bash\"],\n});\n\nconst result = compile(\n  '```typescript\\nconst x: number = 42;\\n```',\n  { plugins: [shiki] }\n);\n```\n\n### highlight.js का उपयोग\n\n`@unifast/highlight` [lowlight](https://github.com/wooorm/lowlight) (highlight.js) का उपयोग करता है और JavaScript में एक HAST transform के रूप में चलता है। यह 190+ भाषाओं को सपोर्ट करता है और किसी भी highlight.js theme के साथ काम करता है।\n\n```ts\n\nconst result = compile(\n  '```typescript\\nconst x: number = 42;\\n```',\n  { plugins: [highlight()] }\n);\n```\n\nhighlight.js `hljs` prefix के साथ class names उत्पन्न करता है। styling के लिए किसी भी [highlight.js theme CSS](https://highlightjs.org/demo) का उपयोग करें।\n\n### Line Numbers\n\nसभी engines line numbers को सपोर्ट करते हैं। उन्हें compile options में enable करें:\n\n```ts\n\nconst result = compile(source, {\n  plugins: [treeSitter()],\n  lineNumbers: true,\n});\n```\n\nप्रत्येक line को CSS-based styling के लिए `data-line` attribute के साथ एक `<span>` में wrap किया जाता है:\n\n```css\n[data-line]::before {\n  content: attr(data-line);\n  display: inline-block;\n  width: 2rem;\n  text-align: right;\n  margin-right: 1rem;\n  color: #6b7280;\n}\n```\n\n### यह भी देखें\n\n- [syntect()](/docs/packages/node/syntect) - syntect API reference\n- [createShikiPlugin()](/docs/packages/shiki/create-shiki-plugin) - Shiki API reference",
  "alternates": [
    {
      "locale": "en",
      "url": "https://unifast.dev/docs/guides/syntax-highlighting/",
      "api": "https://unifast.dev//api/docs/guides/syntax-highlighting.json"
    },
    {
      "locale": "ja",
      "url": "https://unifast.dev/ja/docs/guides/syntax-highlighting/",
      "api": "https://unifast.dev//api/ja/docs/guides/syntax-highlighting.json"
    },
    {
      "locale": "zh-CN",
      "url": "https://unifast.dev/zh-CN/docs/guides/syntax-highlighting/",
      "api": "https://unifast.dev//api/zh-CN/docs/guides/syntax-highlighting.json"
    },
    {
      "locale": "zh-TW",
      "url": "https://unifast.dev/zh-TW/docs/guides/syntax-highlighting/",
      "api": "https://unifast.dev//api/zh-TW/docs/guides/syntax-highlighting.json"
    },
    {
      "locale": "ko",
      "url": "https://unifast.dev/ko/docs/guides/syntax-highlighting/",
      "api": "https://unifast.dev//api/ko/docs/guides/syntax-highlighting.json"
    },
    {
      "locale": "fr",
      "url": "https://unifast.dev/fr/docs/guides/syntax-highlighting/",
      "api": "https://unifast.dev//api/fr/docs/guides/syntax-highlighting.json"
    },
    {
      "locale": "it",
      "url": "https://unifast.dev/it/docs/guides/syntax-highlighting/",
      "api": "https://unifast.dev//api/it/docs/guides/syntax-highlighting.json"
    },
    {
      "locale": "es",
      "url": "https://unifast.dev/es/docs/guides/syntax-highlighting/",
      "api": "https://unifast.dev//api/es/docs/guides/syntax-highlighting.json"
    },
    {
      "locale": "pt-BR",
      "url": "https://unifast.dev/pt-BR/docs/guides/syntax-highlighting/",
      "api": "https://unifast.dev//api/pt-BR/docs/guides/syntax-highlighting.json"
    },
    {
      "locale": "de",
      "url": "https://unifast.dev/de/docs/guides/syntax-highlighting/",
      "api": "https://unifast.dev//api/de/docs/guides/syntax-highlighting.json"
    },
    {
      "locale": "ru",
      "url": "https://unifast.dev/ru/docs/guides/syntax-highlighting/",
      "api": "https://unifast.dev//api/ru/docs/guides/syntax-highlighting.json"
    },
    {
      "locale": "hi",
      "url": "https://unifast.dev/hi/docs/guides/syntax-highlighting/",
      "api": "https://unifast.dev//api/hi/docs/guides/syntax-highlighting.json"
    },
    {
      "locale": "id",
      "url": "https://unifast.dev/id/docs/guides/syntax-highlighting/",
      "api": "https://unifast.dev//api/id/docs/guides/syntax-highlighting.json"
    },
    {
      "locale": "tr",
      "url": "https://unifast.dev/tr/docs/guides/syntax-highlighting/",
      "api": "https://unifast.dev//api/tr/docs/guides/syntax-highlighting.json"
    },
    {
      "locale": "vi",
      "url": "https://unifast.dev/vi/docs/guides/syntax-highlighting/",
      "api": "https://unifast.dev//api/vi/docs/guides/syntax-highlighting.json"
    }
  ]
}
