Pular para o conteúdo

Opções

Todos os pontos de entrada (codeToHtml, codeToTokens, codeToTokensResult, codeToHast) aceitam o mesmo array de opções como segundo argumento. Apenas lang e um tema são obrigatórios.

lang

Obrigatório. O id ou alias do idioma usado para tokenizar — php, ts, js, rust, python, html e assim por diante. O valor especial 'ansi' realça sequências de escape do terminal em vez de usar uma gramática (consulte ANSI).

PHP
['lang' => 'php']

theme

Um único id de tema. Obrigatório, a menos que themes seja informado.

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

themes

Um mapa de chaves para ids de tema para gerar saída com temas duplos (ou múltiplos) por meio de variáveis CSS. Obrigatório, a menos que theme seja informado.

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

defaultColor

Qual chave de themes se torna a cor padrão em linha (as demais se tornam variáveis --shiki-<key> CSS). O padrão é 'light'. Defina como false para emitir apenas variáveis, sem cor padrão em linha — útil quando você controla todas as cores com CSS.

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

transformers

Uma lista de objetos Shikiphp\Transformer\Transformer aplicados pelo pipeline. Consulte Transformadores.

PHP
use Shikiphp\Transformer\Notation\NotationHighlight;

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

decorations

Aplique classes ou atributos a intervalos arbitrários do código-fonte por linha/posição do caractere. Cada decoração é {start, end, properties}, e as posições são {line, character} (começam em zero).

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

colorReplacements

Remapeia as cores na saída. Itens de string substituem uma cor globalmente; itens aninhados indexados pelo nome do tema se aplicam apenas a esse tema.

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

structure

'classic' (padrão) emite a estrutura pre > code > span.line > span completa. 'inline' emite apenas os trechos dos tokens com quebras de linha, sem pre/code em volta — útil para trechos em linha.

PHP
['structure' => 'inline']

tabindex

O atributo tabindex no elemento <pre>. O padrão é 0. Passe false para omiti-lo.

PHP
['tabindex' => false]

cssVariablePrefix

O prefixo usado para as variáveis CSS de temas duplos. O padrão é '--shiki-'.

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

mergeWhitespaces

Controla como são tratados os tokens de espaço em branco. true (padrão) incorpora tokens compostos apenas por espaços em branco ao token seguinte; 'never' separa os espaços em branco iniciais e finais de cada token em tokens independentes; false mantém os tokens inalterados.

PHP
['mergeWhitespaces' => 'never']

tokenizeMaxLineLength

Ignora a tokenização (e emite um único token simples para) qualquer linha que tenha este comprimento ou mais, em unidades de código UTF-16. Sem limite por padrão. Uma proteção contra entradas patológicas em uma única linha.

PHP
['tokenizeMaxLineLength' => 1000]

meta

Metadados arbitrários passados aos transformadores pelo contexto do transformador — por exemplo, a string de metadados da cerca de código consumida por MetaHighlight e MetaWordHighlight.

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

grammarState

Um Shikiphp\GrammarState (de getLastGrammarState) para retomar a tokenização a partir desse ponto. Os valores transportados lang e theme(s) precisam corresponder. Consulte getLastGrammarState.