Ugrás a tartalomhoz

CLI

A shikiphp egy kis parancssori eszközt tartalmaz a bin/shikiphp útvonalon (a projektben vendor/bin/shikiphp néven települ). Három parancsa van: a highlight egy fájlt jelenít meg HTML formátumban, a langs és themes pedig felsorolja a csomag tartalmát.

highlight

Fájlt emel ki HTML formátumba, és a stdout kimenetére írja.

Shell
vendor/bin/shikiphp highlight <file> [--lang=<lang>] [--theme=<theme>]
  • <file> — a beolvasandó útvonal. Létező fájlra kell mutatnia; a szabványos bemenetet nem olvassa be.
  • --lang — a nyelvazonosító vagy alias. Ha nincs megadva, a fájlkiterjesztést változtatás nélkül használja azonosítóként (ha nincs kiterjesztés, akkor txt értékére vált).
  • --theme — a témaazonosító. Alapértelmezése: github-dark.
Shell
vendor/bin/shikiphp highlight src/App.php --lang=php --theme=nord

A kimenet ugyanaz az egytémás <pre class="shiki …"> blokk, amelyet a codeToHtml ad vissza, majd egy sortörés követi, így közvetlenül fájlba irányítható:

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

A parancs nem fogad el más kapcsolókat. Kéttémás módhoz, transzformátorokhoz vagy más beállítás használatához inkább a PHP API elemet hívja meg.

Kapcsolók és argumentumok

A kapcsolók --name=value formátumban adhatók meg. A -- jellel kezdődő egyéb argumentumokat a rendszer figyelmen kívül hagyja, a -- jellel nem kezdődő utolsó argumentum pedig a fájl lesz. Ezért a --lang php file.rs a file.rs fájlt Rust nyelvként emeli ki: a --lang figyelmen kívül marad, a php helyébe a file.rs lép, a nyelvet pedig a .rs kiterjesztés határozza meg.

Nyelv meghatározása

--lang nélkül a kiterjesztés változatlanul nyelvazonosítóvá válik. Ez akkor működik, ha a kiterjesztés maga is csomagolt azonosító vagy alias — php, js, ts, tsx, py, rs, go, md, yml, json, sh és még sok más esetben (lásd: Nyelvek). Az alábbi esetekben nem működik:

  • kiterjesztés nélküli fájlok, például Makefile vagy Dockerfile, amelyeknél a rendszer visszaáll erre: txt;
  • olyan kiterjesztések, amelyek nem nyelvi azonosítók, például .txt.

A txt nem beépített nyelv, ezért mindkét eset Unknown language "txt" hibával áll le (#3). Ezekhez a fájlokhoz adja meg ezt: --lang:

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

langs

Írja ki soronként a csomag által nyelvként elfogadott összes azonosítót.

Shell
vendor/bin/shikiphp langs

A lista 350 sort tartalmaz: először a beépített 253 nyelvtanazonosítókat a csomag szerinti sorrendben (nem ábécérendben), majd a hozzájuk tartozó 97 aliast (js, cjs, mjs és így tovább). A nyelvtanazonosítók között 18 segédnyelvtan is van, amelyeket más nyelvtanok beágyaznak, például vue-directives és es-tag-css; a neveket és aliasokat tartalmazó katalógust lásd itt: Nyelvek. Ábécérendbe rendezett listához futtassa át a kimenetet ezen: sort.

themes

Írja ki soronként az összes beépített témát azonosítójuk szerint, ábécérendben (65 téma).

Shell
vendor/bin/shikiphp themes

A neveket és a világos/sötét típusokat tartalmazó katalógust lásd itt: Témák.

Súgó és kilépési állapot

Parancs nélkül, illetve -h / --help / help megadásával használati útmutatót ír ki.

Shell
vendor/bin/shikiphp --help
Helyzet Kimenet Kilépési állapot
Siker vagy súgó stdout 0
Ismeretlen parancs Unknown command: <name> a stderr kimeneten 1
highlight fájl nélkül, vagy ha a fájl nem létezik használati sor a stderr kimeneten 1
Ismeretlen nyelv vagy téma nem kezelt Shikiphp\Exceptions\Highlight (PHP végzetes hiba veremnyommal) 255