zudo-doc
GitHub リポジトリ

検索したい単語を入力

いつでも検索バーを開ける

コードブロック

作成 2026年5月4日更新 2026年6月15日Takeshi Takatsudo

タイトル、行ハイライト、差分表示に対応した、syntectによるシンタックスハイライト付きフェンスドコードブロック。

zudo-docのフェンスドコードブロックは、ビルド時にzfbエンジンが実行するRust製のシンタックスハイライタsyntectによってハイライトされます。開始フェンスの後に言語識別子を指定するとハイライトが有効になります。

基本的な使い方

トリプルバッククォートでコードを囲み、開始フェンスの後に言語識別子を追加します。

function add(a: number, b: number): number {
  return a + b;
}
```ts
function add(a: number, b: number): number {
  return a + b;
}
```

サポートされている言語

syntectは多くの言語を標準でサポートしています。主な識別子は以下の通りです:

言語識別子
TypeScriptts, typescript
JavaScriptjs, javascript
HTMLhtml
CSScss
JSONjson
Bash / Shellbash, sh, shell, zsh
Markdownmd, markdown
MDXmdx
YAMLyaml, yml
Pythonpython, py
Rustrust, rs
Gogo
SQLsql
GraphQLgraphql
Diffdiff
TOMLtoml
JSX / TSXjsx, tsx

認識できない言語識別子が指定された場合は、ハイライトされない素のコードブロックとしてレンダリングされます。コンテナのスタイル、コピーボタン、折り返しトグルはそのまま動作します。

コードブロックのタイトル

titleメタ属性を追加すると、コードブロックの上にファイル名やラベルを表示できます。

src/utils/math.ts
export function multiply(a: number, b: number): number {
  return a * b;
}
```ts title="src/utils/math.ts"
export function multiply(a: number, b: number): number {
  return a * b;
}
```

差分表示

diff言語を使用すると、+-のプレフィックスで追加・削除行をハイライト表示できます。

- const greeting = "Hello";
+ const greeting = "Hello, world!";
  console.log(greeting);
```diff
- const greeting = "Hello";
+ const greeting = "Hello, world!";
  console.log(greeting);
```

ネストされたコードブロック

MDXの例の中にフェンスドコードブロックを表示する必要がある場合は、外側のフェンスに4つのバッククォートを使用し、内側のブロックには3つを使用します。

````mdx
```ts
const x = 1;
```
````

シンタックスハイライトのテーマ

ビルド時のハイライタは syntect で、デュアルテーマモードで設定されています(zfb.config.tscodeHighlight.themeLight/themeDarkbase16-ocean.light / base16-ocean.dark)。各トークンの2色は --shiki-light / --shiki-dark の CSS カスタムプロパティとして出力され(インラインの color:#hex ではありません)、スタイルシートが light-dark() で解決します。これによりコードは、クライアントサイドの JavaScript なしでアクティブなライト/ダークテーマに追従します。

カラースキームの shikiTheme フィールドはこれとは無関係で、レンダリング結果には影響しません。これは zdtp パネル(@takazudo/zdtp)のカラースキームエンベロープに含まれる名残りのフィールド(zdtp 0.2.3 以降はオプショナル)です。パネルがコードを再ハイライトすることはありません。Shiki 連携は no-op スタブです。

Revision History

Takeshi Takatsudo作成: 2026-05-05T04:41:24+09:00更新: 2026-06-15T12:08:41Z

AI Assistant

Ask a question about the documentation.