Pereiti prie turinio

ShikiPHP

Grynasis PHP sintaksės paryškintuvas, Shiki perkėlimas. Formatuokite kodo blokus naudodami VS Code temas ir TextMate gramatikas be Node; išvestis sutampa su Shiki 3.23.0 per 214 etaloninius scenarijus.

Terminalas
composer require shikiphp/shikiphp

Naujausia versija v0.1.0 MIT PHP 8.2+, ext-json, ext-mbstring

Praktinis pritaikymas

Paryškinkite ištrauką iš PHP šablono arba kūrimo scenarijaus ir išspausdinkite jo grąžinamą HTML.

Vienas iškvietimas kiekvienam kodo blokui

Shikiphp::codeToHtml gauna kodą, kalbos ID ir temos ID. Jis grąžina visą pre bloką su įterptosiomis spalvomis, todėl jis atvaizduojamas be papildomos stiliaus lentelės.

Vietoj theme perduokite themes atvaizdį, ir tas pats blokas turės šviesios bei tamsios temos spalvas per CSS kintamuosius.

PHP
use Shikiphp\Shikiphp;

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

Tikros TextMate gramatikos

Tikslus vscode-textmate perkėlimas: įterptosios kalbos, gramatikų injekcijos ir įdėtosios saugyklos. Tos pačios gramatikos, kurias naudoja Shiki ir VS Code.

VS Code temos

Srities parinkiklio specifiškumas ir pirminės srities atitikimas, perkelti iš vscode-textmate. Viena tema arba dviguba šviesi ir tamsi tema per CSS kintamuosius.

Išvestis identiška Shiki

214 etaloninių scenarijų, apimančių 167 iš 253 įtrauktų gramatikų, ANSI ir visas 65 temas, rezultatai sutampa su HTML, kurį pateikia Shiki 3.23.0 su JavaScript regex varikliu; išimtys – tik pradžios ir pabaigos tuščiojo tarpo simboliai (tarpai, tabuliacijos ir eilučių lūžiai).

Grynasis PHP regex variklis

Įtrauktas JavaScript RegExp variklis iš inline0/phasis, maitinamas oniguruma-to-es perkėlimo. Shiki JavaScript regex variklis naudoja tą patį Oniguruma kelią į RegExp.

Transformatoriai

Visi Shiki kabliukai (preprocess, tokens, root, pre, code, line, span, postprocess) ir integruoti notacijos, metaduomenų bei tarpų transformatoriai.

Visas paketas

Įtrauktos visos tm-grammars kalbos (235 ir 18 pagalbinių gramatikų) bei tm-themes temos (65). Taip pat įtraukta ANSI terminalo išvestis, dekoracijos ir colorReplacements.

CLI

Paryškinkite failą naudodami HTML arba iš komandinės eilutės išvardykite įtrauktas kalbas ir temas su bin/shikiphp.

Be Node

Veikia su PHP 8.2+ ir tik ext-json bei ext-mbstring. Nereikia Node vykdymo aplinkos, savųjų Oniguruma susiejimų ar išorinių komandų.

Kodėl ShikiPHP

Veikia ten, kur veikia jūsų PHP

Paryškinimas atliekamas PHP procese, nekviečiant Node iš išorinės komandos ir nenaudojant prieglobos API. Tai tinka Laravel, WordPress arba statinės svetainės kūrimo etapui.

Išvestis, kurią galima spartinti talpykla

Tas pats kodas su tomis pačiomis parinktimis visada sukuria tą pačią HTML išvestį. Paryškinkite kūrimo metu arba talpykloje laikykite HTML pagal kodą ir parinktis, kol pasikeis šaltinis.

Vienas blokas šviesiai ir tamsiai temai

Temų atvaizdyje antroji tema įrašo CSS kintamuosius į tą pačią žymą, o keliomis CSS eilutėmis įjungiama ši tema. Parinktis defaultColor nustato, kurios temos stilius įrašomas tiesiogiai.

Nepatikimos įvesties apribojimai

Regex variklis įsimena nesėkmes ir apsisaugo nuo ReDoS, todėl neįprastai sudėtingas šablonas sulėtėja, bet nesustabdo veikimo. Parinktis tokenizeMaxLineLength per ilgas eilutes pateikia kaip vieną paprastą žetoną.

Palyginimas su

Kiti kodo paryškinimo būdai PHP svetainei ir kuo ShikiPHP skiriasi.

ShikiPHP palyginimas su kitais įrankiais
Shiki Stipriosios pusėsEtaloninis įgyvendinimas, sukurtas naudojant JavaScript. Jis veikia bet kurioje šiuolaikinėje JavaScript vykdymo aplinkoje be Node.js API, pagal poreikį įkelia gramatikas ir temas bei turi TypeScript Twoslash integracijas. Skirtumas nuo ShikiPHPShikiPHP perkelia šį srautą į PHP, skirtą puslapiams, atvaizduojamiems PHP serveryje. Jo etaloninis tikrinimo įrankis lygina HTML su Shiki 3.23.0, o pagrindinė Shiki šaka jau perėjo prie v4.
Phiki Stipriosios pusėsPHP paryškintuvas, kuris taip pat naudoja TextMate gramatikas ir VS Code temas. Jame yra league/commonmark plėtinys, veikiantis su Laravel Str::markdown, terminalo išvestis ir dvejetainė komandų eilutės programa. Skirtumas nuo ShikiPHPPhiki teigia, kad jo žetonų skaidiklis įkvėptas vscode-textmate, tačiau nėra tiesioginis vertimas santykiu 1:1. ShikiPHP perkelia vscode-textmate ir oniguruma-to-es bei tikrina savo HTML pagal Shiki išvestį 214 etaloniniuose scenarijuose.
highlight.php Stipriosios pusėsServerio pusėje veikiantis PHP perkėlimas, palaikantis 185 kalbų su originaliais kalbų ir stilių aprašais bei automatinį kalbos aptikimą; jis paremtas highlight.js. Skirtumas nuo ShikiPHPShikiPHP žetonus skaidо pagal TextMate gramatikas ir spalvina pagal VS Code temas — tuos pačius failus naudoja Shiki, o kiekviename iškvietime būtina nurodyti kalbą.
Torchlight Stipriosios pusėsVS Code suderinama paryškinimo paslauga. Tai HTTP API su komentarų anotacijomis paryškinimui, fokusavimui ir skirtumams; turi oficialius klientus, skirtus Laravel, CommonMark, Statamic ir kitoms technologijų grupėms. Skirtumas nuo ShikiPHPShikiPHP veikia jūsų PHP procese be prieglobos API. Integruoti notacijos transformatoriai nuskaito panašius komentarus paryškintoms, fokusuotoms ir skirtumų eilutėms.

Klausimai ir atsakymai

Trumpi atsakymai iš ShikiPHP dokumentacijos.

Pradėkite nuo įvadinio vadovo, tada prireikus pridėkite transformatorių, pasirinktinių gramatikų arba ANSI išvestį.