Zum Inhalt springen

Optionen

Alle Einstiegspunkte (codeToHtml, codeToTokens, codeToTokensResult, codeToHast) verwenden dasselbe Optionsarray als zweites Argument. Erforderlich sind nur lang und ein Theme.

lang

Erforderlich. Die Sprach-ID oder der Alias für die Tokenisierung — php, ts, js, rust, python, html usw. Der Sonderwert 'ansi' hebt Terminal-Escape-Sequenzen statt einer Grammatik hervor (siehe ANSI).

PHP
['lang' => 'php']

theme

Eine einzelne Theme-ID. Erforderlich, sofern themes nicht angegeben ist.

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

themes

Eine Zuordnung von Schlüsseln zu Theme-IDs für die Ausgabe mit zwei (oder mehreren) Themes über CSS-Variablen. Erforderlich, sofern theme nicht angegeben ist.

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

defaultColor

Welcher Schlüssel in themes zur Standardfarbe für Inline-Elemente wird (die anderen werden zu --shiki-<key>-CSS-Variablen). Standardmäßig 'light'. Setze den Wert auf false, um nur Variablen und keine Inline-Standardfarbe auszugeben — praktisch, wenn du alle Farben über CSS steuerst.

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

transformers

Eine Liste von Shikiphp\Transformer\Transformer-Objekten, die über die Pipeline angewendet werden. Siehe Transformers.

PHP
use Shikiphp\Transformer\Notation\NotationHighlight;

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

decorations

Wende Klassen oder Attribute anhand der Zeilen- und Zeichenposition auf beliebige Bereiche des Quelltexts an. Jede Dekoration ist {start, end, properties}, wobei die Positionen {line, character} sind (nullbasiert).

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

colorReplacements

Farben in der Ausgabe neu zuordnen. Einträge als Zeichenfolgen ersetzen eine Farbe global; verschachtelte Einträge mit Theme-Namen als Schlüssel gelten nur für dieses Theme.

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

structure

'classic' (Standard) gibt die vollständige pre > code > span.line > span-Struktur aus. 'inline' gibt nur die Token-Spans mit Zeilenumbrüchen aus, ohne umschließende pre/code — nützlich für Inline-Codeausschnitte.

PHP
['structure' => 'inline']

tabindex

Das Attribut tabindex des Elements <pre>. Standardmäßig 0. Übergib false, um es wegzulassen.

PHP
['tabindex' => false]

cssVariablePrefix

Das Präfix für die CSS-Variablen mit mehreren Themes. Standardmäßig '--shiki-'.

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

mergeWhitespaces

Steuert den Umgang mit Leerraum-Token. true (Standard) fasst reine Leerraum-Token mit dem folgenden Token zusammen; 'never' zerlegt den führenden und nachgestellten Leerraum jedes Tokens in eigenständige Token; false lässt die Token unverändert.

PHP
['mergeWhitespaces' => 'never']

tokenizeMaxLineLength

Überspringe die Tokenisierung für jede Zeile, die mindestens diese Länge hat, und gib dafür ein einzelnes Plain-Token aus; Längenangabe in UTF-16-Codeeinheiten. Standardmäßig gibt es kein Limit. Schützt vor problematisch langen einzeiligen Eingaben.

PHP
['tokenizeMaxLineLength' => 1000]

meta

Beliebige Metadaten, die über den Transformer-Kontext an Transformers weitergegeben werden — zum Beispiel die Meta-Zeichenfolge eines Codeblocks, die von MetaHighlight und MetaWordHighlight verarbeitet wird.

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

grammarState

Ein Shikiphp\GrammarState (aus getLastGrammarState), ab dem die Tokenisierung fortgesetzt wird. Die übernommenen Werte lang und theme(s) müssen übereinstimmen. Siehe getLastGrammarState.