CLI
shikiphp inclui uma pequena ferramenta de linha de comando em bin/shikiphp (instalada como vendor/bin/shikiphp no seu projeto). Ela tem três comandos: highlight renderiza um arquivo em HTML, e langs e themes listam o conteúdo do pacote.
highlight
Destaca um arquivo em HTML e imprime o resultado em stdout.
vendor/bin/shikiphp highlight <file> [--lang=<lang>] [--theme=<theme>]
<file>— o caminho do arquivo a ler. Ele deve existir; a entrada padrão não é lida.--lang— o ID ou alias do idioma. Se omitido, a extensão do arquivo é usada como está para o ID (outxtse não houver extensão).--theme— o ID do tema. O padrão égithub-dark.
vendor/bin/shikiphp highlight src/App.php --lang=php --theme=nord
A saída é o mesmo bloco <pre class="shiki …"> de tema único retornado por codeToHtml, seguido de uma quebra de linha, para que possa ser redirecionado diretamente para um arquivo:
vendor/bin/shikiphp highlight src/App.php --theme=github-light > app.html
O comando não aceita outras opções. Para temas duplos, transformadores ou qualquer outra opção, chame a PHP API.
Opções e argumentos
As opções devem usar o formato --name=value. Qualquer outro argumento que comece com -- é ignorado, e o último argumento que não começa com -- é considerado o arquivo. Portanto, --lang php file.rs destaca file.rs como Rust: --lang é ignorado, php é substituído por file.rs, e o idioma é inferido pela extensão .rs.
Inferência de idioma
Sem --lang, a extensão se torna o próprio id de linguagem, sem alterações. Isso funciona
sempre que a extensão já é um id ou alias incluído no pacote — php, js, ts,
tsx, py, rs, go, md, yml, json, sh e muitos outros (consulte
Idiomas). Isso não funciona para:
- arquivos sem extensão, como
MakefileouDockerfile, que recorrem atxt; - extensões que não são um id de linguagem, como
.txt.
txt não é uma linguagem incluída no pacote, então ambos os casos são interrompidos atualmente com um erro Unknown language "txt" (#3).
Passe --lang para esses arquivos:
vendor/bin/shikiphp highlight Dockerfile --lang=docker
vendor/bin/shikiphp highlight Makefile --lang=make
langs
Imprima cada id aceito pelo pacote como linguagem, um por linha.
vendor/bin/shikiphp langs
A lista tem 350 linhas: os 253 ids de gramática incluídos no pacote, na ordem do pacote (não
alfabética), seguidos de seus 97 aliases (js, cjs, mjs e assim por diante).
Os ids de gramática incluem 18 gramáticas auxiliares incorporadas por outras gramáticas, como
vue-directives e es-tag-css; consulte Idiomas para ver o
catálogo com nomes e aliases. Encadeie com sort para obter uma lista em ordem alfabética.
themes
Imprima cada id de tema incluído no pacote, um por linha, em ordem alfabética (65 temas).
vendor/bin/shikiphp themes
Consulte Temas para ver o catálogo com nomes e tipos claro/escuro.
Ajuda e código de saída
Execute sem comando ou com -h / --help / help para imprimir as instruções de uso.
vendor/bin/shikiphp --help
| Situação | Saída | Código de saída |
|---|---|---|
| Sucesso ou ajuda | stdout | 0 |
| Comando desconhecido | Unknown command: <name> em stderr |
1 |
highlight sem arquivo ou se o arquivo não existir |
linha de instruções de uso em stderr | 1 |
| Idioma ou tema desconhecido | Shikiphp\Exceptions\Highlight não capturado (erro fatal PHP com rastreamento de pilha) |
255 |