テーマ
shikiphpにはShikiの全テーマが含まれます。VS Codeの全65テーマは、tm-themes 1.12.2のテーマセットで、Shiki 3.23.0に収録されています。内訳はダーク44、ライト21です。人気のIDにはgithub-dark、github-light、nord、dracula、vitesse-dark、vitesse-light、one-dark-pro、monokai、solarized-dark、さらにcatppuccin-*とmaterial-theme-*の各ファミリーがあります。
themeオプションでテーマを1つ、またはthemesを使って2つ以上指定し、ライト/ダークのCSS変数出力を行います。はじめにを参照してください。
use Shikiphp\Shikiphp;
echo Shikiphp::codeToHtml('const answer = 42', [
'lang' => 'js',
'themes' => ['light' => 'github-light', 'dark' => 'github-dark'],
]);
バンドルにないテーマIDを指定すると、Shikiphp\Exceptions\Highlightが発生し、メッセージUnknown theme "…"が表示されます。
テーマで設定できる項目
テーマはブロックの前景色と背景色(<pre>に設定)に加え、各トークンの色とフォントスタイル(斜体、太字、下線、取り消し線)を設定します。スタイルはスコープセレクターの具体性に基づいて決まります。lang: 'ansi'の場合は、テーマのterminal.ansi*色がANSIパレットになります(ANSIを参照)。テーマを編集せずに個別の色を調整するには、colorReplacementsを使います。
同梱テーマの一覧表示
PHPから:
use Shikiphp\Shikiphp;
$highlighter = Shikiphp::highlighter();
$highlighter->bundledThemes(); // list<string> — ids shipped in the box
$highlighter->loadedThemes(); // list<string> — bundled plus any you registered
またはコマンドラインから、IDをアルファベット順に1行ずつ表示します:
vendor/bin/shikiphp themes
カタログ
種類はバンドルが各テーマに記録しているlightまたはdarkです。themesオプションに指定するテーマの組み合わせを選ぶ際に役立ちます。
| テーマ | ID | 種類 |
|---|---|---|
| Andromeeda | andromeeda |
dark |
| Aurora X | aurora-x |
dark |
| Ayu Dark | ayu-dark |
dark |
| Ayu Light | ayu-light |
light |
| Ayu Mirage | ayu-mirage |
dark |
| Catppuccin Frappé | catppuccin-frappe |
dark |
| Catppuccin Latte | catppuccin-latte |
light |
| Catppuccin Macchiato | catppuccin-macchiato |
dark |
| Catppuccin Mocha | catppuccin-mocha |
dark |
| Dark Plus | dark-plus |
dark |
| Dracula Theme | dracula |
dark |
| Dracula Theme Soft | dracula-soft |
dark |
| Everforest Dark | everforest-dark |
dark |
| Everforest Light | everforest-light |
light |
| GitHub Dark | github-dark |
dark |
| GitHub Dark Default | github-dark-default |
dark |
| GitHub Dark Dimmed | github-dark-dimmed |
dark |
| GitHub Dark High Contrast | github-dark-high-contrast |
dark |
| GitHub Light | github-light |
light |
| GitHub Light Default | github-light-default |
light |
| GitHub Light High Contrast | github-light-high-contrast |
light |
| Gruvbox Dark Hard | gruvbox-dark-hard |
dark |
| Gruvbox Dark Medium | gruvbox-dark-medium |
dark |
| Gruvbox Dark Soft | gruvbox-dark-soft |
dark |
| Gruvbox Light Hard | gruvbox-light-hard |
light |
| Gruvbox Light Medium | gruvbox-light-medium |
light |
| Gruvbox Light Soft | gruvbox-light-soft |
light |
| Horizon | horizon |
dark |
| Horizon Bright | horizon-bright |
light |
| Houston | houston |
dark |
| Kanagawa Dragon | kanagawa-dragon |
dark |
| Kanagawa Lotus | kanagawa-lotus |
light |
| Kanagawa Wave | kanagawa-wave |
dark |
| LaserWave | laserwave |
dark |
| Light Plus | light-plus |
light |
| Material Theme | material-theme |
dark |
| Material Theme Darker | material-theme-darker |
dark |
| Material Theme Lighter | material-theme-lighter |
light |
| Material Theme Ocean | material-theme-ocean |
dark |
| Material Theme Palenight | material-theme-palenight |
dark |
| Min Dark | min-dark |
dark |
| Min Light | min-light |
light |
| Monokai | monokai |
dark |
| Night Owl | night-owl |
dark |
| Night Owl Light | night-owl-light |
light |
| Nord | nord |
dark |
| One Dark Pro | one-dark-pro |
dark |
| One Light | one-light |
light |
| Plastic | plastic |
dark |
| Poimandres | poimandres |
dark |
| Red | red |
dark |
| Rosé Pine | rose-pine |
dark |
| Rosé Pine Dawn | rose-pine-dawn |
light |
| Rosé Pine Moon | rose-pine-moon |
dark |
| Slack Dark | slack-dark |
dark |
| Slack Ochin | slack-ochin |
light |
| Snazzy Light | snazzy-light |
light |
| Solarized Dark | solarized-dark |
dark |
| Solarized Light | solarized-light |
light |
| Synthwave '84 | synthwave-84 |
dark |
| Tokyo Night | tokyo-night |
dark |
| Vesper | vesper |
dark |
| Vitesse Black | vitesse-black |
dark |
| Vitesse Dark | vitesse-dark |
dark |
| Vitesse Light | vitesse-light |
light |
独自の文法を追加する
カスタム VS Code テーマ JSON を loadTheme に登録します。カスタム言語とテーマを参照してください。