Treci la conținut

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.

Shell
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ște txt).
  • --theme — ID-ul temei. Valoarea implicită este github-dark.
Shell
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:

Shell
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 Makefile sau Dockerfile, care recurg la txt;
  • 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:

Shell
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.

Shell
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).

Shell
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.

Shell
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