Treci la conținut

Opțiuni

Toate punctele de intrare (codeToHtml, codeToTokens, codeToTokensResult, codeToHast) acceptă același tablou de opțiuni ca al doilea argument. Sunt necesare doar lang și o temă.

lang

Obligatoriu. Identificatorul limbii sau aliasul folosit pentru tokenizare — php, ts, js, rust, python, html și așa mai departe. Valoarea specială 'ansi' evidențiază secvențele de evadare ale terminalului în loc să folosească o gramatică (consultați ANSI).

PHP
['lang' => 'php']

theme

Un singur identificator de temă. Este obligatoriu dacă nu este furnizat themes.

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

themes

O mapare de la chei la identificatori de teme pentru ieșirea cu teme duble (sau multiple), prin variabilele CSS. Este obligatorie dacă nu este furnizat theme.

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

defaultColor

Ce cheie din themes devine culoarea implicită inline (celelalte devin variabile --shiki-<key> CSS). Valoarea implicită este 'light'. Setați-o la false pentru a emite doar variabile, fără o culoare implicită inline — util când controlați toate culorile din CSS.

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

transformers

O listă de obiecte Shikiphp\Transformer\Transformer aplicate prin fluxul de procesare. Consultați Transformatoare.

PHP
use Shikiphp\Transformer\Notation\NotationHighlight;

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

decorations

Aplicați clase sau atribute unor intervale arbitrare din sursă, după linie/poziția caracterului. Fiecare decorare este {start, end, properties}, unde pozițiile sunt {line, character} (încep de la zero).

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

colorReplacements

Remapează culorile din ieșire. Elementele de tip șir înlocuiesc o culoare peste tot; elementele imbricate, indexate după numele temei, se aplică doar acelei teme.

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

structure

'classic' (implicit) emite întreaga structură pre > code > span.line > span. 'inline' emite doar intervalele tokenurilor, cu întreruperi de linie, fără elemente pre/code de încadrare — util pentru fragmente inline.

PHP
['structure' => 'inline']

tabindex

Atributul tabindex pentru elementul <pre>. Valoarea implicită este 0. Transmiteți false pentru a-l omite.

PHP
['tabindex' => false]

cssVariablePrefix

Prefixul folosit pentru variabilele CSS cu teme duble. Valoarea implicită este '--shiki-'.

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

mergeWhitespaces

Controlează gestionarea tokenurilor de spații albe. true (implicit) unește tokenurile care conțin doar spații albe cu tokenul următor; 'never' împarte spațiile albe de la începutul și sfârșitul fiecărui token în tokenuri separate; false lasă tokenurile neschimbate.

PHP
['mergeWhitespaces' => 'never']

tokenizeMaxLineLength

Omite tokenizarea (și emite un singur token simplu pentru) orice linie care are cel puțin această lungime, în unități de cod UTF-16. Valoarea implicită nu impune nicio limită. Protejează împotriva intrărilor patologice pe o singură linie.

PHP
['tokenizeMaxLineLength' => 1000]

meta

Metadate arbitrare transmise transformatoarelor prin contextul transformatorului — de exemplu, șirul meta al delimitatorului de cod, procesat de MetaHighlight și MetaWordHighlight.

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

grammarState

Un Shikiphp\GrammarState (din getLastGrammarState) pentru a relua tokenizarea începând de la. lang și theme(s) transmise trebuie să corespundă. Consultați getLastGrammarState.