Ga naar de inhoud

CLI

shikiphp bevat een klein opdrachtregelprogramma op bin/shikiphp (in uw project geïnstalleerd als vendor/bin/shikiphp). Het heeft drie opdrachten: highlight geeft één bestand weer naar HTML, en langs en themes geven de inhoud van de bundel weer.

highlight

Markeer een bestand naar HTML en schrijf de uitvoer naar stdout.

Shell
vendor/bin/shikiphp highlight <file> [--lang=<lang>] [--theme=<theme>]
  • <file> — het pad om te lezen. Dit moet een bestaand bestand zijn; standaardinvoer wordt niet gelezen.
  • --lang — de taal-ID of alias. Als deze ontbreekt, wordt de bestandsextensie ongewijzigd als ID gebruikt (en als die ontbreekt, wordt teruggevallen op txt).
  • --theme — de thema-ID. Standaard is dit github-dark.
Shell
vendor/bin/shikiphp highlight src/App.php --lang=php --theme=nord

De uitvoer is hetzelfde blok met één thema in <pre class="shiki …"> dat codeToHtml retourneert, gevolgd door een regeleinde, zodat u het rechtstreeks naar een bestand kunt omleiden:

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

De opdracht accepteert geen andere opties. Gebruik voor dubbele thema's, transformers of een andere optie de PHP API.

Opties en argumenten

Opties moeten de vorm --name=value gebruiken. Elk ander argument dat begint met -- wordt genegeerd; het laatste argument dat niet met -- begint, wordt als bestand gebruikt. --lang php file.rs markeert daarom file.rs als Rust: --lang wordt genegeerd, php wordt vervangen door file.rs en de taal wordt afgeleid van de extensie .rs.

Taal afleiden

Zonder --lang wordt de taal-id ongewijzigd gebruikt. Dat werkt wanneer de extensie zelf een meegeleverde id of alias is — php, js, ts, tsx, py, rs, go, md, yml, json, sh en vele andere (zie Talen). Het werkt niet voor:

  • bestanden zonder extensie, zoals Makefile of Dockerfile, die terugvallen op txt;
  • extensies die geen taal-id zijn, zoals .txt.

txt is geen meegeleverde taal, dus beide gevallen eindigen momenteel met een Unknown language "txt"-fout (#3). Geef voor deze bestanden --lang mee:

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

langs

Print elke id die de bundel als taal accepteert, één per regel.

Shell
vendor/bin/shikiphp langs

De lijst bevat 350 regels: de 253 meegeleverde grammatica-id's in bundelvolgorde (niet alfabetisch), gevolgd door hun 97 aliassen (js, cjs, mjs enzovoort). De grammatica-id's omvatten 18 hulpgrammatica's die door andere grammatica's worden ingesloten, zoals vue-directives en es-tag-css; zie Talen voor de catalogus met namen en aliassen. Leid de lijst door sort voor een alfabetische lijst.

themes

Print elke id van een meegeleverd thema, één per regel, in alfabetische volgorde (65 thema's).

Shell
vendor/bin/shikiphp themes

Zie Thema's voor de catalogus met namen en lichte/donkere typen.

Help en afsluitstatus

Voer de opdracht zonder argumenten uit, of gebruik -h / --help / help om de gebruiksinformatie weer te geven.

Shell
vendor/bin/shikiphp --help
Situatie Uitvoer Afsluitstatus
Geslaagd of help stdout 0
Onbekende opdracht Unknown command: <name> op stderr 1
highlight zonder bestand, of het bestand bestaat niet de gebruiksregel op stderr 1
Onbekende taal of thema een niet-opgevangen Shikiphp\Exceptions\Highlight (PHP fatale fout met stacktrace) 255