コンテンツへスキップ

オプション

すべてのエントリポイント(codeToHtml、codeToTokens、codeToTokensResult、codeToHast)は、2番目の引数として同じオプション配列を受け取ります。必須なのはlangとテーマのみです。

lang

必須。 トークン化する言語のIDまたは別名です(php、ts、js、rust、python、htmlなど)。特別な値'ansi'を指定すると、文法の代わりにターミナルのエスケープシーケンスを強調表示します(ANSIを参照)。

PHP
['lang' => 'php']

theme

テーマのIDを1つ指定します。themesを指定する場合を除き、必須です。

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

themes

デュアル(または複数)テーマの出力に使う、キーとテーマIDのマップです(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}(0から始まる)です。

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

<pre>要素のtabindex属性です。デフォルトは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を参照してください。