İçeriğe geç

CLI

shikiphp, bin/shikiphp konumunda küçük bir komut satırı aracı sunar (projenize vendor/bin/shikiphp olarak kurulur). Üç komutu vardır: highlight bir dosyayı HTML biçiminde işler; langs ve themes paketin içeriğini listeler.

highlight

Bir dosyayı HTML için vurgulayın; çıktı stdout'a yazdırılır.

Kabuk
vendor/bin/shikiphp highlight <file> [--lang=<lang>] [--theme=<theme>]
  • <file> — okunacak yol. Mevcut bir dosya olmalıdır; standart girdi okunmaz.
  • --lang — dil kimliği veya takma adı. Belirtilmezse dosya uzantısı olduğu gibi kimlik olarak kullanılır (yoksa txt değerine dönülür).
  • --theme — tema kimliği. Varsayılanı github-dark.
Kabuk
vendor/bin/shikiphp highlight src/App.php --lang=php --theme=nord

Çıktı, codeToHtml tarafından döndürülen tek temalı <pre class="shiki …"> bloğuyla aynıdır; sonuna satır sonu eklenir, böylece doğrudan bir dosyaya yönlendirilebilir:

Kabuk
vendor/bin/shikiphp highlight src/App.php --theme=github-light > app.html

Komut başka seçenek almaz. Çift temalar, dönüştürücüler veya başka bir seçeneği için bunun yerine PHP API işlevini çağırın.

Seçenekler ve bağımsız değişkenler

Seçenekler --name=value biçimini kullanmalıdır. -- ile başlayan diğer bağımsız değişkenler yok sayılır; -- ile başlamayan son bağımsız değişken dosya olarak alınır. Bu nedenle --lang php file.rs, file.rs değerini Rust olarak vurgular: --lang yok sayılır, php yerine file.rs kullanılır ve dil, .rs uzantısından belirlenir.

Dil çıkarımı

--lang yoksa uzantı, değiştirilmeden dil kimliği olur. Uzantının kendisi paketteki bir kimlik veya takma ad olduğunda işe yarar: php, js, ts, tsx, py, rs, go, md, yml, json, sh ve daha fazlası (adlar ve takma adlar kataloğu için Diller bölümüne bakın). Şunlarda işe yaramaz:

  • Makefile veya Dockerfile gibi uzantısı olmayan dosyalarda; bu durumda txt değerine dönülür;
  • Dil kimliği olmayan .txt gibi uzantılarda.

txt paketteki bir dil değildir; bu nedenle her iki durum da şu anda Unknown language "txt" hatasıyla sonuçlanır (#3). Bu dosyalar için --lang değerini geçin:

Kabuk
vendor/bin/shikiphp highlight Dockerfile --lang=docker
vendor/bin/shikiphp highlight Makefile --lang=make

langs

Paketin dil olarak kabul ettiği her kimliği satır başına bir tane olacak şekilde yazdırır.

Kabuk
vendor/bin/shikiphp langs

Listede 350 satır vardır: paket sırasına göre (alfabetik değil) 253 dilbilgisi kimliği, ardından 97 takma adı (js, cjs, mjs vb.). Dilbilgisi kimlikleri, diğer dilbilgilerinin içine eklenen vue-directives ve es-tag-css gibi 18 yardımcı dilbilgisini de içerir; adların ve takma adların bulunduğu katalog için Diller bölümüne bakın. Listeyi alfabetik sıralamak için sort komutuna aktarın.

themes

Paketteki tüm tema kimliklerini, satır başına bir tane ve alfabetik sırayla yazdırır (65 tema).

Kabuk
vendor/bin/shikiphp themes

Adların ve açık/koyu türlerinin yer aldığı katalog için Temalar bölümüne bakın.

Yardım ve çıkış durumu

Kullanım bilgisini yazdırmak için komut olmadan veya -h / --help / help ile çalıştırın.

Kabuk
vendor/bin/shikiphp --help
Durum Çıktı Çıkış durumu
Başarılı veya yardım stdout 0
Bilinmeyen komut stderr üzerinde Unknown command: <name> 1
Dosya olmadan highlight veya dosyanın mevcut olmaması stderr üzerinde kullanım satırı 1
Bilinmeyen dil veya tema yakalanmamış Shikiphp\Exceptions\Highlight (yığın izlemeli PHP kritik hata) 255