ルビ注釈
Opt-inキャレット構文でルビ(ふりがな)注釈を描画する — {base}^{ruby} または base^{ruby}。
ruby 機能は、キャレット構文のインライン注釈をパースし、
<ruby><rb>base</rb><rt>ruby</rt></ruby> HTML として描画します — これは
日本語のふりがなのような音声注釈の標準的なマークアップです。
有効化
// zfb.config.ts
export default defineConfig({
markdown: {
features: {
ruby: true,
},
},
});主要構文 — キャレット
キャレット形式には 2 つの書き方があります:
波括弧付きのベース
両側を {…} で囲み、その間に ^ を置きます:
{これは}^{これ}次のように描画されます:
<ruby><rb>これは</rb><rt>これ</rt></ruby>どんなベーステキストでも動作します — 非 ASCII のルール(後述)は波括弧形式には
適用されない ため、{ABC}^{xyz} も有効です。
波括弧なしのベース
ベースを囲む波括弧を省略します — キャレットは直前のテキストの連なり全体を ベースとして取り込みます:
これは^{これ}次のように描画されます:
<ruby><rb>これは</rb><rt>これ</rt></ruby>波括弧なし形式には非 ASCII のベースが必須。 波括弧なし形式は ASCII の
上付き文字(2^{n}、x^{i})と AST の形を共有するため、パーサーは誤検出を
防ぐガードを適用します。ベースの連なりには少なくとも 1 つの非 ASCII 文字が
含まれていなければなりません。CJK/かなのベースは問題ありませんが、ASCII のみの
ベースはそのまま残されます。ASCII のベースには波括弧形式を使ってください。
1 つの段落に複数の注釈を含めることがサポートされています:
{日本語}^{にほんご}を{学ぶ}^{まなぶ}<ruby><rb>日本語</rb><rt>にほんご</rt></ruby>を<ruby><rb>学ぶ</rb><rt>まなぶ</rt></ruby>レガシーエイリアス — パイプ構文
以前のバージョンのパイプ構文は、後方互換性のために残されています:
{漢字|かんじ}を{学ぶ|まなぶ}次のように描画されます:
<ruby><rb>漢字</rb><rt>かんじ</rt></ruby>を<ruby><rb>学ぶ</rb><rt>まなぶ</rt></ruby>新しいコンテンツにはキャレット構文を使ってください。パイプ形式も同一の出力を生成し、 今後もサポートされ続けますが、もはや主要構文ではありません。
エッジケース
キャレット形式のエッジケース(パイプ形式でも両形式が同様に扱われます):
{これは}^{これ}→<ruby>要素2^{n}、x^{i}(ASCII の波括弧なしベース)→ そのままリテラルテキストとして残る{base}^{}(空の注釈)→ そのままリテラルテキストとして残る^{ruby}(ベースなし)→ そのままリテラルテキストとして残る
スコープの制限 — 自動ふりがなはなし
この機能は、明示的なキャレット/パイプ構文を のみ パースします。形態素解析 (例: kuromoji 方式のセグメンテーション)によって漢字を自動検出してふりがなを 付与することは しません。自動的なふりがな付与は、別の、はるかに難しい問題であり、 意図的にスコープ外としています。
自動ふりがなが必要な場合は、それ専用の別機能が必要になります。