mcpField
X
x-markdown

x-markdown

github.com/ant-design開発4.8k107 回インストール2 日前に更新
リポジトリ

x-markdown について

x-markdown は、React アプリで @ant-design/x-markdown を使う開発者向けのガイドです。ストリーミング出力、不完全な構文、カスタムコンポーネント、プラグイン、テーマ、安全なレンダリングを扱い、チャットのデータフローとは役割を分けています。

主な機能

  1. 01Markdown の基本レンダリング
  2. 02LLM のストリームと不完全な構文への対応
  3. 03カスタムコンポーネントとタグのマッピング
  4. 04プラグインとテーマの設定
  5. 05生 HTML の安全な処理

活用シーン

  1. 01単独の Markdown ページやドキュメントの表示
  2. 02分割して届く LLM 応答の表示
  3. 03Markdown タグの業務コンポーネントへの置換

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ant-design/x --skill x-markdown

インストール後、Claude Code で/x-markdownを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

reference/
API.md
CORE.md
EXTENSIONS.md
STREAMING.md

詳細

🎯 スキルの位置づけ

このスキルが扱うのは、1つの役割だけです:@ant-design/x-markdown で Markdown を正確かつ予測可能にレンダリングします。

対象となる内容は次のとおりです。

  • 基本的なレンダリングとパッケージの境界
  • LLM のストリーミング出力と不完全な構文の処理
  • リッチなチャットやデータ表示ブロック向けのカスタムコンポーネントのマッピング
  • プラグイン、テーマ、安全なレンダリングのデフォルト設定

目次

📦 パッケージの境界

レイヤーパッケージ役割
UI レイヤー@ant-design/xチャット UI、バブルリスト、送信者、リッチなインタラクションコンポーネント
データレイヤー@ant-design/x-sdkプロバイダー、リクエスト、ストリーミングデータフロー、状態管理
レンダリングレイヤー@ant-design/x-markdownMarkdown の解析、ストリーミングレンダリング、プラグイン、テーマ、カスタムレンダラー

⚠️ x-markdown はチャットの状態を扱うツールではありません。@ant-design/x と @ant-design/x-sdk がメッセージデータを生成した後のコンテンツのレンダリングに使用してください。

🚀 クイックスタート判断ガイド

必要な内容最初に読むドキュメント一般的な結果
最小限の設定で Markdown をレンダリングするCORE.mdXMarkdown が基本的なスタイルで信頼できるコンテンツをレンダリングします
LLM のストリーミングチャンクをレンダリングするSTREAMING.mdhasNextChunk、プレースホルダー、テールインジケーター、ローディング状態が正しく処理されます
タグをビジネスコンポーネントに置き換えるEXTENSIONS.mdカスタムタグとコードブロック向けの安定した components マップを作成できます
プラグインやテーマのオーバーライドを追加するEXTENSIONS.mdプラグインのインポート、テーマクラスの設定、最小限の CSS オーバーライドを行えます
prop の詳細とデフォルト値を確認するAPI.mdXMarkdown とストリーミングオプションの prop 一覧を確認できます

🛠 推奨ワークフロー

  1. CORE.md から始め、まずプレーンなレンダリングを動作させます。
  2. コンテンツがチャンク単位で届く場合にのみ、STREAMING.md を追加します。
  3. カスタムタグ、プラグイン、構文ブロック、テーマが必要な場合は、EXTENSIONS.md を追加します。
  4. 推測するのではなく、API.md で prop 名とデフォルト値を確認します。

最小限のセットアップに関する注意

import { XMarkdown } from '@ant-design/x-markdown';

export default () => <XMarkdown content="# Hello" />;

🚨 開発ルール

  • 安定した components オブジェクトを優先してください。レンダリングのたびにインラインのコンポーネントマッピングを新しく作成しないでください。
  • 最終チャンクでは streaming.hasNextChunk = false を設定してください。そうしないと、不完全なプレースホルダーが最終コンテンツに反映されません。
  • 生 HTML は慎重に扱ってください。生 HTML をテキストとして表示する場合は、escapeRawHtml を優先してください。
  • 生 HTML をレンダリングする必要がある場合は、dompurifyConfig を明示的かつ最小限に設定してください。
  • テーマのオーバーライドは小規模に保ってください。x-markdown-light または x-markdown-dark を基にして、必要な変数だけをオーバーライドします。
  • カスタムコンポーネントが構文の完成を前提とする場合は、streamStatus === 'done' に応じて処理を分岐してください。

🤝 スキルの連携

シナリオ推奨されるスキルの組み合わせ理由
チャットでのリッチなアシスタントの応答x-chat-provider → x-request → use-x-chat → x-markdownプロバイダーとリクエストがデータフローを処理し、x-markdown が最終的なレンダリングを処理します
Markdown の応答を返す組み込みプロバイダーx-request → use-x-chat → x-markdownリクエスト設定とレンダリングの関心事を分離できます
スタンドアロンの Markdown ページまたはドキュメントビューアーx-markdown のみチャットのデータフローは必要ありません

境界のルール

  • API 形式を適応させる場合は x-chat-provider を使用してください。
  • トランスポート、認証、リトライ、ストリーミング区切り文字を設定する場合は x-request を使用してください。
  • React でチャットの状態を管理する場合は use-x-chat を使用してください。
  • コンテンツ自体に Markdown の解析、ストリーミングの復元、またはリッチなコンポーネントのレンダリングが必要な場合は x-markdown を使用してください。

🔗 リファレンスリソース

  • CORE.md - パッケージの境界、インストールとセットアップ、安全なデフォルト設定、一般的なレンダリングパターン
  • STREAMING.md - チャンク単位のレンダリング、不完全な構文の復元、読み込み中と完了時の動作
  • EXTENSIONS.md - コンポーネント、プラグイン、テーマ、カスタムタグに関するガイダンス
  • API.md - 公式の x-markdown ドキュメントから生成された API リファレンス

公式ドキュメント

コメント