Перейти до вмісту

Параметри

Усі точки входу (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

Пропустити токенізацію та вивести один звичайний токен для кожного рядка, довжина якого дорівнює цьому значенню або більша, у кодових одиницях UTF-16. Стандартно обмеження немає. Захист від надто довгих однорядкових вхідних даних.

PHP
['tokenizeMaxLineLength' => 1000]

meta

Довільні метадані, що передаються перетворювачам через контекст перетворювача — наприклад, рядок метаданих блока коду, який обробляють MetaHighlight і MetaWordHighlight.

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

grammarState

Shikiphp\GrammarState (від getLastGrammarState), щоб відновити токенізацію з цього місця. Передані lang і theme(s) мають збігатися. Див. getLastGrammarState.