Možnosti
Všetky vstupné body (codeToHtml, codeToTokens, codeToTokensResult, codeToHast) prijímajú ako druhý argument rovnaké pole možností. Povinné sú len lang a téma.
lang
Povinné. Identifikátor jazyka alebo alias, ktorý sa má použiť pri tokenizácii — php, ts, js, rust, python, html a podobne. Špeciálna hodnota 'ansi' zvýrazňuje riadiace sekvencie terminálu namiesto použitia gramatiky (pozrite si ANSI).
['lang' => 'php']
theme
Identifikátor jednej témy. Povinné, ak nie je zadané themes.
['lang' => 'php', 'theme' => 'github-dark']
themes
Mapa kľúčov na identifikátory tém pre výstup s dvoma (alebo viacerými) témami prostredníctvom premenných CSS. Povinné, ak nie je zadané theme.
['lang' => 'ts', 'themes' => ['light' => 'github-light', 'dark' => 'github-dark']]
defaultColor
Ktorý kľúč v themes sa stane predvolenou farbou vloženou priamo do kódu (ostatné sa stanú premennými --shiki-<key> CSS). Predvolené je 'light'. Nastavte na false, ak chcete vypísať len premenné bez predvolenej farby vloženej priamo do kódu — užitočné, keď všetky farby spravujete cez CSS.
['themes' => ['light' => '…', 'dark' => '…'], 'defaultColor' => 'dark']
transformers
Zoznam objektov Shikiphp\Transformer\Transformer aplikovaných v rámci pipeline. Pozrite si Transformátory.
use Shikiphp\Transformer\Notation\NotationHighlight;
['transformers' => [new NotationHighlight()]]
decorations
Použite triedy alebo atribúty na ľubovoľné rozsahy zdroja určené pozíciou riadka a znaku. Každá dekorácia má {start, end, properties}, pričom pozície sú {line, character} (indexované od nuly).
['decorations' => [
[
'start' => ['line' => 0, 'character' => 0],
'end' => ['line' => 0, 'character' => 5],
'properties' => ['class' => 'highlight'],
],
]]
colorReplacements
Zmeňte mapovanie farieb vo výstupe. Reťazcové položky nahrádzajú farbu globálne; vnorené položky s kľúčom názvu témy platia len pre danú tému.
['colorReplacements' => [
'#ffffff' => '#f8f8f2', // global
'github-dark' => ['#24292e' => '#000'], // only in github-dark
]]
structure
'classic' (predvolené) vypíše úplnú štruktúru pre > code > span.line > span. 'inline' vypíše iba rozsahy tokenov s koncami riadkov, bez obaľujúceho pre/code — užitočné pre krátke úryvky v texte.
['structure' => 'inline']
tabindex
Atribút tabindex prvku <pre>. Predvolené je 0. Ak ho chcete vynechať, zadajte false.
['tabindex' => false]
cssVariablePrefix
Predpona používaná pre premenné CSS pri dvoch témach. Predvolené je '--shiki-'.
['cssVariablePrefix' => '--my-']
mergeWhitespaces
Určuje spracovanie tokenov bielych znakov. true (predvolené) zlučuje tokeny obsahujúce len biele znaky s nasledujúcim tokenom; 'never' rozdeľuje úvodné a koncové biele znaky každého tokenu na samostatné tokeny; false ponecháva tokeny bez zmeny.
['mergeWhitespaces' => 'never']
tokenizeMaxLineLength
Preskočí tokenizáciu (a vypíše jeden obyčajný token) každého riadka, ktorý dosahuje túto dĺžku alebo je dlhší; dĺžka sa počíta v 16-bitových kódových jednotkách UTF-16. Predvolene bez obmedzenia. Ochrana pred patologicky dlhými jednoriadkovými vstupmi.
['tokenizeMaxLineLength' => 1000]
meta
Ľubovoľné metadáta sprístupnené transformátorom cez kontext transformátora — napríklad metaznak reťazca ohraničeného kódu, ktorý využívajú MetaHighlight a MetaWordHighlight.
['meta' => ['__raw' => '{1,3-5}']]
grammarState
Shikiphp\GrammarState (z getLastGrammarState) na obnovenie tokenizácie od daného bodu. Prenesené hodnoty lang a theme(s) sa musia zhodovať. Pozrite si getLastGrammarState.