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).
['lang' => 'php']
theme
Um único id de tema. Obrigatório, a menos que themes seja informado.
['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.
['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.
['themes' => ['light' => '…', 'dark' => '…'], 'defaultColor' => 'dark']
transformers
Uma lista de objetos Shikiphp\Transformer\Transformer aplicados pelo
pipeline. Consulte Transformadores.
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).
['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.
['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.
['structure' => 'inline']
tabindex
O atributo tabindex no elemento <pre>. O padrão é 0. Passe false
para omiti-lo.
['tabindex' => false]
cssVariablePrefix
O prefixo usado para as variáveis CSS de temas duplos. O padrão é '--shiki-'.
['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.
['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.
['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.
['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.