
# Možnosti

Vse vstopne točke (`codeToHtml`, `codeToTokens`, `codeToTokensResult`,
`codeToHast`) kot drugi argument sprejmejo isto polje možnosti. Obvezna sta samo `lang`
in tema.

## `lang`

**Obvezno.** ID ali vzdevek jezika za tokenizacijo — `php`, `ts`, `js`,
`rust`, `python`, `html` in tako dalje. Posebna vrednost `'ansi'` poudari
ubežna zaporedja terminala namesto uporabe slovnice (glejte [ANSI](https://shikiphp.inline0.dev/sl/docs/ansi)).

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

## `theme`

En sam ID teme. Obvezno, razen če je podan `themes`.

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

## `themes`

Preslikava ključev v ID-je tem za izhod z dvema (ali več) temami prek spremenljivk CSS.
Obvezno, razen če je podan `theme`.

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

## `defaultColor`

Kateri ključ v `themes` postane privzeta barva v vrstici (ostali postanejo
spremenljivke `--shiki-<key>` CSS). Privzeto je `'light'`. Nastavite na `false`, če želite ustvariti
samo spremenljivke brez privzete barve v vrstici — uporabno, kadar vse barve upravljate v CSS.

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

## `transformers`

Seznam objektov `Shikiphp\Transformer\Transformer`, uporabljenih prek
cevovoda. Glejte [Transformatorji](https://shikiphp.inline0.dev/sl/docs/transformers).

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

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

## `decorations`

Uporabite razrede ali atribute za poljubne razpone izvorne kode glede na vrstico/znak
položaja. Vsak okrasek je `{start, end, properties}`, pri čemer so položaji
`{line, character}` (z začetkom pri nič).

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

## `colorReplacements`

Ponovno preslikajte barve v izhodu. Nizi nadomestijo barvo povsod; ugnezdeni
vnosi, določeni z imenom teme, veljajo samo za to temo.

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

## `structure`

`'classic'` (privzeto) ustvari celotno strukturo `pre > code > span.line > span`.
`'inline'` ustvari samo razpone žetonov s prelomi vrstic, brez ovoja
`pre`/`code` — uporabno za vstavke v vrstici.

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

## `tabindex`

Atribut `tabindex` elementa `<pre>`. Privzeto je `0`. Podajte `false`,
če ga želite izpustiti.

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

## `cssVariablePrefix`

Predpona za spremenljivke CSS z dvema temama. Privzeto je `'--shiki-'`.

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

## `mergeWhitespaces`

Nadzira obravnavo presledkovnih žetonov. `true` (privzeto) združi žetone, ki vsebujejo samo presledke, z naslednjim žetonom; `'never'` razdeli začetne in končne presledke vsakega žetona v samostojna žetona; `false` pusti žetone nespremenjene.

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

## `tokenizeMaxLineLength`

Preskoči tokenizacijo (in ustvari en sam navadni žeton) za vsako vrstico te dolžine ali daljšo, merjeno v 16-bitnih kodnih enotah. Privzeto ni omejitve. Zaščita pred nenavadno dolgimi enovrstičnimi vnosi.

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

## `meta`

Poljubni metapodatki, posredovani transformatorjem prek konteksta transformatorja —
na primer metaniz, povezan z ograjo kode, ki ga porabita
[`MetaHighlight`](https://shikiphp.inline0.dev/sl/docs/transformers#metahighlight) in
[`MetaWordHighlight`](https://shikiphp.inline0.dev/sl/docs/transformers#metawordhighlight).

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

## `grammarState`

`Shikiphp\GrammarState` (iz `getLastGrammarState`) za nadaljevanje tokenizacije
od. Prenesena `lang` in theme(s) se morata ujemati. Glejte
[`getLastGrammarState`](https://shikiphp.inline0.dev/sl/docs/api#shikiphpgetlastgrammarstate).
