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.
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 jegithub-dark.
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:
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
MakefileneboDockerfile, 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:
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.
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ů).
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í.
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 |