
# Darba sākšana

## Instalēšana

```bash
composer require shikiphp/shikiphp
```

shikiphp nepieciešama PHP versija 8.2 vai jaunāka ar `ext-json` un `ext-mbstring` — abas ir iespējotas gandrīz katrā PHP būvējumā. Nekas cits nav vajadzīgs: ne Node, ne vietējā Oniguruma saistījuma, ne papildu paplašinājumu.

## Jūsu pirmais bloks

Statiskā `Shikiphp` fasāde ir ātrākais veids, kā sākt. Norādiet kodu, valodas ID un tēmas ID:

```php
use Shikiphp\Shikiphp;

$html = Shikiphp::codeToHtml(<<<'PHP'
<?php
function greet(string $name): string {
    return "Hello, {$name}!";
}
PHP, [
    'lang'  => 'php',
    'theme' => 'github-dark',
]);

echo $html;
```

`codeToHtml` atgriež pilnīgu, pašformatētu `<pre class="shiki …">` bloku. Priekšplāna un fona krāsas tiek ierakstītas iekļautā veidā elementā `<pre>`, tāpēc tas tiek pareizi attēlots bez papildu stila lapas.

## Divas tēmas (gaišā un tumšā)

Vienas `theme` vietā nododiet `themes` karti. shikiphp izvada CSS mainīgos (piemēram, Shiki), lai viens attēlotais bloks pielāgotos gaišajam un tumšajam režīmam:

```php
use Shikiphp\Shikiphp;

$code = 'const answer: number = 42';

echo Shikiphp::codeToHtml($code, [
    'lang'   => 'ts',
    'themes' => ['light' => 'github-light', 'dark' => 'github-dark'],
]);
```

Pēc noklusējuma `light` tēmas krāsas ir iekļautās noklusējuma vērtības, bet `dark` tiek nodota ar `--shiki-dark` mainīgajiem. Aktivizējiet tumšo tēmu ar nelielu CSS daudzumu — to pašu fragmentu, ko dokumentē Shiki:

```css
html.dark .shiki,
html.dark .shiki span {
  color: var(--shiki-dark) !important;
  background-color: var(--shiki-dark-bg) !important;
  /* and font styles */
  font-style: var(--shiki-dark-font-style) !important;
  font-weight: var(--shiki-dark-font-weight) !important;
  text-decoration: var(--shiki-dark-text-decoration) !important;
}
```

Varat izvēlēties, kura tēma būs iekļautā noklusējuma tēma, izmantojot opciju [`defaultColor`](https://shikiphp.inline0.dev/lv/docs/options#defaultcolor), vai iestatīt `defaultColor: false`, lai izvadītu tikai mainīgos.

## Valodu ID un aizstājvārdi

Uz valodām atsaucas pēc to Shiki ID vai aizstājvārda — `php`, `ts`, `js`, `rust`, `python`, `html` utt. Skatiet sadaļu [Valodas](https://shikiphp.inline0.dev/lv/docs/languages), lai uzzinātu, kā uzskaitīt visu komplektā iekļauto, un [Tēmas](https://shikiphp.inline0.dev/lv/docs/themes), lai skatītu tēmu ID.

## Izcēlāja atkārtota izmantošana

Fasāde pēc vajadzības izveido un saglabā kešatmiņā komplektā iekļauto `Highlighter`, tāpēc atkārtoti `Shikiphp::codeToHtml` izsaukumi izmanto tās pašas gramatiku un tēmu kešatmiņas. Ja nepieciešama pilnvērtīgāka API (HAST izvade, pielāgotas gramatikas, marķieru režģi), paņemiet instanci tieši:

```php
use Shikiphp\Shikiphp;

$code = 'fn main() {}';

$highlighter = Shikiphp::highlighter();
$hast = $highlighter->codeToHast($code, ['lang' => 'rust', 'theme' => 'nord']);
```

Pilnu iespēju klāstu skatiet sadaļā [API](https://shikiphp.inline0.dev/lv/docs/api).
