コンテンツへスキップ
Fumadocs

コードブロック(動的)

コードのハイライトも行うコードブロック

console.log("This is pre-rendered")

使い方

クライアントコンポーネント

import { DynamicCodeBlock } from 'fumadocs-ui/components/dynamic-codeblock';

export function MyComp() {
  const code = `console.log("Hello World")`;

  return <DynamicCodeBlock lang="ts" code={code} />;
}

MDX の CodeBlock コンポーネントとは異なり、これは MDX なしで使用できるクライアントコンポーネントです。 Shiki でコードをハイライトし、デフォルトのコンポーネントでレンダリングします。

特徴:

  • React.js 19 の Suspense を使用します。
  • サーバー上で事前レンダリングできます。
  • 言語とテーマはブラウザ上で遅延読み込みされます。

オプション

import { DynamicCodeBlock } from 'fumadocs-ui/components/dynamic-codeblock';

<DynamicCodeBlock
  lang="ts"
  code='console.log("Hello World")'
  options={{
    themes: {
      light: 'github-light',
      dark: 'github-dark',
    },
    components: {
      // コンポーネントを上書き(例: `pre` や `code`)
    },
    // その他の Shiki オプション
  }}
/>;

サーバーコンポーネント

サーバーコンポーネント版が必要な場合は、RSC 版を使用できます。

import { ServerCodeBlock } from 'fumadocs-ui/components/codeblock.rsc';

<ServerCodeBlock
  lang="ts"
  code='console.log("Hello World")'
  themes={{
    light: 'github-light',
    dark: 'github-dark',
  }}
  components={
    {
      // コンポーネントを上書き(例: `pre` や `code`)
    }
  }
  // その他の Shiki オプション
/>;

独自のハイライターでハイライトする場合は、Highlighter を参照してください。

How is this guide?

最終更新日