Liigu sisu juurde

ShikiPHP

Puhas PHP süntaksi esiletõstja, Shiki teisendus. Vorminda koodiplokke VS Code teemade ja TextMate grammatikatega ilma Node'ita; väljund vastab 214 kontrolljuhtude lõikes Shiki 3.23.0-le.

Terminal
composer require shikiphp/shikiphp

Viimane väljalase v0.1.0 MIT PHP 8.2+, ext-json, ext-mbstring

Praktikas

Tõsta esile koodinäide PHP mallist või ehitusskriptist ja prindi tagastatav HTML.

Üks väljakutse koodiploki kohta

Shikiphp::codeToHtml võtab vastu koodi, keele ID ja teema ID. See tagastab täieliku pre ploki, mille värvid on tekstisiseselt kirjas, nii et see kuvatakse ilma täiendava laaditabelita.

Anna theme asemel edasi kaart themes ja sama plokk kasutab heledate ning tumedate värvide jaoks CSS muutujaid.

PHP
use Shikiphp\Shikiphp;

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

Tõelised TextMate grammatikad

vscode-textmate ustav teisendus: põimitud keeled, sisestused ja pesastatud hoidlad. Samad grammatikad, millega Shiki ja VS Code märgendavad.

VS Code teemad

Skoobivalija spetsiifilisus ja ülemskoobi sobitamine on üle toodud teegist vscode-textmate. Üks teema või hele ja tume teema CSS-muutujate abil.

Shiki-ga identne väljund

214 kontrolljuhtu, mis hõlmavad 167 253 komplektis olevast grammatikast, ANSI-t ja kõiki 65 teemat, vastavad HTML väljundile rakenduses Shiki 3.23.0 koos selle JavaScript regulaaravaldiste mootoriga, välja arvatud algus- ja lõputühikud.

Puhas PHP regulaaravaldiste mootor

Tarnitav JavaScript RegExp-mootor allikast inline0/phasis, mille sisendiks on oniguruma-to-es teisendus. Shiki JavaScript regulaaravaldiste mootor kasutab sama Oniguruma-st RegExp-iks teisendamise rada.

Teisendajad

Kõik Shiki konksud (preprocess, tokens, root, pre, code, line, span, postprocess) ning sisseehitatud märgistus-, meta- ja tühimärgiteisendajad.

Täielik komplekt

Kaasas on kõik tm-grammars keeled (235 ja 18 abigrammatikat) ning tm-themes teemad (65). Komplektis on ka ANSI-terminaliväljund, kaunistused ja colorReplacements.

CLI

Tõsta faili süntaks esile HTML-vormingus või loetle käsurealt kaasasolevad keeled ja teemad käsuga bin/shikiphp.

Node'i pole vaja

Töötab PHP 8.2+ versiooniga ning vajab ainult laiendusi ext-json ja ext-mbstring. Node'i käituskeskkonda ega natiivset Oniguruma sidumist pole vaja ning välist käsku ei käivitata.

Miks ShikiPHP

Töötab seal, kus töötab sinu PHP

Esiletõstmine toimub PHP protsessis, ilma Node'i väljakutse või majutatud API kasutamiseta. See sobib Laravel, WordPress või staatilise saidi ehitusetappi.

Väljund, mida saab vahemällu salvestada

Sama kood samade valikutega annab alati sama HTML. Tõsta esile ehitamise ajal või salvesta HTML vahemällu koodi ja valikute alusel kuni lähtekoodi muutumiseni.

Üks plokk heleda ja tumeda teema jaoks

Teemade kaart kirjutab teise teema samasse märgistusse CSS muutujatena ja paar rida CSS-i vahetavad teemat. Valik defaultColor määrab tekstisiseselt kirjutatava teema.

Piirangud ebausaldusväärsele sisendile

Regulaaravaldiste mootor jätab nurjunud katsed meelde ja kaitseb ReDoS-i eest, nii et patoloogilise mustri korral töö aeglustub, mitte ei jää rippuma. Valik tokenizeMaxLineLength väljastab liiga pikad read ühe lihttekstina märgendina.

Võrdlus

Muud viisid koodi esiletõstmiseks PHP saidil ja mille poolest ShikiPHP erineb.

ShikiPHP võrrelduna teiste tööriistadega
Shiki Sobib hästiViiterealisatsioon, loodud keeles JavaScript. See töötab igas tänapäevases JavaScript käituskeskkonnas ilma Node.js API-deta, laadib grammatikad ja teemad vajaduse korral ning sellel on TypeScript Twoslash-integratsioonid. Erinevus võrreldes ShikiPHP-gaShikiPHP teisendab selle torujuhtme PHP-ks, et renderdada lehti PHP serveris. Selle kontrollraamistik võrdleb HTML tulemust rakenduse Shiki 3.23.0-ga, samal ajal kui Shiki põhiharu on edasi liikunud versioonile v4.
Phiki Sobib hästiPHP esiletõstja, mis kasutab samuti TextMate grammatikaid ja VS Code teemasid. Kaasas on league/commonmarki laiendus, mis töötab koos Laravel Str::markdowniga, terminaliväljund ja käsurea binaarfail. Erinevus võrreldes ShikiPHP-gaPhiki kirjeldab oma märgendajat kui süsteemist vscode-textmate inspireeritut, kuid mitte üks ühele tõlget. ShikiPHP teisendab vscode-textmate ja oniguruma-to-es ning võrdleb oma HTML väljundit Shiki omaga 214 kontrolljuhtumis.
highlight.php Sobib hästiServeripoolne PHP teisendus süsteemist highlight.js, mis toetab 185 keeli koos algsete keele- ja stiilidefinitsioonidega ning suudab keele automaatselt tuvastada. Erinevus võrreldes ShikiPHP-gaShikiPHP märgendab koodi TextMate grammatikatega ja värvib VS Code teemadega, kasutades samu faile nagu Shiki; iga väljakutse puhul tuleb keel nimetada.
Torchlight Sobib hästiEsiletõstmisteenus, mis ühildub VS Code-ga. See on HTTP API koos kommentaarimärkustega esiletõstmiste, fookuse ja erinevuste jaoks ning sellel on ametlikud kliendid Laravel, CommonMarki, Statamici ja muude platvormide jaoks. Erinevus võrreldes ShikiPHP-gaShikiPHP töötab sinu PHP protsessis ilma majutatud API-ta. Selle sisseehitatud märgistusteisendajad loevad võrreldavaid kommentaare esiletõstetud, fookuses ja erinevustega ridade kohta.

Küsimused ja vastused

Lühikesed vastused ShikiPHP dokumentatsioonist.

Alusta alustamisjuhendist ning lisa seejärel teisendajaid, kohandatud grammatikaid või ANSI-väljund, kui su lehed neid vajavad.