Možnosti
Všechny vstupní body (codeToHtml, codeToTokens, codeToTokensResult,
codeToHast) přijímají stejné pole možností jako druhý argument. Povinné jsou pouze lang
a motiv.
lang
Povinné. ID nebo alias jazyka, který se má tokenizovat — php, ts, js,
rust, python, html a tak dále. Speciální hodnota 'ansi' zvýrazňuje
řídicí sekvence terminálu namísto použití gramatiky (viz ANSI).
['lang' => 'php']
theme
Jedno ID motivu. Je povinné, pokud není uvedeno themes.
['lang' => 'php', 'theme' => 'github-dark']
themes
Mapa klíčů na ID motivů pro výstup s dvojím (nebo vícenásobným) motivem prostřednictvím proměnných CSS.
Je povinná, pokud není uvedeno theme.
['lang' => 'ts', 'themes' => ['light' => 'github-light', 'dark' => 'github-dark']]
defaultColor
Který klíč v themes se stane výchozí barvou přímo v řádku (ostatní se stanou
proměnnými --shiki-<key> CSS). Výchozí hodnota je 'light'. Nastavením na false se vypíší
pouze proměnné bez výchozí barvy přímo v řádku — užitečné, když všechny barvy řídíte z
CSS.
['themes' => ['light' => '…', 'dark' => '…'], 'defaultColor' => 'dark']
transformers
Seznam objektů Shikiphp\Transformer\Transformer použitých v průběhu
řetězce zpracování. Viz Transformátory.
use Shikiphp\Transformer\Notation\NotationHighlight;
['transformers' => [new NotationHighlight()]]
decorations
Použije třídy nebo atributy na libovolné rozsahy zdroje podle pozice řádku a znaku.
Každá dekorace je {start, end, properties}, kde pozice jsou
{line, character} (od nuly).
['decorations' => [
[
'start' => ['line' => 0, 'character' => 0],
'end' => ['line' => 0, 'character' => 5],
'properties' => ['class' => 'highlight'],
],
]]
colorReplacements
Přemapuje barvy ve výstupu. Řetězcové položky globálně nahrazují barvu; vnořené položky s klíčem názvu motivu se použijí pouze pro daný motiv.
['colorReplacements' => [
'#ffffff' => '#f8f8f2', // global
'github-dark' => ['#24292e' => '#000'], // only in github-dark
]]
structure
'classic' (výchozí) vydá úplnou strukturu pre > code > span.line > span.
'inline' vydá pouze rozsahy tokenů s konci řádků, bez obalujících
pre/code — užitečné pro vložené úryvky.
['structure' => 'inline']
tabindex
Atribut tabindex prvku <pre>. Výchozí hodnota je 0. Předejte false,
chcete-li jej vynechat.
['tabindex' => false]
cssVariablePrefix
Předpona používaná pro proměnné CSS motivu se dvěma motivy. Výchozí hodnota je '--shiki-'.
['cssVariablePrefix' => '--my-']
mergeWhitespaces
Řídí zpracování mezer v tokenech. true (výchozí) slučuje tokeny obsahující pouze mezery s následujícím tokenem; 'never' rozděluje úvodní a
koncové mezery každého tokenu do samostatných tokenů; false ponechává tokeny beze změny.
['mergeWhitespaces' => 'never']
tokenizeMaxLineLength
Přeskočí tokenizaci řádku této délky nebo delší (a vydá pro něj jediný prostý token), počítáno v jednotkách kódu UTF-16. Ve výchozím nastavení není limit nastaven. Ochrana proti patologickým jednořádkovým vstupům.
['tokenizeMaxLineLength' => 1000]
meta
Libovolná metadata předávaná transformátorům prostřednictvím kontextu transformátoru —
například řetězec metadat oploceného bloku kódu, který zpracovávají
MetaHighlight a
MetaWordHighlight.
['meta' => ['__raw' => '{1,3-5}']]
grammarState
Shikiphp\GrammarState (z getLastGrammarState), od kterého se má pokračovat v tokenizaci.
Přenášené lang a theme(s) se musí shodovat. Viz
getLastGrammarState.