Beállítások
Minden belépési pont (codeToHtml, codeToTokens, codeToTokensResult, codeToHast) ugyanazt a beállításokat tartalmazó tömböt várja második argumentumként. Csak a lang és egy téma megadása kötelező.
lang
Kötelező. A tokenizáláshoz használt nyelvazonosító vagy alias — php, ts, js, rust, python, html és így tovább. A speciális 'ansi' érték nyelvtan helyett a terminál escape-szekvenciáit emeli ki (lásd: ANSI).
['lang' => 'php']
theme
Egyetlen témaazonosító. Kötelező, kivéve ha megadja a themes értékét.
['lang' => 'php', 'theme' => 'github-dark']
themes
Témaazonosítókhoz rendelt kulcsok leképezése kettős (vagy többszörös) téma kimenetéhez, CSS változókon keresztül. Kötelező, kivéve ha megadja a theme értékét.
['lang' => 'ts', 'themes' => ['light' => 'github-light', 'dark' => 'github-dark']]
defaultColor
Az themes melyik kulcsa legyen a közvetlen alapértelmezett szín (a többi --shiki-<key> CSS változóvá válik). Alapértelmezése: 'light'. A csak változók kibocsátásához, közvetlen alapértelmezés nélkül állítsa false értékre — hasznos, ha minden színt innen szabályoz: CSS.
['themes' => ['light' => '…', 'dark' => '…'], 'defaultColor' => 'dark']
transformers
A folyamaton keresztül alkalmazott Shikiphp\Transformer\Transformer objektumok listája. Lásd: Transzformátorok.
use Shikiphp\Transformer\Notation\NotationHighlight;
['transformers' => [new NotationHighlight()]]
decorations
Osztályok vagy attribútumok alkalmazása a forrás tetszőleges tartományaira sor- és karakterpozíció alapján. Minden díszítés egy {start, end, properties}, ahol a pozíciók {line, character} (nullától indexelve).
['decorations' => [
[
'start' => ['line' => 0, 'character' => 0],
'end' => ['line' => 0, 'character' => 5],
'properties' => ['class' => 'highlight'],
],
]]
colorReplacements
A kimenet színeinek leképezése. A karakterlánc-bejegyzések globálisan cserélnek le egy színt; a témanév szerint csoportosított beágyazott bejegyzések csak az adott témára érvényesek.
['colorReplacements' => [
'#ffffff' => '#f8f8f2', // global
'github-dark' => ['#24292e' => '#000'], // only in github-dark
]]
structure
A 'classic' (alapértelmezés) a teljes pre > code > span.line > span struktúrát bocsátja ki.
A 'inline' csak a sortörésekkel elválasztott tokenrészeket adja vissza, burkoló pre/code nélkül — hasznos soron belüli kódrészletekhez.
['structure' => 'inline']
tabindex
A <pre> elem tabindex attribútuma. Alapértelmezése: 0. A kihagyásához adja meg a false értéket.
['tabindex' => false]
cssVariablePrefix
A kettős témák CSS változóihoz használt előtag. Alapértelmezése: '--shiki-'.
['cssVariablePrefix' => '--my-']
mergeWhitespaces
A szóközöket tartalmazó tokenek kezelését szabályozza. A true (alapértelmezés) a csak szóközökből álló tokeneket a következő tokenbe olvasztja; a 'never' a tokenek kezdő és záró szóközeit különálló tokenekre bontja; a false változatlanul hagyja a tokeneket.
['mergeWhitespaces' => 'never']
tokenizeMaxLineLength
Az adott hosszúságú vagy annál hosszabb sorok tokenizálásának kihagyása; helyettük egyetlen egyszerű tokent bocsát ki. A hossz UTF-16 kódegységekben értendő. Alapértelmezés szerint nincs korlát. Védelmet nyújt a kórosan hosszú, egysoros bemenetek ellen.
['tokenizeMaxLineLength' => 1000]
meta
Tetszőleges metaadat, amely a transzformátorokhoz a transzformátorkörnyezeten keresztül jut el — például a kódfence meta-karakterlánca, amelyet ezek használnak: MetaHighlight és MetaWordHighlight.
['meta' => ['__raw' => '{1,3-5}']]
grammarState
Egy Shikiphp\GrammarState (a getLastGrammarState csomagból), amelytől folytatódik a tokenizálás. A továbbvitt lang és theme(s) értékének egyeznie kell. Lásd: getLastGrammarState.