Kezdő lépések
Telepítés
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:
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:
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:
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 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 oldalon megtudhatja, hogyan listázhatja a teljes készletet, a Témák 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:
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.