Přejít k obsahu

CLI

shikiphp obsahuje malý nástroj příkazového řádku v bin/shikiphp (v projektu se nainstaluje jako vendor/bin/shikiphp). Nabízí tři příkazy: highlight vykreslí jeden soubor do HTML a langs a themes vypíšou obsah balíčku.

highlight

Zvýrazní soubor do HTML a vypíše jej na stdout.

Shell
vendor/bin/shikiphp highlight <file> [--lang=<lang>] [--theme=<theme>]
  • <file> — cesta k souboru, který se má načíst. Soubor musí existovat; standardní vstup se nenačítá.
  • --lang — ID jazyka nebo alias. Pokud není uvedeno, použije se přípona souboru jako ID přesně tak, jak je, případně txt, pokud přípona chybí.
  • --theme — ID motivu. Výchozí hodnota je github-dark.
Shell
vendor/bin/shikiphp highlight src/App.php --lang=php --theme=nord

Výstup tvoří stejný blok <pre class="shiki …"> s jedním motivem, jaký vrací codeToHtml, následovaný novým řádkem, takže jej lze přesměrovat přímo do souboru:

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

Příkaz nepřijímá žádné další volby. Pro dvojici motivů, transformátory nebo jakoukoli jinou volbu použijte místo toho PHP API.

Možnosti a argumenty

Možnosti musí mít podobu --name=value. Jakýkoli jiný argument začínající na -- se ignoruje a za soubor se považuje poslední argument, který nezačíná na --. --lang php file.rs proto zvýrazní file.rs jako Rust: --lang se ignoruje, php se nahradí za file.rs a jazyk se určí podle přípony .rs.

Odvození jazyka

Bez --lang se přípona beze změny použije jako ID jazyka. Funguje to, pokud je samotná přípona ID nebo alias obsažený v balíčku — php, js, ts, tsx, py, rs, go, md, yml, json, sh a mnoho dalších (viz Jazyky). Nefunguje to pro:

  • soubory bez přípony, například Makefile nebo Dockerfile, u nichž se použije výchozí txt;
  • přípony, které nejsou ID jazyka, například .txt.

txt není jazyk obsažený v balíčku, takže oba případy nyní končí chybou Unknown language "txt" (#3). Pro tyto soubory předejte --lang:

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

langs

Vypíše všechna ID jazyků, která balíček přijímá, každé na samostatný řádek.

Shell
vendor/bin/shikiphp langs

Seznam obsahuje 350 řádků: nejprve 253 ID gramatik obsažených v balíčku, seřazená podle pořadí v balíčku (nikoli abecedně), a poté jejich 97 aliasů (js, cjs, mjs atd.). Mezi ID gramatik je 18 pomocných gramatik, které vkládají jiné gramatiky, například vue-directives a es-tag-css; katalog názvů a aliasů najdete v části Jazyky. Abecední seznam získáte pomocí sort.

themes

Vypíše všechna ID motivů obsažených v balíčku, každé na samostatný řádek, v abecedním pořadí (65 motivů).

Shell
vendor/bin/shikiphp themes

Katalog s názvy a typy světlý/tmavý najdete v části Motivy.

Nápověda a návratový kód

Spuštěním bez příkazu nebo s -h / --help / help zobrazíte nápovědu k použití.

Shell
vendor/bin/shikiphp --help
Situace Výstup Návratový kód
Úspěch nebo nápověda stdout 0
Neznámý příkaz Unknown command: <name> na stderr 1
highlight bez souboru nebo soubor neexistuje řádek s nápovědou na stderr 1
Neznámý jazyk nebo motiv nezachycená chyba Shikiphp\Exceptions\Highlight (fatální chyba PHP s trasováním zásobníku) 255