Przejdź do treści

Opcje

Wszystkie punkty wejścia (codeToHtml, codeToTokens, codeToTokensResult, codeToHast) przyjmują tę samą tablicę opcji jako drugi argument. Wymagane są tylko lang i motyw.

lang

Wymagane. Identyfikator języka lub alias używany do tokenizacji — php, ts, js, rust, python, html itd. Specjalna wartość 'ansi' wyróżnia sekwencje ucieczki terminala zamiast używać gramatyki (zobacz ANSI).

PHP
['lang' => 'php']

theme

Pojedynczy identyfikator motywu. Wymagany, chyba że podano themes.

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

themes

Mapa kluczy na identyfikatory motywów dla wyjścia z jednym (lub wieloma) motywami za pomocą zmiennych CSS. Wymagane, chyba że podano theme.

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

defaultColor

Który klucz w themes staje się domyślnym kolorem wbudowanym w kod (pozostałe stają się zmiennymi --shiki-<key> CSS). Domyślnie 'light'. Ustaw na false, aby generować wyłącznie zmienne, bez domyślnego koloru wbudowanego — przydatne, gdy wszystkie kolory kontrolujesz z poziomu CSS.

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

transformers

Lista obiektów Shikiphp\Transformer\Transformer stosowanych w potoku. Zobacz Transformery.

PHP
use Shikiphp\Transformer\Notation\NotationHighlight;

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

decorations

Stosuj klasy lub atrybuty do dowolnych zakresów źródła, określonych położeniem wiersza lub znaku. Każda dekoracja ma postać {start, end, properties}, gdzie pozycje są {line, character} (liczone od zera).

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

colorReplacements

Zmienia mapowanie kolorów w wyjściu. Wpisy tekstowe globalnie zastępują kolor; wpisy zagnieżdżone, których kluczem jest nazwa motywu, dotyczą tylko tego motywu.

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

structure

'classic' (domyślnie) generuje pełną strukturę pre > code > span.line > span. 'inline' generuje tylko zakresy tokenów wraz z podziałem na wiersze, bez otaczających elementów pre/code — przydatne dla fragmentów w tekście.

PHP
['structure' => 'inline']

tabindex

Atrybut tabindex elementu <pre>. Domyślnie 0. Przekaż false, aby go pominąć.

PHP
['tabindex' => false]

cssVariablePrefix

Prefiks używany dla zmiennych CSS przy dwóch motywach. Domyślnie '--shiki-'.

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

mergeWhitespaces

Określa sposób obsługi tokenów białych znaków. true (domyślnie) łączy tokeny zawierające wyłącznie białe znaki z następującym po nich tokenem; 'never' rozdziela początkowe i końcowe białe znaki każdego tokenu na osobne tokeny; false pozostawia tokeny bez zmian.

PHP
['mergeWhitespaces' => 'never']

tokenizeMaxLineLength

Pomija tokenizację (i emituje pojedynczy zwykły token) dla każdego wiersza o długości równej lub większej od tej wartości, wyrażonej w 16-bitowych jednostkach kodu Unicode. Domyślnie brak limitu. Zabezpieczenie przed patologicznymi wejściami jednowierszowymi.

PHP
['tokenizeMaxLineLength' => 1000]

meta

Dowolne metadane przekazywane transformerom przez kontekst transformera — na przykład metadane ciągu po znaczniku kodu, używane przez MetaHighlight i MetaWordHighlight.

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

grammarState

A Shikiphp\GrammarState (z getLastGrammarState) służy do wznowienia tokenizacji od wskazanego miejsca. Przenoszone wartości lang i theme(s) muszą być zgodne. Zobacz getLastGrammarState.