Μετάβαση στο περιεχόμενο

CLI

Το shikiphp περιλαμβάνει ένα μικρό εργαλείο γραμμής εντολών στο bin/shikiphp (εγκατεστημένο ως vendor/bin/shikiphp στο έργο σας). Διαθέτει τρεις εντολές: η highlight αποδίδει ένα αρχείο σε HTML, ενώ οι langs και themes εμφανίζουν τα περιεχόμενα του bundle.

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

Η εντολή δεν δέχεται άλλες επιλογές. Για δύο θέματα, transformers ή οποιαδήποτε άλλη επιλογή, καλέστε απευθείας το PHP API.

Επιλογές και ορίσματα

Οι επιλογές πρέπει να έχουν τη μορφή --name=value. Κάθε άλλο όρισμα που αρχίζει με -- αγνοείται, ενώ ως αρχείο χρησιμοποιείται το τελευταίο όρισμα που δεν αρχίζει με --. Επομένως, το --lang php file.rs επισημαίνει το file.rs ως Rust: το --lang αγνοείται, το php αντικαθίσταται από το file.rs και η γλώσσα προκύπτει από την επέκταση .rs.

Αυτόματη αναγνώριση γλώσσας

Χωρίς --lang, η επέκταση γίνεται αυτούσια το id της γλώσσας. Αυτό λειτουργεί όταν η επέκταση είναι ήδη ενσωματωμένο id ή ψευδώνυμο — php, js, ts, tsx, py, rs, go, md, yml, json, sh και πολλά άλλα (δείτε τις Γλώσσες). Δεν λειτουργεί στις εξής περιπτώσεις:

  • αρχεία χωρίς επέκταση, όπως τα Makefile ή Dockerfile, για τα οποία χρησιμοποιείται το txt·
  • επεκτάσεις που δεν είναι id γλώσσας, όπως το .txt.

Το txt δεν είναι ενσωματωμένη γλώσσα, επομένως και στις δύο περιπτώσεις η εκτέλεση σταματά αυτή τη στιγμή με σφάλμα Unknown language "txt" (#3). Για αυτά τα αρχεία, περάστε το --lang:

Κέλυφος
vendor/bin/shikiphp highlight Dockerfile --lang=docker
vendor/bin/shikiphp highlight Makefile --lang=make

langs

Εμφανίστε σε ξεχωριστή γραμμή κάθε id γλώσσας που δέχεται το bundle.

Κέλυφος
vendor/bin/shikiphp langs

Η λίστα περιλαμβάνει 350 γραμμές: τα 253 ενσωματωμένα id γραμματικών με τη σειρά του bundle (όχι αλφαβητικά), ακολουθούμενα από τα 97 ψευδώνυμά τους (js, cjs, mjs κ.ο.κ.). Στα id γραμματικών περιλαμβάνονται 18 βοηθητικές γραμματικές που ενσωματώνονται από άλλες, όπως οι vue-directives και es-tag-css· δείτε τις Γλώσσες για τον κατάλογο με ονόματα και ψευδώνυμα. Περάστε τη λίστα από το sort για αλφαβητική ταξινόμηση.

themes

Εμφανίστε σε ξεχωριστή γραμμή κάθε ενσωματωμένο id θέματος, με αλφαβητική σειρά (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 με stack trace) 255