Към съдържанието

CLI

shikiphp включва малък инструмент за командния ред в bin/shikiphp (инсталиран като vendor/bin/shikiphp във вашия проект). Има три команди: highlight изобразява един файл в HTML, а langs и themes показват съдържанието на пакета.

highlight

Оцветява файл в HTML и го отпечатва на стандартния изход.

Обвивка
vendor/bin/shikiphp highlight <file> [--lang=<lang>] [--theme=<theme>]
  • <file> — пътят до файла за четене. Файлът трябва да съществува; стандартният вход не се чете.
  • --lang — ID или псевдоним на езика. Ако е пропуснат, разширението на файла се използва като ID без промяна (ако няма разширение, се използва txt).
  • --theme — ID на темата. По подразбиране е github-dark.
Обвивка
vendor/bin/shikiphp highlight src/App.php --lang=php --theme=nord

Изходът е същият блок <pre class="shiki …"> с една тема, който връща codeToHtml, последван от нов ред, така че може да бъде пренасочен директно във файл:

Обвивка
vendor/bin/shikiphp highlight src/App.php --theme=github-light > app.html

Командата не приема други опции. За двойни теми, трансформатори или каквато и да е друга опция извикайте вместо това PHP API.

Опции и аргументи

Опциите трябва да са във формат --name=value. Всеки друг аргумент, който започва с --, се игнорира, а последният аргумент, който не започва с --, се приема за файла. Следователно --lang php file.rs откроява file.rs като Rust: --lang се игнорира, php се заменя с file.rs, а езикът се определя от разширението .rs.

Определяне на езика

Без --lang разширението става непроменен идентификатор на език. Това работи, когато самото разширение е вграден идентификатор или псевдоним — php, js, ts, tsx, py, rs, go, md, yml, json, sh и много други (вижте Езици). Не работи при:

  • файлове без разширение, като Makefile или Dockerfile, за които се използва резервният вариант txt;
  • разширения, които не са идентификатор на език, като .txt.

txt не е вграден език, затова и в двата случая изпълнението спира с необработена грешка Unknown language "txt" (#3). Подайте --lang за тези файлове:

Обвивка
vendor/bin/shikiphp highlight Dockerfile --lang=docker
vendor/bin/shikiphp highlight Makefile --lang=make

langs

Извежда всички идентификатори, които пакетът приема като език, по един на ред.

Обвивка
vendor/bin/shikiphp langs

Списъкът съдържа 350 реда: 253 идентификатора на вградените граматики в реда на пакета (не по азбучен ред), последвани от 97-те им псевдонима (js, cjs, mjs и т.н.). Идентификаторите на граматиките включват 18 помощни граматики, вграждани от други граматики, като vue-directives и es-tag-css; вижте Езици за каталога с имената и псевдонимите. Използвайте sort, за да получите азбучен списък.

themes

Извежда всички идентификатори на вградените теми, по един на ред, в азбучен ред (65 теми).

Обвивка
vendor/bin/shikiphp themes

Вижте Теми за каталога с имената и типовете светла/тъмна.

Помощ и код на изхода

Изпълнете без команда или с -h / --help / help, за да изведете информация за употребата.

Обвивка
vendor/bin/shikiphp --help
Ситуация Изход Код на изхода
Успех или помощ stdout 0
Непозната команда Unknown command: <name> към stderr 1
highlight без файл или файлът не съществува редът с информация за употребата към stderr 1
Непознат език или тема необработена Shikiphp\Exceptions\Highlight (фатална грешка PHP с проследяване на стека) 255