Saltar al contenido

Opciones

Todos los puntos de entrada (codeToHtml, codeToTokens, codeToTokensResult, codeToHast) aceptan el mismo arreglo de opciones como segundo argumento. Solo lang y un tema son obligatorios.

lang

Obligatorio. El identificador o alias del idioma que se usará para tokenizar: php, ts, js, rust, python, html, etc. El valor especial 'ansi' resalta las secuencias de escape del terminal en lugar de usar una gramática (consulta ANSI).

PHP
['lang' => 'php']

theme

Un único identificador de tema. Es obligatorio salvo que se indique themes.

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

themes

Un mapa de claves a identificadores de temas para generar temas dobles (o múltiples) mediante variables CSS. Es obligatorio salvo que se indique theme.

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

defaultColor

Qué clave de themes se convierte en el color predeterminado en línea (las demás pasan a ser variables --shiki-<key> CSS). El valor predeterminado es 'light'. Indique false para emitir solo variables, sin un valor predeterminado en línea; resulta práctico cuando controla todos los colores desde CSS.

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

transformers

Una lista de objetos Shikiphp\Transformer\Transformer que se aplican a través del flujo. Consulte Transformadores.

PHP
use Shikiphp\Transformer\Notation\NotationHighlight;

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

decorations

Aplique clases o atributos a rangos arbitrarios del código fuente según la línea y la posición del carácter. Cada decoración es {start, end, properties}, donde las posiciones son {line, character} (desde cero).

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

colorReplacements

Remapea los colores de la salida. Las entradas de tipo cadena reemplazan un color globalmente; las entradas anidadas, identificadas por nombre de tema, solo se aplican a ese tema.

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

structure

'classic' (predeterminado) emite la estructura completa de pre > code > span.line > span. 'inline' emite solo los tramos de tokens con saltos de línea, sin envolverlos en pre/code; resulta útil para fragmentos en línea.

PHP
['structure' => 'inline']

tabindex

El atributo tabindex del elemento <pre>. El valor predeterminado es 0. Pase false para omitirlo.

PHP
['tabindex' => false]

cssVariablePrefix

El prefijo que se usa para las variables CSS de temas dobles. El valor predeterminado es '--shiki-'.

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

mergeWhitespaces

Controla cómo se gestionan los tokens de espacios en blanco. true (predeterminado) incorpora los tokens que solo contienen espacios en blanco al siguiente token; 'never' separa los espacios en blanco iniciales y finales de cada token en tokens independientes; false deja los tokens sin cambios.

PHP
['mergeWhitespaces' => 'never']

tokenizeMaxLineLength

Omite la tokenización y emite un único token de texto sin formato para cualquier línea que alcance o supere esta longitud, en unidades de código UTF-16. Sin límite de forma predeterminada. Protege frente a entradas patológicas de una sola línea.

PHP
['tokenizeMaxLineLength' => 1000]

meta

Metadatos arbitrarios que se pasan a los transformadores a través del contexto del transformador; por ejemplo, la cadena de metadatos de un bloque de código consumida por MetaHighlight y MetaWordHighlight.

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

grammarState

Un Shikiphp\GrammarState (de getLastGrammarState) desde el que reanudar la tokenización. Los valores lang y theme(s) conservados deben coincidir. Consulte getLastGrammarState.