Pāriet uz saturu

Darba sākšana

Instalēšana

Apvalks
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, 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:

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.