
# Možnosti

Všetky vstupné body (`codeToHtml`, `codeToTokens`, `codeToTokensResult`, `codeToHast`) prijímajú ako druhý argument rovnaké pole možností. Povinné sú len `lang` a téma.

## `lang`

**Povinné.** Identifikátor jazyka alebo alias, ktorý sa má použiť pri tokenizácii — `php`, `ts`, `js`, `rust`, `python`, `html` a podobne. Špeciálna hodnota `'ansi'` zvýrazňuje riadiace sekvencie terminálu namiesto použitia gramatiky (pozrite si [ANSI](https://shikiphp.inline0.dev/sk/docs/ansi)).

```php
['lang' => 'php']
```

## `theme`

Identifikátor jednej témy. Povinné, ak nie je zadané `themes`.

```php
['lang' => 'php', 'theme' => 'github-dark']
```

## `themes`

Mapa kľúčov na identifikátory tém pre výstup s dvoma (alebo viacerými) témami prostredníctvom premenných CSS. Povinné, ak nie je zadané `theme`.

```php
['lang' => 'ts', 'themes' => ['light' => 'github-light', 'dark' => 'github-dark']]
```

## `defaultColor`

Ktorý kľúč v `themes` sa stane predvolenou farbou vloženou priamo do kódu (ostatné sa stanú premennými `--shiki-<key>` CSS). Predvolené je `'light'`. Nastavte na `false`, ak chcete vypísať len premenné bez predvolenej farby vloženej priamo do kódu — užitočné, keď všetky farby spravujete cez CSS.

```php
['themes' => ['light' => '…', 'dark' => '…'], 'defaultColor' => 'dark']
```

## `transformers`

Zoznam objektov `Shikiphp\Transformer\Transformer` aplikovaných v rámci pipeline. Pozrite si [Transformátory](https://shikiphp.inline0.dev/sk/docs/transformers).

```php
use Shikiphp\Transformer\Notation\NotationHighlight;

['transformers' => [new NotationHighlight()]]
```

## `decorations`

Použite triedy alebo atribúty na ľubovoľné rozsahy zdroja určené pozíciou riadka a znaku. Každá dekorácia má `{start, end, properties}`, pričom pozície sú `{line, character}` (indexované od nuly).

```php
['decorations' => [
    [
        'start'      => ['line' => 0, 'character' => 0],
        'end'        => ['line' => 0, 'character' => 5],
        'properties' => ['class' => 'highlight'],
    ],
]]
```

## `colorReplacements`

Zmeňte mapovanie farieb vo výstupe. Reťazcové položky nahrádzajú farbu globálne; vnorené položky s kľúčom názvu témy platia len pre danú tému.

```php
['colorReplacements' => [
    '#ffffff'      => '#f8f8f2',          // global
    'github-dark'  => ['#24292e' => '#000'], // only in github-dark
]]
```

## `structure`

`'classic'` (predvolené) vypíše úplnú štruktúru `pre > code > span.line > span`. `'inline'` vypíše iba rozsahy tokenov s koncami riadkov, bez obaľujúceho `pre`/`code` — užitočné pre krátke úryvky v texte.

```php
['structure' => 'inline']
```

## `tabindex`

Atribút `tabindex` prvku `<pre>`. Predvolené je `0`. Ak ho chcete vynechať, zadajte `false`.

```php
['tabindex' => false]
```

## `cssVariablePrefix`

Predpona používaná pre premenné CSS pri dvoch témach. Predvolené je `'--shiki-'`.

```php
['cssVariablePrefix' => '--my-']
```

## `mergeWhitespaces`

Určuje spracovanie tokenov bielych znakov. `true` (predvolené) zlučuje tokeny obsahujúce len biele znaky s nasledujúcim tokenom; `'never'` rozdeľuje úvodné a koncové biele znaky každého tokenu na samostatné tokeny; `false` ponecháva tokeny bez zmeny.

```php
['mergeWhitespaces' => 'never']
```

## `tokenizeMaxLineLength`

Preskočí tokenizáciu (a vypíše jeden obyčajný token) každého riadka, ktorý dosahuje túto dĺžku alebo je dlhší; dĺžka sa počíta v 16-bitových kódových jednotkách UTF-16. Predvolene bez obmedzenia. Ochrana pred patologicky dlhými jednoriadkovými vstupmi.

```php
['tokenizeMaxLineLength' => 1000]
```

## `meta`

Ľubovoľné metadáta sprístupnené transformátorom cez kontext transformátora — napríklad metaznak reťazca ohraničeného kódu, ktorý využívajú [`MetaHighlight`](https://shikiphp.inline0.dev/sk/docs/transformers#metahighlight) a [`MetaWordHighlight`](https://shikiphp.inline0.dev/sk/docs/transformers#metawordhighlight).

```php
['meta' => ['__raw' => '{1,3-5}']]
```

## `grammarState`

`Shikiphp\GrammarState` (z `getLastGrammarState`) na obnovenie tokenizácie od daného bodu. Prenesené hodnoty `lang` a theme(s) sa musia zhodovať. Pozrite si [`getLastGrammarState`](https://shikiphp.inline0.dev/sk/docs/api#shikiphpgetlastgrammarstate).
