Επιλογές
Όλα τα σημεία εισόδου (codeToHtml, codeToTokens, codeToTokensResult,
codeToHast) δέχονται τον ίδιο πίνακα επιλογών ως δεύτερο όρισμα. Απαιτούνται μόνο το lang
και ένα θέμα.
lang
Υποχρεωτικό. Το αναγνωριστικό της γλώσσας ή ένα ψευδώνυμο με το οποίο θα γίνει η ανάλυση σε tokens — php, ts, js,
rust, python, html κ.ο.κ. Η ειδική τιμή 'ansi' επισημαίνει
ακολουθίες διαφυγής τερματικού αντί να χρησιμοποιεί γραμματική (δείτε το ANSI).
['lang' => 'php']
theme
Ένα αναγνωριστικό θέματος. Απαιτείται εκτός αν δοθεί το themes.
['lang' => 'php', 'theme' => 'github-dark']
themes
Αντιστοίχιση κλειδιών σε αναγνωριστικά θεμάτων για έξοδο με διπλό (ή πολλαπλό) θέμα μέσω μεταβλητών CSS.
Απαιτείται εκτός αν δοθεί το theme.
['lang' => 'ts', 'themes' => ['light' => 'github-light', 'dark' => 'github-dark']]
defaultColor
Ποιο κλειδί στο themes θα γίνει το προεπιλεγμένο ενσωματωμένο χρώμα (τα υπόλοιπα γίνονται μεταβλητές --shiki-<key> CSS). Η προεπιλογή είναι 'light'. Ορίστε το σε false για να παραχθούν μόνο μεταβλητές, χωρίς προεπιλεγμένο ενσωματωμένο χρώμα — χρήσιμο όταν ελέγχετε όλα τα χρώματα από το CSS.
['themes' => ['light' => '…', 'dark' => '…'], 'defaultColor' => 'dark']
transformers
Λίστα αντικειμένων Shikiphp\Transformer\Transformer που εφαρμόζονται μέσω της
διαδικασίας. Δείτε τους Μετασχηματιστές.
use Shikiphp\Transformer\Notation\NotationHighlight;
['transformers' => [new NotationHighlight()]]
decorations
Εφαρμόστε κλάσεις ή γνωρίσματα σε αυθαίρετα εύρη του πηγαίου κώδικα βάσει θέσης γραμμής/χαρακτήρα. Κάθε διακόσμηση είναι {start, end, properties}, όπου οι θέσεις είναι {line, character} (με αρίθμηση από το μηδέν).
['decorations' => [
[
'start' => ['line' => 0, 'character' => 0],
'end' => ['line' => 0, 'character' => 5],
'properties' => ['class' => 'highlight'],
],
]]
colorReplacements
Αντιστοιχίστε ξανά τα χρώματα στην έξοδο. Οι συμβολοσειρές αντικαθιστούν ένα χρώμα παντού· οι ένθετες εγγραφές με κλειδί το όνομα θέματος εφαρμόζονται μόνο σε εκείνο το θέμα.
['colorReplacements' => [
'#ffffff' => '#f8f8f2', // global
'github-dark' => ['#24292e' => '#000'], // only in github-dark
]]
structure
Το 'classic' (προεπιλογή) παράγει ολόκληρη τη δομή pre > code > span.line > span.
Το 'inline' παράγει μόνο τα εύρη των tokens με αλλαγές γραμμής, χωρίς περιβάλλον pre/code — χρήσιμο για ενσωματωμένα αποσπάσματα.
['structure' => 'inline']
tabindex
Το γνώρισμα tabindex στο στοιχείο <pre>. Προεπιλογή: 0. Περάστε το false για να παραλειφθεί.
['tabindex' => false]
cssVariablePrefix
Το πρόθεμα που χρησιμοποιείται για τις μεταβλητές CSS διπλού θέματος. Προεπιλογή: '--shiki-'.
['cssVariablePrefix' => '--my-']
mergeWhitespaces
Ελέγχει τον χειρισμό των tokens κενών χαρακτήρων. Το true (προεπιλογή) ενσωματώνει τα tokens που περιέχουν μόνο κενά στο επόμενο token· το 'never' διαχωρίζει τα αρχικά και τελικά κενά κάθε token σε ξεχωριστά tokens· το false αφήνει τα tokens ανέπαφα.
['mergeWhitespaces' => 'never']
tokenizeMaxLineLength
Παραλείπει την ανάλυση σε tokens και παράγει ένα απλό token για κάθε γραμμή που έχει αυτό το μήκος ή μεγαλύτερο, σε μονάδες κώδικα UTF-16. Προεπιλογή: χωρίς όριο. Προστασία από παθολογικά μεγάλες γραμμές εισόδου.
['tokenizeMaxLineLength' => 1000]
meta
Αυθαίρετα μεταδεδομένα που περνούν στους μετασχηματιστές μέσω του περιβάλλοντος μετασχηματιστή —
για παράδειγμα, η συμβολοσειρά meta ενός code fence που χρησιμοποιείται από τα
MetaHighlight και
MetaWordHighlight.
['meta' => ['__raw' => '{1,3-5}']]
grammarState
Ένα Shikiphp\GrammarState (από το getLastGrammarState) από το οποίο συνεχίζεται η ανάλυση σε tokens.
Τα μεταφερόμενα lang και theme(s) πρέπει να συμφωνούν. Δείτε το
getLastGrammarState.