Aller au contenu

Options

Tous les points d'entrée (codeToHtml, codeToTokens, codeToTokensResult, codeToHast) prennent le même tableau d'options en deuxième argument. Seuls lang et un thème sont obligatoires.

lang

Obligatoire. L'identifiant ou l'alias du langage à utiliser pour la tokenisation — php, ts, js, rust, python, html, etc. La valeur spéciale 'ansi' met en évidence les séquences d'échappement du terminal au lieu d'utiliser une grammaire (voir ANSI).

PHP
['lang' => 'php']

theme

Un seul identifiant de thème. Obligatoire sauf si themes est fourni.

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

themes

Une correspondance entre clés et identifiants de thème pour produire plusieurs thèmes via les variables CSS. Obligatoire sauf si theme est fourni.

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

defaultColor

Quelle clé de themes devient la couleur par défaut en ligne (les autres deviennent des variables --shiki-<key> CSS). La valeur par défaut est 'light'. Réglez sur false pour générer uniquement des variables, sans couleur par défaut en ligne — pratique si vous gérez toutes les couleurs depuis CSS.

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

transformers

Une liste d'objets Shikiphp\Transformer\Transformer appliqués dans le pipeline. Consultez Transformateurs.

PHP
use Shikiphp\Transformer\Notation\NotationHighlight;

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

decorations

Appliquez des classes ou des attributs à des plages arbitraires du code source, selon la ligne et la position du caractère. Chaque décoration est {start, end, properties}, avec des positions {line, character} (indexées à partir de zéro).

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

colorReplacements

Remappez les couleurs dans la sortie. Les entrées sous forme de chaîne remplacent une couleur partout ; les entrées imbriquées par nom de thème ne s'appliquent qu'à ce thème.

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

structure

'classic' (par défaut) génère toute la structure pre > code > span.line > span. 'inline' génère uniquement les portées de jetons avec les sauts de ligne, sans enveloppe pre/code — utile pour les extraits en ligne.

PHP
['structure' => 'inline']

tabindex

L'attribut tabindex de l'élément <pre>. Valeur par défaut : 0. Passez false pour l'omettre.

PHP
['tabindex' => false]

cssVariablePrefix

Préfixe utilisé pour les variables CSS à double thème. Valeur par défaut : '--shiki-'.

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

mergeWhitespaces

Contrôle le traitement des jetons d'espaces blancs. true (par défaut) fusionne les jetons composés uniquement d'espaces blancs avec le jeton suivant ; 'never' sépare les espaces blancs de début et de fin de chaque jeton en jetons distincts ; false laisse les jetons intacts.

PHP
['mergeWhitespaces' => 'never']

tokenizeMaxLineLength

Ignore la tokenisation (et génère un seul jeton brut) pour toute ligne dont la longueur atteint ou dépasse cette limite, en unités de code UTF-16. Aucune limite par défaut. Protection contre les entrées anormales sur une seule ligne.

PHP
['tokenizeMaxLineLength' => 1000]

meta

Métadonnées arbitraires transmises aux transformateurs via le contexte du transformateur — par exemple la chaîne de métadonnées de bloc de code consommée par MetaHighlight et MetaWordHighlight.

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

grammarState

Un Shikiphp\GrammarState (depuis getLastGrammarState) pour reprendre la tokenisation. Les lang et theme(s) transmis doivent correspondre. Consultez getLastGrammarState.