Pular para o conteúdo

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.

Shell
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 (ou txt se não houver extensão).
  • --theme — o ID do tema. O padrão é github-dark.
Shell
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:

Shell
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 Makefile ou Dockerfile, que recorrem a txt;
  • 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:

Shell
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.

Shell
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).

Shell
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.

Shell
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