Darba sākšana
Instalēšana
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:
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:
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:
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, 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, lai uzzinātu, kā uzskaitīt visu komplektā iekļauto, un Tēmas, 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:
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.