
# Kezdő lépések

## Telepítés

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

A shikiphp használatához PHP 8.2 vagy újabb verzió szükséges, `ext-json` és `ext-mbstring` támogatással — ezek szinte minden PHP buildben engedélyezve vannak. Másra nincs szükség: se Node-ra, se natív Oniguruma kötésre, se további kiterjesztésekre.

## Az első blokk

A statikus `Shikiphp` homlokzat a leggyorsabb kezdés. Adja meg a kódot, a nyelvazonosítót és a témaazonosítót:

```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;
```

A `codeToHtml` teljes, saját stílusú `<pre class="shiki …">` blokkot ad vissza. Az előtér- és háttérszínek közvetlenül a `<pre>` elemre kerülnek, így a blokk további stíluslap nélkül is helyesen jelenik meg.

## Kettős témák (világos és sötét)

Egyetlen `theme` helyett adjon meg egy `themes` leképezést. A shikiphp CSS változókat bocsát ki (például Shiki), így egyetlen megjelenített blokk alkalmazkodik a világos és sötét módhoz:

```php
use Shikiphp\Shikiphp;

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

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

Alapértelmezés szerint a `light` témájának színei lesznek a közvetlen alapértékek, a `dark` pedig a `--shiki-dark` változókon keresztül érhető el. A sötét témát kevés CSS segítségével aktiválhatja — ugyanazt a kódrészletet dokumentálja a 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;
}
```

A [`defaultColor`](https://shikiphp.inline0.dev/hu/docs/options#defaultcolor) beállítással választhatja ki, melyik téma legyen a közvetlen alapértelmezés, vagy beállíthatja a `defaultColor: false` értéket, hogy csak változók kerüljenek kibocsátásra.

## Nyelvazonosítók és aliasok

A nyelvekre Shiki azonosítójuk vagy aliasuk alapján hivatkozhat — `php`, `ts`, `js`, `rust`, `python`, `html` és így tovább. A [Nyelvek](https://shikiphp.inline0.dev/hu/docs/languages) oldalon megtudhatja, hogyan listázhatja a teljes készletet, a [Témák](https://shikiphp.inline0.dev/hu/docs/themes) oldalon pedig megtalálja a témaazonosítókat.

## A kiemelő újbóli használata

A homlokzat lustán hoz létre és gyorsítótáraz egy beépített `Highlighter` példányt, ezért a `Shikiphp::codeToHtml` ismételt hívásai ugyanazokat a nyelvtan- és témagyorsítótárakat használják. Ha a teljesebb API szolgáltatáskészletre van szüksége (HAST-kimenet, egyéni nyelvtanok, tokenrácsok), kérje le közvetlenül a példányt:

```php
use Shikiphp\Shikiphp;

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

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

A teljes felületért lásd: [API](https://shikiphp.inline0.dev/hu/docs/api).
