Preskoči na vsebino

ShikiPHP

Čisti označevalnik sintakse PHP, prenos orodja Shiki. Bloke kode oblikujte s temami VS Code in slovnicami TextMate brez Node.js; izhod se ujema z Shiki 3.23.0 v primerjalnih scenarijih 214.

Terminal
composer require shikiphp/shikiphp

Najnovejša izdaja v0.1.0 MIT PHP 8.2+, ext-json, ext-mbstring

V praksi

Označite izsek iz predloge ali skripta za gradnjo PHP in izpišite rezultat HTML.

En klic za vsak blok kode

Shikiphp::codeToHtml sprejme kodo, ID jezika in ID teme. Vrne celoten blok pre z barvami, zapisanimi v vrstici, zato se prikaže brez dodatne slogovne predloge.

Namesto theme podajte preslikavo themes in isti blok bo prek spremenljivk CSS vseboval barve za svetli in temni način.

PHP
use Shikiphp\Shikiphp;

echo Shikiphp::codeToHtml(<<<'PHP'
<?php
function greet(string $name): string {
    return "Hello, {$name}!";
}
PHP, [
    'lang'  => 'php',
    'theme' => 'github-dark',
]);

Prave slovnice TextMate

Zvest prenos orodja vscode-textmate: vdelani jeziki, injekcije in ugnezdena skladišča. Enake slovnice uporabljata Shiki in VS Code za tokenizacijo.

Teme VS Code

Specifičnost izbirnikov obsega in ujemanje nadrejenih obsegov, prenesena iz vscode-textmate. Ena tema ali svetli in temni način prek spremenljivk CSS.

Izhod, enak kot pri Shiki

V primerjalnih scenarijih 214 se izhod z JavaScript mehanizmom regularnih izrazov ujema z izhodom HTML orodja Shiki 3.23.0 za 167 od 253 priloženih slovnic, ANSI in vseh 65 tem, razen začetnih in končnih presledkov.

Mehanizem regularnih izrazov samo v PHP

Vključen mehanizem RegExp za JavaScript iz inline0/phasis, ki ga poganja prenos orodja oniguruma-to-es. Mehanizem regularnih izrazov JavaScript orodja Shiki uporablja enako pot od Oniguruma do RegExp.

Transformatorji

Vsak priklop Shiki (preprocess, tokens, root, pre, code, line, span, postprocess) ter vgrajeni pretvorniki za notacijo, metapodatke in presledke.

Celoten paket

V paketu so vsi jeziki tm-grammars (235 in še 18 pomožnih slovnic) ter vse teme tm-themes (65). Vključeni so tudi izhod za terminal ANSI, okraski in colorReplacements.

CLI

Označite datoteko s HTML ali pa neposredno v ukazni vrstici z bin/shikiphp izpišite priložene jezike in teme.

Brez Node.js

Deluje na PHP 8.2+ samo z razširitvama ext-json in ext-mbstring. Brez izvajalnega okolja Node.js, izvorne vezave Oniguruma ali klicanja lupine.

Zakaj ShikiPHP

Deluje tam, kjer deluje vaš PHP

Označevanje poteka v procesu PHP, brez klicanja Node.js prek lupine ali gostovanega API. Primerno je za korak gradnje v Laravel, WordPress ali za statično spletno mesto.

Izhod, primeren za predpomnjenje

Ista koda z enakimi možnostmi vedno ustvari enak HTML. Kodo označite med gradnjo ali pa predpomnite HTML glede na kodo in možnosti, dokler se vir ne spremeni.

En blok za svetli in temni način

Preslikava tem zapiše barve druge teme kot spremenljivke CSS v isto označevanje, nekaj vrstic CSS pa preklopi nanjo. Možnost defaultColor določa, katera tema se zapiše v vrstico.

Omejitve za nezaupanja vreden vnos

Mehanizem regularnih izrazov si zapomni neuspešne poskuse in ščiti pred ReDoS, zato se patološki vzorec upočasni, namesto da bi obstal. Možnost tokenizeMaxLineLength predolge vrstice odda kot en navaden žeton.

V primerjavi z

Drugi načini označevanja kode za spletno mesto PHP in razlike orodja ShikiPHP.

ShikiPHP v primerjavi z drugimi orodji
Shiki Primerno zaReferenčna izvedba v JavaScript. Deluje v katerem koli sodobnem izvajalnem okolju JavaScript brez API-jev Node.js, slovnice in teme nalaga po potrebi ter ima integracije Twoslash TypeScript. Razlika v primerjavi z ShikiPHPShikiPHP prenese ta cevovod v PHP za strani, upodobljene na strežniku PHP. Njegov primerjalni okvir primerja HTML z Shiki 3.23.0, medtem ko je glavna veja orodja Shiki prešla na v4.
Phiki Primerno zaOznačevalnik kode PHP, ki uporablja tudi slovnice TextMate in teme VS Code. Vključuje razširitev league/commonmark, ki deluje z metodo Str::markdown orodja Laravel, izhodom za terminal in izvršno datoteko ukazne vrstice. Razlika v primerjavi z ShikiPHPPhiki opisuje svoj tokenizer kot orodje, ki ga je navdihnil vscode-textmate, vendar ni njegov prevod 1 : 1. ShikiPHP prenese orodji vscode-textmate in oniguruma-to-es ter preizkusi svoj HTML glede na izhod orodja Shiki v primerjalnih scenarijih 214.
highlight.php Primerno zaStrežniški prenos orodja PHP za highlight.js, ki podpira jezike 185 z izvirnimi definicijami jezika in sloga ter lahko jezik zazna samodejno. Razlika v primerjavi z ShikiPHPShikiPHP tokenizira s slovnicami TextMate in barva s temami VS Code, torej uporablja iste datoteke kot Shiki, pri vsakem klicu pa je treba navesti jezik.
Torchlight Primerno zaStoritev za poudarjanje, združljiva z VS Code. Gre za HTTP API s pripombami v komentarjih za poudarke, fokus in razlike ter z lastnimi odjemalci za Laravel, CommonMark, Statamic in druga ogrodja. Razlika v primerjavi z ShikiPHPShikiPHP deluje v vašem procesu PHP brez gostovanega API. Vgrajeni pretvorniki notacije berejo podobne komentarje za poudarjene vrstice, vrstice v fokusu in vrstice z razlikami.

Vprašanja in odgovori

Kratki odgovori iz dokumentacije za ShikiPHP.

Začnite z vodnikom za prve korake, nato pa dodajte pretvornike, slovnice po meri ali izhod ANSI, ko jih vaše strani potrebujejo.