CLI
shikiphp include un mic instrument în linia de comandă la bin/shikiphp (instalat ca vendor/bin/shikiphp în proiect). Are trei comenzi: highlight redă un fișier în HTML, iar langs și themes listează conținutul pachetului.
highlight
Evidențiază un fișier în HTML și îl afișează la stdout.
vendor/bin/shikiphp highlight <file> [--lang=<lang>] [--theme=<theme>]
<file>— calea fișierului de citit. Trebuie să existe; intrarea standard nu este citită.--lang— ID-ul sau aliasul limbii. Dacă este omis, extensia fișierului este folosită ca atare drept ID (dacă nu există, se foloseștetxt).--theme— ID-ul temei. Valoarea implicită estegithub-dark.
vendor/bin/shikiphp highlight src/App.php --lang=php --theme=nord
Rezultatul este același bloc <pre class="shiki …"> cu o singură temă, returnat de codeToHtml, urmat de o linie nouă, astfel încât îl puteți redirecționa direct într-un fișier:
vendor/bin/shikiphp highlight src/App.php --theme=github-light > app.html
Comanda nu acceptă alte opțiuni. Pentru teme duale, transformatoare sau orice altă opțiune, apelați în schimb PHP API.
Opțiuni și argumente
Opțiunile trebuie să folosească forma --name=value. Orice alt argument care începe cu -- este ignorat, iar ultimul argument care nu începe cu -- este considerat fișierul. Prin urmare, --lang php file.rs evidențiază file.rs ca Rust: --lang este ignorat, php este înlocuit de file.rs, iar limba este dedusă din extensia .rs.
Deducerea limbii
Fără --lang, extensia devine ID-ul limbajului, neschimbat. Funcționează când extensia este chiar un ID sau alias inclus în pachet — php, js, ts, tsx, py, rs, go, md, yml, json, sh și multe altele (consultați Limbaje). Nu funcționează pentru:
- fișiere fără extensie, precum
MakefilesauDockerfile, care recurg latxt; - extensii care nu sunt ID-uri de limbă, precum
.txt.
txt nu este o limbă inclusă în pachet, așa că ambele cazuri se opresc momentan cu o eroare Unknown language "txt" (#3).
Transmiteți --lang pentru aceste fișiere:
vendor/bin/shikiphp highlight Dockerfile --lang=docker
vendor/bin/shikiphp highlight Makefile --lang=make
langs
Afișează fiecare ID de limbă acceptat de pachet, câte unul pe linie.
vendor/bin/shikiphp langs
Lista are 350 de linii: cele 253 de ID-uri pentru gramaticile incluse, în ordinea din pachet (nu alfabetică), urmate de cele 97 de aliasuri ale lor (js, cjs, mjs și așa mai departe). ID-urile gramaticilor includ 18 gramatici auxiliare încorporate de alte gramatici, precum vue-directives și es-tag-css; consultați Limbi pentru catalogul cu nume și aliasuri. Folosiți sort pentru o listă alfabetică.
themes
Afișează fiecare ID de temă inclusă, câte unul pe linie, în ordine alfabetică (65 de teme).
vendor/bin/shikiphp themes
Consultați Teme pentru catalogul cu nume și tipuri deschise/întunecate.
Ajutor și cod de ieșire
Rulați fără comandă sau cu -h / --help / help pentru a afișa instrucțiunile de utilizare.
vendor/bin/shikiphp --help
| Situație | Ieșire | Cod de ieșire |
|---|---|---|
| Succes sau ajutor | stdout | 0 |
| Comandă necunoscută | Unknown command: <name> la stderr |
1 |
highlight fără fișier sau fișier inexistent |
linia de utilizare la stderr | 1 |
| Limbă sau temă necunoscută | o excepție Shikiphp\Exceptions\Highlight neprinsă (eroare fatală PHP cu stack trace) |
255 |