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 |