オプション
すべてのエントリポイント(codeToHtml、codeToTokens、codeToTokensResult、codeToHast)は、2番目の引数として同じオプション配列を受け取ります。必須なのはlangとテーマのみです。
lang
必須。 トークン化する言語のIDまたは別名です(php、ts、js、rust、python、htmlなど)。特別な値'ansi'を指定すると、文法の代わりにターミナルのエスケープシーケンスを強調表示します(ANSIを参照)。
['lang' => 'php']
theme
テーマのIDを1つ指定します。themesを指定する場合を除き、必須です。
['lang' => 'php', 'theme' => 'github-dark']
themes
デュアル(または複数)テーマの出力に使う、キーとテーマIDのマップです(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}(0から始まる)です。
['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
<pre>要素のtabindex属性です。デフォルトは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を参照してください。