Darbo pradžia
Diegimas
composer require shikiphp/shikiphp
shikiphp reikia PHP 8.2 arba naujesnės versijos su ext-json ir ext-mbstring. Beveik kiekviename PHP rinkinyje abi šios galimybės įjungtos. Daugiau nieko nereikia: Node, savųjų Oniguruma sąsajų ar papildomų plėtinių.
Pirmasis blokas
Statinis fasadas Shikiphp yra greičiausias būdas pradėti. Perduokite kodą, kalbos ID ir temos ID:
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 grąžina visą, savarankiškai stilizuotą <pre class="shiki …"> bloką. Priekinio plano ir fono spalvos įrašomos tiesiai į <pre>, todėl blokas tinkamai atvaizduojamas be papildomo stiliaus failo.
Dvi temos (šviesioji ir tamsioji)
Vietoj vieno theme perduokite themes žemėlapį. shikiphp generuoja CSS kintamuosius (pavyzdžiui, Shiki), todėl vienas atvaizduotas blokas prisitaiko prie šviesiojo ir tamsiojo režimo:
use Shikiphp\Shikiphp;
$code = 'const answer: number = 42';
echo Shikiphp::codeToHtml($code, [
'lang' => 'ts',
'themes' => ['light' => 'github-light', 'dark' => 'github-dark'],
]);
Pagal numatytuosius nustatymus temos light spalvos nustatomos tiesiogiai, o dark pateikiama per --shiki-dark kintamuosius. Tamsiąją temą įjunkite nedideliu kiekiu CSS — tą patį fragmentą dokumentuoja 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;
}
Parinktimi defaultColor galite pasirinkti, kurios temos spalvos bus nustatytos tiesiogiai, arba nustatyti defaultColor: false, kad būtų generuojami tik kintamieji.
Kalbų ID ir slapyvardžiai
Kalbos nurodomos pagal jų Shiki ID arba slapyvardį — php, ts, js, rust, python, html ir t. t. Kaip išvardyti viską, kas įtraukta į paketą, žr. Kalbos, o temų ID rasite puslapyje Temos.
Pakartotinis paryškintuvo naudojimas
Fasadas pagal poreikį sukuria ir talpykloje saugo paryškintuvą Highlighter, todėl pakartotinai iškvietus Shikiphp::codeToHtml vėl naudojamos tos pačios gramatikų ir temų talpyklos. Jei reikia išsamesnio API (HAST išvesties, pasirinktinių gramatikų, žetonų tinklelių), gaukite egzempliorių tiesiogiai:
use Shikiphp\Shikiphp;
$code = 'fn main() {}';
$highlighter = Shikiphp::highlighter();
$hast = $highlighter->codeToHast($code, ['lang' => 'rust', 'theme' => 'nord']);
Visą funkcionalumą rasite API.