CLI
shikiphp fournit un petit outil en ligne de commande dans bin/shikiphp (installé sous vendor/bin/shikiphp dans votre projet). Il propose trois commandes : highlight met un fichier en évidence dans HTML, tandis que langs et themes répertorient le contenu du bundle.
highlight
Mettre un fichier en évidence dans HTML et afficher le résultat sur stdout.
vendor/bin/shikiphp highlight <file> [--lang=<lang>] [--theme=<theme>]
<file>— le chemin du fichier à lire. Il doit s’agir d’un fichier existant ; l’entrée standard n’est pas lue.--lang— l’identifiant ou l’alias du langage. S’il est omis, l’extension du fichier est utilisée telle quelle comme identifiant (outxtsi le fichier n’a pas d’extension).--theme— l’identifiant du thème. La valeur par défaut estgithub-dark.
vendor/bin/shikiphp highlight src/App.php --lang=php --theme=nord
La sortie est le même bloc <pre class="shiki …"> à thème unique que renvoie codeToHtml, suivi d’un saut de ligne, ce qui permet de la rediriger directement dans un fichier :
vendor/bin/shikiphp highlight src/App.php --theme=github-light > app.html
La commande n’accepte aucune autre option. Pour utiliser deux thèmes, des transformateurs ou toute autre option, appelez plutôt le API PHP.
Options et arguments
Les options doivent utiliser la forme --name=value. Tout autre argument commençant par -- est ignoré et le dernier argument ne commençant pas par -- est traité comme le fichier. Ainsi, --lang php file.rs met file.rs en évidence comme Rust : --lang est ignoré, php est remplacé par file.rs et le langage est déduit de l’extension .rs.
Détection du langage
Sans --lang, l’extension devient l’identifiant du langage, sans modification. Cela fonctionne lorsque l’extension correspond à un identifiant ou alias fourni dans le bundle : php, js, ts, tsx, py, rs, go, md, yml, json, sh et bien d’autres (voir Langages). Cela ne fonctionne pas pour :
- les fichiers sans extension, comme
MakefileouDockerfile, qui utilisenttxtpar défaut ; - les extensions qui ne correspondent pas à un identifiant de langage, comme
.txt.
txt n’est pas un langage fourni dans le bundle : dans les deux cas, l’exécution s’arrête actuellement avec une erreur Unknown language "txt" (#3).
Pour ces fichiers, passez --lang :
vendor/bin/shikiphp highlight Dockerfile --lang=docker
vendor/bin/shikiphp highlight Makefile --lang=make
langs
Afficher un identifiant par ligne pour chaque langage accepté par le bundle.
vendor/bin/shikiphp langs
La liste comporte 350 lignes : les 253 identifiants de grammaire fournis dans le bundle, dans l’ordre du bundle (et non par ordre alphabétique), suivis de leurs 97 alias (js, cjs, mjs, etc.). Les identifiants de grammaire incluent 18 grammaires auxiliaires intégrées par d’autres grammaires, comme vue-directives et es-tag-css ; consultez Langages pour le catalogue des noms et alias. Utilisez sort pour obtenir une liste alphabétique.
themes
Afficher un identifiant par ligne pour chaque thème fourni dans le bundle, par ordre alphabétique (65 thèmes).
vendor/bin/shikiphp themes
Consultez Thèmes pour le catalogue avec les noms et les types clair/sombre.
Aide et code de sortie
Lancez la commande sans argument, ou avec -h / --help / help, pour afficher l’aide.
vendor/bin/shikiphp --help
| Situation | Sortie | Code de sortie |
|---|---|---|
| Réussite ou aide | stdout | 0 |
| Commande inconnue | Unknown command: <name> sur stderr |
1 |
highlight sans fichier ou fichier inexistant |
ligne d’utilisation sur stderr | 1 |
| Langage ou thème inconnu | Shikiphp\Exceptions\Highlight non interceptée (erreur fatale PHP avec trace de pile) |
255 |