Skip to content

fix(blockquote): render fenced code blocks inside plain blockquotes#26

Merged
delphinus merged 1 commit into
mainfrom
fix/blockquote-code-fence
Jul 6, 2026
Merged

fix(blockquote): render fenced code blocks inside plain blockquotes#26
delphinus merged 1 commit into
mainfrom
fix/blockquote-code-fence

Conversation

@delphinus

Copy link
Copy Markdown
Owner

問題

以下のように引用ブロックの中にコードフェンスがあると正しく描画できず、``` が普通の <code>〜</code> として扱われていました。

> hoge
> ```sh
> echo \$FOO
> ```
> fuga

原因

content_builder.lua の引用内コードフェンス処理が current_alert_type が設定されているとき、つまり > [!NOTE] のようなコールアウト (アラート) の場合だけ動作するようゲートされていました。

if current_alert_type and line:match "^>" then

通常の > 引用では current_alert_typenil のためこの分岐に入らず、> ```sh がインライン描画に流れて ``` が普通のコードスパンになっていました。

修正

  • ゲート条件を current_alert_type and line:match "^>" から line:match "^>" に緩め、通常の引用でもフェンスを認識するようにした。
  • 分岐内の apply_alert_styling 呼び出し 2 か所を current_alert_type でガードし、通常の引用にコールアウト用のスタイルが誤って掛からないようにした (FloatBorder、コード本体は String)。

これで引用内コードブロックは、フェンス行が本文化されず、 プレフィックス付きで String 描画され、code_blocks に登録されてシンタックスハイライトの対象になります。

テスト

  • 回帰テストを 3 件追加 (tests/markdown_checkbox_test.lua): フェンス行が本文化されないこと・コードブロックが登録されること・ハイライト (FloatBorder + String、アラートスタイルなし) の確認。
  • 全テストスイート通過 (0 failed)。変更ファイルのみ stylua で整形済み。

🤖 Generated with Claude Code

コードフェンス (```) を含む引用ブロックが正しく描画されず、``` が
インラインの <code> として扱われる問題を修正した。

原因は content_builder の引用内コードフェンス処理が current_alert_type
(= コールアウト `> [!NOTE]` のとき)でのみ有効になっていたため。通常の
`> ` 引用では current_alert_type が nil でこの分岐に入らず、`> ```sh` が
インライン描画に流れて ``` が普通のコードスパンになっていた。

- ゲート条件を `current_alert_type and line:match "^>"` から
  `line:match "^>"` に緩め、通常の引用でもフェンスを認識させる
- 分岐内の apply_alert_styling 2 か所を current_alert_type でガードし、
  通常の引用にコールアウト用スタイルが掛からないようにする

これで引用内コードブロックはフェンス行が本文化されず、│ プレフィックス
付きで String 描画され、code_blocks に登録されてシンタックスハイライトの
対象になる。回帰テストを 3 件追加。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@delphinus delphinus merged commit 4252cf9 into main Jul 6, 2026
4 checks passed
@delphinus delphinus deleted the fix/blockquote-code-fence branch July 6, 2026 15:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant