Vai al contenuto

CLI

shikiphp include un piccolo strumento a riga di comando in bin/shikiphp (installato come vendor/bin/shikiphp nel progetto). Offre tre comandi: highlight visualizza un file in HTML, mentre langs e themes elencano il contenuto del bundle.

highlight

Evidenzia un file in HTML e lo stampa su stdout.

Shell
vendor/bin/shikiphp highlight <file> [--lang=<lang>] [--theme=<theme>]
  • <file> — il percorso da leggere. Deve essere un file esistente; non viene letto lo standard input.
  • --lang — l’ID o alias del linguaggio. Se omesso, l’estensione del file viene usata così com’è come ID (in assenza di estensione, si ricorre a txt).
  • --theme — l’ID del tema. Il valore predefinito è github-dark.
Shell
vendor/bin/shikiphp highlight src/App.php --lang=php --theme=nord

L’output è lo stesso blocco <pre class="shiki …"> a tema singolo restituito da codeToHtml, seguito da un a capo, quindi può essere reindirizzato direttamente a un file:

Shell
vendor/bin/shikiphp highlight src/App.php --theme=github-light > app.html

Il comando non accetta altre opzioni. Per temi chiaro e scuro, transformer o qualsiasi altra opzione, usate invece l’PHP API.

Opzioni e argomenti

Le opzioni devono usare la forma --name=value. Qualsiasi altro argomento che inizi con -- viene ignorato; come file viene usato l’ultimo argomento che non inizia con --. Pertanto --lang php file.rs evidenzia file.rs come Rust: --lang viene ignorato, php viene sostituito da file.rs e il linguaggio è ricavato dall’estensione .rs.

Rilevamento del linguaggio

Senza --lang, l'estensione diventa l'id della lingua senza modifiche. Funziona quando l'estensione è già un id incluso o un alias: php, js, ts, tsx, py, rs, go, md, yml, json, sh e molti altri (vedere Lingue). Non funziona per:

  • file senza estensione, come Makefile o Dockerfile, per i quali si usa txt;
  • estensioni che non sono un id di lingua, come .txt.

txt non è una lingua inclusa, quindi entrambi i casi si interrompono attualmente con un errore Unknown language "txt" (#3). Passate --lang per questi file:

Shell
vendor/bin/shikiphp highlight Dockerfile --lang=docker
vendor/bin/shikiphp highlight Makefile --lang=make

langs

Stampa ogni id accettato dal bundle come lingua, uno per riga.

Shell
vendor/bin/shikiphp langs

L'elenco contiene 350 righe: gli 253 id grammaticali inclusi nel bundle, nell'ordine del bundle (non alfabetico), seguiti dai loro 97 alias (js, cjs, mjs e così via). Gli id grammaticali includono 18 grammatiche ausiliarie incorporate da altre grammatiche, come vue-directives e es-tag-css; vedere Lingue per il catalogo con nomi e alias. Passate l'elenco a sort per ordinarlo alfabeticamente.

themes

Stampa ogni id dei temi inclusi nel bundle, uno per riga, in ordine alfabetico (65 temi).

Shell
vendor/bin/shikiphp themes

Vedere Temi per il catalogo con nomi e tipi chiaro/scuro.

Guida e codice di uscita

Eseguite senza un comando, oppure con -h / --help / help, per stampare le istruzioni.

Shell
vendor/bin/shikiphp --help
Situazione Output Codice di uscita
Operazione riuscita o guida stdout 0
Comando sconosciuto Unknown command: <name> su stderr 1
highlight senza file o file inesistente riga delle istruzioni su stderr 1
Lingua o tema sconosciuto Shikiphp\Exceptions\Highlight non gestito (errore fatale PHP con stack trace) 255