Опции
Всички входни функции (codeToHtml, codeToTokens, codeToTokensResult,
codeToHast) приемат един и същ масив с опции като втори аргумент. Задължителни са само lang
и тема.
lang
Задължително. Езиковият идентификатор или псевдонимът, с който да се токенизира — php, ts, js,
rust, python, html и т.н. Специалната стойност 'ansi' откроява
терминалните екраниращи последователности вместо да използва граматика (вижте ANSI).
['lang' => 'php']
theme
Един идентификатор на тема. Задължително, освен ако не е зададено themes.
['lang' => 'php', 'theme' => 'github-dark']
themes
Съпоставяне на ключове с идентификатори на теми за извеждане на две (или повече) теми чрез променливите CSS.
Задължително, освен ако не е зададено theme.
['lang' => 'ts', 'themes' => ['light' => 'github-light', 'dark' => 'github-dark']]
defaultColor
Кой ключ в themes да стане цветът по подразбиране за вграждане (останалите стават
променливи --shiki-<key> CSS). По подразбиране е 'light'. Задайте false, за да извеждате
само променливи и без цвят по подразбиране за вграждане — удобно, когато управлявате всички цветове от
CSS.
['themes' => ['light' => '…', 'dark' => '…'], 'defaultColor' => 'dark']
transformers
Списък с обекти Shikiphp\Transformer\Transformer, прилагани през
конвейера. Вижте Трансформатори.
use Shikiphp\Transformer\Notation\NotationHighlight;
['transformers' => [new NotationHighlight()]]
decorations
Прилагайте класове или атрибути към произволни диапазони от изходния код по ред/позиция на символа.
Всяка декорация е {start, end, properties}, като позициите са
{line, character} (с начало от нула).
['decorations' => [
[
'start' => ['line' => 0, 'character' => 0],
'end' => ['line' => 0, 'character' => 5],
'properties' => ['class' => 'highlight'],
],
]]
colorReplacements
Пренасочва цветовете в изхода. Елементите от тип низ глобално заменят цвят; вложените елементи, индексирани по име на тема, се отнасят само за тази тема.
['colorReplacements' => [
'#ffffff' => '#f8f8f2', // global
'github-dark' => ['#24292e' => '#000'], // only in github-dark
]]
structure
'classic' (по подразбиране) извежда пълната структура pre > code > span.line > span.
'inline' извежда само обхватите на токените с нови редове, без обвиващи
pre/code — полезно за кратки откъси.
['structure' => 'inline']
tabindex
Атрибутът tabindex на елемента <pre>. По подразбиране е 0. Подайте false,
за да го пропуснете.
['tabindex' => false]
cssVariablePrefix
Префиксът за променливите CSS на теми с два цвята. По подразбиране е '--shiki-'.
['cssVariablePrefix' => '--my-']
mergeWhitespaces
Управлява обработката на токени за интервали. true (по подразбиране) включва токените, съставени само от интервали, в следващия токен; 'never' разделя началните и крайните интервали на всеки токен в отделни токени; false оставя токените непроменени.
['mergeWhitespaces' => 'never']
tokenizeMaxLineLength
Пропуска токенизирането (и извежда един обикновен токен) за всеки ред с тази дължина или повече, измерена в 16-битови кодови единици. По подразбиране няма ограничение. Защита срещу патологично дълги редове.
['tokenizeMaxLineLength' => 1000]
meta
Произволни метаданни, предавани на трансформаторите чрез контекста на трансформатора —
например метаданните на кодовия блок, използвани от
MetaHighlight и
MetaWordHighlight.
['meta' => ['__raw' => '{1,3-5}']]
grammarState
Shikiphp\GrammarState (от getLastGrammarState), от който да продължи токенизирането.
Пренесените lang и theme(s) трябва да съвпадат. Вижте
getLastGrammarState.