Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Render

最終更新 Markdown で表示Agent セットアップ

The Render component is used 3823 times on 1750 pages.

See all examples of pages that use Render

Used 3823 times.

Pages

Partials

Render コンポーネントは、再利用可能な Markdown スニペットである「パーシャル」をページに含めます。

パラメーターも受け取れます。パーシャル内の変数として使えるため、利用箇所ごとに少し違う内容でも、パーシャル化できます。

コンポーネント

import { Render } from "~/components";

<Render
	file="simple-props"
	product="style-guide"
	params={{
		name: "world",
	}}
/>

入力

  • file string

    パーシャルの名前です。格納ディレクトリやファイル拡張子は含めません。たとえば /partials/style-guide/hello.mdxfile="hello" です。

  • product string

    src/partials 内のフォルダーです。

  • params object optional

    パーシャル内の値を差し替えたい場合は、パーシャルから参照できる params を渡せます。プロパティ を参照してください。

プロパティ

フロントマターで期待するプロパティを定義する

Render コンポーネントの params プロパティで定義した内容は、JavaScript 式 でパーシャル内から使えます。

必須プロパティの欠落を防ぐため、params に依存するパーシャルは、パーシャルのフロントマターでも params を定義してください。期待するプロパティ名と一致する文字列の配列にします。

---
params:
  - product
---

次の各例では、ドロップダウンを開くとパーシャルの内容を確認できます。

プレーンな文字列としてのプロパティ

次の例は Hello, world! と表示します。

simple-props.mdx

---
params:
  - name
---

こんにちは、{props.name}!
import { Render } from "~/components";

<Render file="simple-props" product="style-guide" params={{ name: "world" }} />

Markdown 構文内のプロパティ

JavaScript 式を使うと「JSX の内側」になり、従来の Markdown 構文は使えません。同様に、Markdown 構文の内側でも JavaScript 式は使えません。

理想的には、プロパティと一緒に **strong**[text](link) などの Markdown 構文は使いません。JSX が難しい場合は、text プロパティを取る Markdown コンポーネントがあります。

MDX のドキュメント には、よく使う Markdown 構文と同等の JSX 要素の対応表があります。

Strong

strong-in-props.mdx

---
params:
  - dont
  - do
---

**こうしないでください。**

{props.dont}

**こうしてください。**

<strong>{props.do}</strong>
import { Render } from "~/components";

<Render
	file="strong-in-props"
	product="style-guide"
	params={{ do: "Text", dont: "**Text**" }}
/>

リンク

link-in-props.mdx

---
params:
  - link
---

**こうしないでください。**

これは `/style-guide/build-the-page/components/%7Bprops.link%7D` にリンクします。

[Markdown リンク]({props.link})

**こうしてください。**

これは `style-guide/components/render/#links` にリンクします。

<p>
	<a href={props.link}>JSX リンク</a>
</p>
import { Render } from "~/components";

<Render
	file="link-in-props"
	product="style-guide"
	params={{
		link: "/style-guide/build-the-page/components/render/#links",
	}}
/>

画像

image-in-props.mdx

---
params:
  - image
---

**こうしないでください**

`![代替テキスト]({props.image})`

**こうします**

<img src={props.image} alt="代替テキスト" />
import { Render } from "~/components";

<Render
	file="image-in-props"
	product="style-guide"
	params={{ image: "/logo.svg" }}
/>

コードブロック

code-in-props.mdx

---
params:
  - code
---

import { Code } from "~/components";

#### インライン

**こうしないでください**

`{props.code}`

**こうします**

<p>
	<code>{props.code}</code>
</p>

<hr />

#### コードブロック

**こうしないでください**

```js
{
	props.code;
}
```

**こうします**

<Code code={props.code} lang="js" />
import { Render } from "~/components";

<Render
	file="code-in-props"
	product="style-guide"
	params={{ code: "export const foo = 'bar';" }}
/>

役に立ちましたか?