Параметри
Усі точки входу (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
Пропустити токенізацію та вивести один звичайний токен для кожного рядка, довжина якого дорівнює цьому значенню або більша, у кодових одиницях UTF-16. Стандартно обмеження немає. Захист від надто довгих однорядкових вхідних даних.
['tokenizeMaxLineLength' => 1000]
meta
Довільні метадані, що передаються перетворювачам через контекст перетворювача —
наприклад, рядок метаданих блока коду, який обробляють
MetaHighlight і
MetaWordHighlight.
['meta' => ['__raw' => '{1,3-5}']]
grammarState
Shikiphp\GrammarState (від getLastGrammarState), щоб відновити токенізацію
з цього місця. Передані lang і theme(s) мають збігатися. Див.
getLastGrammarState.