CLI
shikiphp incluye una pequeña herramienta de línea de comandos en bin/shikiphp (instalada como vendor/bin/shikiphp en tu proyecto). Tiene tres comandos: highlight muestra un archivo en HTML, mientras que langs y themes enumeran el contenido del paquete.
highlight
Resalta un archivo en HTML y lo imprime en stdout.
vendor/bin/shikiphp highlight <file> [--lang=<lang>] [--theme=<theme>]
<file>— la ruta del archivo que se va a leer. Debe ser un archivo existente; no se lee la entrada estándar.--lang— el id o alias del idioma. Si se omite, se usa la extensión del archivo tal cual como id (si no hay extensión, se usatxt).--theme— el id del tema. El valor predeterminado esgithub-dark.
vendor/bin/shikiphp highlight src/App.php --lang=php --theme=nord
El resultado es el mismo bloque <pre class="shiki …"> de tema único que devuelve
codeToHtml, seguido de un salto de línea, para
poder redirigirlo directamente a un archivo:
vendor/bin/shikiphp highlight src/App.php --theme=github-light > app.html
El comando no acepta más opciones. Para usar dos temas, transformadores o cualquier otra opción, llama a PHP API.
Opciones y argumentos
Las opciones deben tener el formato --name=value. Se ignora cualquier otro argumento que empiece por
--, y se toma como archivo el último argumento que no empiece por --. Por tanto, --lang php file.rs resalta file.rs como Rust: se ignora --lang, php se sustituye por file.rs y el idioma se deduce de la extensión .rs.
Deducción del idioma
Sin --lang, la extensión se convierte en el id del idioma sin cambios. Esto funciona si la extensión es un id o alias incluido: php, js, ts, tsx, py, rs, go, md, yml, json, sh y muchos más (consulta Idiomas). No funciona con:
- archivos sin extensión, como
MakefileoDockerfile, que usantxtcomo alternativa; - extensiones que no son ids de idioma, como
.txt.
txt no es un idioma incluido, por lo que ambos casos terminan actualmente con un error Unknown language "txt" (#3).
Usa --lang con estos archivos:
vendor/bin/shikiphp highlight Dockerfile --lang=docker
vendor/bin/shikiphp highlight Makefile --lang=make
langs
Muestra, uno por línea, todos los ids de idioma que acepta el paquete.
vendor/bin/shikiphp langs
La lista tiene 350 líneas: los 253 ids de gramática incluidos, en el orden del paquete (no alfabético), seguidos de sus 97 alias (js, cjs, mjs, etc.). Entre los ids de gramática hay 18 gramáticas auxiliares que se incrustan en otras, como vue-directives y es-tag-css; consulta Idiomas para ver el catálogo con nombres y alias. Usa sort para ordenarlos alfabéticamente.
themes
Muestra todos los ids de los temas incluidos, uno por línea y en orden alfabético (65 temas).
vendor/bin/shikiphp themes
Consulta Temas para ver el catálogo con nombres y tipos claros/oscuros.
Ayuda y código de salida
Ejecuta el comando sin argumentos o con -h / --help / help para mostrar las instrucciones de uso.
vendor/bin/shikiphp --help
| Situación | Salida | Código de salida |
|---|---|---|
| Éxito o ayuda | stdout | 0 |
| Comando desconocido | Unknown command: <name> en stderr |
1 |
highlight sin archivo o archivo inexistente |
línea de uso en stderr | 1 |
| Idioma o tema desconocido | Shikiphp\Exceptions\Highlight sin capturar (error fatal de PHP con seguimiento de pila) |
255 |