Lewati ke konten

CLI

shikiphp menyertakan alat baris perintah kecil di bin/shikiphp (dipasang sebagai vendor/bin/shikiphp di proyek Anda). Alat ini memiliki tiga perintah: highlight merender satu file ke HTML, sedangkan langs dan themes menampilkan isi bundle.

highlight

Sorot file ke HTML dan cetak ke stdout.

Shell
vendor/bin/shikiphp highlight <file> [--lang=<lang>] [--theme=<theme>]
  • <file> — jalur file yang akan dibaca. File harus sudah ada; input standar tidak dibaca.
  • --lang — ID atau alias bahasa. Jika tidak dicantumkan, ekstensi file digunakan apa adanya sebagai ID (jika tidak ada, gunakan txt).
  • --theme — ID tema. Default-nya github-dark.
Shell
vendor/bin/shikiphp highlight src/App.php --lang=php --theme=nord

Outputnya adalah blok <pre class="shiki …"> tema tunggal yang sama dengan yang dikembalikan codeToHtml, diikuti baris baru, sehingga dapat langsung dialihkan ke file:

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

Perintah ini tidak menerima opsi lain. Untuk tema ganda, transformer, atau opsilainnya, panggil PHP API saja.

Opsi dan argumen

Opsi harus menggunakan bentuk --name=value. Argumen lain yang diawali -- akan diabaikan, dan argumen terakhir yang tidak diawali -- dianggap sebagai file. Jadi, --lang php file.rs menyorot file.rs sebagai Rust: --lang diabaikan, php digantikan dengan file.rs, dan bahasa ditentukan dari ekstensi .rs.

Penentuan bahasa otomatis

Tanpa --lang, ekstensi menjadi id bahasa tanpa perubahan. Ini berfungsi jika ekstensi tersebut merupakan id atau alias yang sudah disertakan — php, js, ts, tsx, py, rs, go, md, yml, json, sh, dan banyak lagi (lihat Bahasa). Ini tidak berlaku untuk:

  • file tanpa ekstensi, seperti Makefile atau Dockerfile, yang menggunakan txt sebagai fallback;
  • ekstensi yang bukan id bahasa, seperti .txt.

txt bukan bahasa yang disertakan, sehingga kedua kasus saat ini berhenti dengan kesalahan Unknown language "txt" (#3). Berikan --lang untuk file-file ini:

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

langs

Cetak setiap id yang diterima bundle sebagai bahasa, satu per baris.

Shell
vendor/bin/shikiphp langs

Daftar ini terdiri dari 350 baris: 253 id tata bahasa yang disertakan dalam urutan bundle (bukan alfabetis), diikuti 97 aliasnya (js, cjs, mjs, dan seterusnya). Id tata bahasa mencakup 18 tata bahasa pembantu yang disematkan oleh tata bahasa lain, seperti vue-directives dan es-tag-css; lihat Bahasa untuk katalog nama dan alias. Salurkan melalui sort untuk mendapatkan daftar alfabetis.

themes

Cetak setiap id tema yang disertakan, satu per baris, dalam urutan alfabetis (65 tema).

Shell
vendor/bin/shikiphp themes

Lihat Tema untuk katalog yang berisi nama dan jenis terang/gelap.

Bantuan dan status keluar

Jalankan tanpa perintah, atau -h / --help / help, untuk mencetak petunjuk penggunaan.

Shell
vendor/bin/shikiphp --help
Situasi Keluaran Status keluar
Berhasil, atau bantuan stdout 0
Perintah tidak dikenal Unknown command: <name> di stderr 1
highlight tanpa file, atau file tidak ada baris petunjuk penggunaan di stderr 1
Bahasa atau tema tidak dikenal Shikiphp\Exceptions\Highlight yang tidak tertangkap (kesalahan fatal PHP dengan stack trace) 255