Към съдържанието

Опции

Всички входни функции (codeToHtml, codeToTokens, codeToTokensResult, codeToHast) приемат един и същ масив с опции като втори аргумент. Задължителни са само lang и тема.

lang

Задължително. Езиковият идентификатор или псевдонимът, с който да се токенизира — php, ts, js, rust, python, html и т.н. Специалната стойност 'ansi' откроява терминалните екраниращи последователности вместо да използва граматика (вижте ANSI).

PHP
['lang' => 'php']

theme

Един идентификатор на тема. Задължително, освен ако не е зададено themes.

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

themes

Съпоставяне на ключове с идентификатори на теми за извеждане на две (или повече) теми чрез променливите CSS. Задължително, освен ако не е зададено theme.

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

defaultColor

Кой ключ в themes да стане цветът по подразбиране за вграждане (останалите стават променливи --shiki-<key> CSS). По подразбиране е 'light'. Задайте false, за да извеждате само променливи и без цвят по подразбиране за вграждане — удобно, когато управлявате всички цветове от CSS.

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

transformers

Списък с обекти Shikiphp\Transformer\Transformer, прилагани през конвейера. Вижте Трансформатори.

PHP
use Shikiphp\Transformer\Notation\NotationHighlight;

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

decorations

Прилагайте класове или атрибути към произволни диапазони от изходния код по ред/позиция на символа. Всяка декорация е {start, end, properties}, като позициите са {line, character} (с начало от нула).

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

colorReplacements

Пренасочва цветовете в изхода. Елементите от тип низ глобално заменят цвят; вложените елементи, индексирани по име на тема, се отнасят само за тази тема.

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

structure

'classic' (по подразбиране) извежда пълната структура pre > code > span.line > span. 'inline' извежда само обхватите на токените с нови редове, без обвиващи pre/code — полезно за кратки откъси.

PHP
['structure' => 'inline']

tabindex

Атрибутът tabindex на елемента <pre>. По подразбиране е 0. Подайте false, за да го пропуснете.

PHP
['tabindex' => false]

cssVariablePrefix

Префиксът за променливите CSS на теми с два цвята. По подразбиране е '--shiki-'.

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

mergeWhitespaces

Управлява обработката на токени за интервали. true (по подразбиране) включва токените, съставени само от интервали, в следващия токен; 'never' разделя началните и крайните интервали на всеки токен в отделни токени; false оставя токените непроменени.

PHP
['mergeWhitespaces' => 'never']

tokenizeMaxLineLength

Пропуска токенизирането (и извежда един обикновен токен) за всеки ред с тази дължина или повече, измерена в 16-битови кодови единици. По подразбиране няма ограничение. Защита срещу патологично дълги редове.

PHP
['tokenizeMaxLineLength' => 1000]

meta

Произволни метаданни, предавани на трансформаторите чрез контекста на трансформатора — например метаданните на кодовия блок, използвани от MetaHighlight и MetaWordHighlight.

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

grammarState

Shikiphp\GrammarState (от getLastGrammarState), от който да продължи токенизирането. Пренесените lang и theme(s) трябва да съвпадат. Вижте getLastGrammarState.