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

Επιλογές

Όλα τα σημεία εισόδου (codeToHtml, codeToTokens, codeToTokensResult, codeToHast) δέχονται τον ίδιο πίνακα επιλογών ως δεύτερο όρισμα. Απαιτούνται μόνο το lang και ένα θέμα.

lang

Υποχρεωτικό. Το αναγνωριστικό της γλώσσας ή ένα ψευδώνυμο με το οποίο θα γίνει η ανάλυση σε tokens — php, ts, js, rust, python, html κ.ο.κ. Η ειδική τιμή 'ansi' επισημαίνει ακολουθίες διαφυγής τερματικού αντί να χρησιμοποιεί γραμματική (δείτε το ANSI).

PHP
['lang' => 'php']

theme

Ένα αναγνωριστικό θέματος. Απαιτείται εκτός αν δοθεί το themes.

PHP
['lang' => 'php', 'theme' => 'github-dark']

themes

Αντιστοίχιση κλειδιών σε αναγνωριστικά θεμάτων για έξοδο με διπλό (ή πολλαπλό) θέμα μέσω μεταβλητών CSS. Απαιτείται εκτός αν δοθεί το theme.

PHP
['lang' => 'ts', 'themes' => ['light' => 'github-light', 'dark' => 'github-dark']]

defaultColor

Ποιο κλειδί στο themes θα γίνει το προεπιλεγμένο ενσωματωμένο χρώμα (τα υπόλοιπα γίνονται μεταβλητές --shiki-<key> CSS). Η προεπιλογή είναι 'light'. Ορίστε το σε false για να παραχθούν μόνο μεταβλητές, χωρίς προεπιλεγμένο ενσωματωμένο χρώμα — χρήσιμο όταν ελέγχετε όλα τα χρώματα από το CSS.

PHP
['themes' => ['light' => '…', 'dark' => '…'], 'defaultColor' => 'dark']

transformers

Λίστα αντικειμένων Shikiphp\Transformer\Transformer που εφαρμόζονται μέσω της διαδικασίας. Δείτε τους Μετασχηματιστές.

PHP
use Shikiphp\Transformer\Notation\NotationHighlight;

['transformers' => [new NotationHighlight()]]

decorations

Εφαρμόστε κλάσεις ή γνωρίσματα σε αυθαίρετα εύρη του πηγαίου κώδικα βάσει θέσης γραμμής/χαρακτήρα. Κάθε διακόσμηση είναι {start, end, properties}, όπου οι θέσεις είναι {line, character} (με αρίθμηση από το μηδέν).

PHP
['decorations' => [
    [
        'start'      => ['line' => 0, 'character' => 0],
        'end'        => ['line' => 0, 'character' => 5],
        'properties' => ['class' => 'highlight'],
    ],
]]

colorReplacements

Αντιστοιχίστε ξανά τα χρώματα στην έξοδο. Οι συμβολοσειρές αντικαθιστούν ένα χρώμα παντού· οι ένθετες εγγραφές με κλειδί το όνομα θέματος εφαρμόζονται μόνο σε εκείνο το θέμα.

PHP
['colorReplacements' => [
    '#ffffff'      => '#f8f8f2',          // global
    'github-dark'  => ['#24292e' => '#000'], // only in github-dark
]]

structure

Το 'classic' (προεπιλογή) παράγει ολόκληρη τη δομή pre > code > span.line > span. Το 'inline' παράγει μόνο τα εύρη των tokens με αλλαγές γραμμής, χωρίς περιβάλλον pre/code — χρήσιμο για ενσωματωμένα αποσπάσματα.

PHP
['structure' => 'inline']

tabindex

Το γνώρισμα tabindex στο στοιχείο <pre>. Προεπιλογή: 0. Περάστε το false για να παραλειφθεί.

PHP
['tabindex' => false]

cssVariablePrefix

Το πρόθεμα που χρησιμοποιείται για τις μεταβλητές CSS διπλού θέματος. Προεπιλογή: '--shiki-'.

PHP
['cssVariablePrefix' => '--my-']

mergeWhitespaces

Ελέγχει τον χειρισμό των tokens κενών χαρακτήρων. Το true (προεπιλογή) ενσωματώνει τα tokens που περιέχουν μόνο κενά στο επόμενο token· το 'never' διαχωρίζει τα αρχικά και τελικά κενά κάθε token σε ξεχωριστά tokens· το false αφήνει τα tokens ανέπαφα.

PHP
['mergeWhitespaces' => 'never']

tokenizeMaxLineLength

Παραλείπει την ανάλυση σε tokens και παράγει ένα απλό token για κάθε γραμμή που έχει αυτό το μήκος ή μεγαλύτερο, σε μονάδες κώδικα UTF-16. Προεπιλογή: χωρίς όριο. Προστασία από παθολογικά μεγάλες γραμμές εισόδου.

PHP
['tokenizeMaxLineLength' => 1000]

meta

Αυθαίρετα μεταδεδομένα που περνούν στους μετασχηματιστές μέσω του περιβάλλοντος μετασχηματιστή — για παράδειγμα, η συμβολοσειρά meta ενός code fence που χρησιμοποιείται από τα MetaHighlight και MetaWordHighlight.

PHP
['meta' => ['__raw' => '{1,3-5}']]

grammarState

Ένα Shikiphp\GrammarState (από το getLastGrammarState) από το οποίο συνεχίζεται η ανάλυση σε tokens. Τα μεταφερόμενα lang και theme(s) πρέπει να συμφωνούν. Δείτε το getLastGrammarState.