@intlayer/docs 8.10.0-canary.0 → 8.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/ar/dictionary/markdown.md +409 -88
- package/docs/de/dictionary/markdown.md +279 -107
- package/docs/en/dictionary/markdown.md +237 -37
- package/docs/en-GB/dictionary/markdown.md +361 -76
- package/docs/es/dictionary/markdown.md +295 -123
- package/docs/fr/dictionary/markdown.md +301 -129
- package/docs/hi/dictionary/markdown.md +376 -90
- package/docs/id/dictionary/markdown.md +377 -91
- package/docs/it/dictionary/markdown.md +296 -129
- package/docs/ko/dictionary/markdown.md +306 -134
- package/docs/pl/dictionary/markdown.md +287 -116
- package/docs/pt/dictionary/markdown.md +287 -116
- package/docs/ru/dictionary/markdown.md +78 -513
- package/docs/tr/dictionary/markdown.md +300 -130
- package/docs/uk/dictionary/markdown.md +386 -100
- package/docs/vi/dictionary/markdown.md +383 -97
- package/docs/zh/dictionary/markdown.md +293 -125
- package/package.json +7 -7
- package/docs/ja/dictionary/markdown.md +0 -666
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intlayer/docs",
|
|
3
|
-
"version": "8.10.0
|
|
3
|
+
"version": "8.10.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Intlayer documentation",
|
|
6
6
|
"keywords": [
|
|
@@ -72,14 +72,14 @@
|
|
|
72
72
|
"watch": "webpack --config ./webpack.config.ts --watch"
|
|
73
73
|
},
|
|
74
74
|
"dependencies": {
|
|
75
|
-
"@intlayer/config": "8.10.0
|
|
76
|
-
"@intlayer/core": "8.10.0
|
|
77
|
-
"@intlayer/types": "8.10.0
|
|
75
|
+
"@intlayer/config": "8.10.0",
|
|
76
|
+
"@intlayer/core": "8.10.0",
|
|
77
|
+
"@intlayer/types": "8.10.0"
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
80
|
-
"@intlayer/api": "8.10.0
|
|
81
|
-
"@intlayer/cli": "8.10.0
|
|
82
|
-
"@types/node": "25.9.
|
|
80
|
+
"@intlayer/api": "8.10.0",
|
|
81
|
+
"@intlayer/cli": "8.10.0",
|
|
82
|
+
"@types/node": "25.9.1",
|
|
83
83
|
"@utils/ts-config": "1.0.4",
|
|
84
84
|
"@utils/ts-config-types": "1.0.4",
|
|
85
85
|
"@utils/tsdown-config": "1.0.4",
|
|
@@ -1,666 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
createdAt: 2025-02-07
|
|
3
|
-
updatedAt: 2026-05-19
|
|
4
|
-
title: Markdown
|
|
5
|
-
description: Intlayerを使用して多言語ウェブサイトにMarkdownコンテンツを宣言および使用する方法を学びます。このオンラインドキュメントの手順に従って、プロジェクトにMarkdownを簡単に統合しましょう。
|
|
6
|
-
keywords:
|
|
7
|
-
- Markdown
|
|
8
|
-
- 国際化
|
|
9
|
-
- 文書
|
|
10
|
-
- Intlayer
|
|
11
|
-
- Next.js
|
|
12
|
-
- JavaScript
|
|
13
|
-
- React
|
|
14
|
-
slugs:
|
|
15
|
-
- doc
|
|
16
|
-
- concept
|
|
17
|
-
- content
|
|
18
|
-
- markdown
|
|
19
|
-
history:
|
|
20
|
-
- version: 8.10.0
|
|
21
|
-
date: 2026-05-19
|
|
22
|
-
changes: "`.content.md` ファイルのサポートを追加"
|
|
23
|
-
- version: 8.5.0
|
|
24
|
-
date: 2026-03-24
|
|
25
|
-
changes: "Add `intlayerMarkdown` plugin object; use `app.use(intlayerMarkdown)` instead of `app.use(installIntlayerMarkdown)`"
|
|
26
|
-
- version: 8.5.0
|
|
27
|
-
date: 2026-03-24
|
|
28
|
-
changes: "move import from `{{framework}}-intlayer` to `{{framework}}-intlayer/markdown`"
|
|
29
|
-
- version: 8.0.0
|
|
30
|
-
date: 2026-01-22
|
|
31
|
-
changes: "MarkdownRenderer / useMarkdownRenderer / renderMarkdown ユーティリティと forceInline オプションを追加"
|
|
32
|
-
- version: 8.0.0
|
|
33
|
-
date: 2026-01-18
|
|
34
|
-
changes: "マークダウンコンテンツの自動装飾、MDXおよびSSRサポート"
|
|
35
|
-
- version: 5.5.10
|
|
36
|
-
date: 2025-06-29
|
|
37
|
-
changes: "履歴の初期化"
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
# マークダウン / リッチテキストコンテンツ
|
|
41
|
-
|
|
42
|
-
Intlayerは、マークダウン構文を使用して定義されたリッチテキストコンテンツをサポートします。これにより、ブログや記事などのリッチなフォーマットを簡単に作成および管理できます。
|
|
43
|
-
|
|
44
|
-
## マークダウンコンテンツの宣言
|
|
45
|
-
|
|
46
|
-
マークダウンコンテンツは `md` 関数を使って宣言するか、単に文字列として(マークダウン構文が含まれている場合)定義できます。
|
|
47
|
-
|
|
48
|
-
<Tabs>
|
|
49
|
-
<Tab label=".content.md" value=".content.md">
|
|
50
|
-
バージョン `8.10.0` 以降、`.content.md` ファイル内に直接 Markdown コンテンツを宣言できるようになりました。Intlayer は Markdown コンテンツを自動的に検出して解析します。
|
|
51
|
-
|
|
52
|
-
```md fileName="markdown-file.ja.content.md"
|
|
53
|
-
---
|
|
54
|
-
key: my-markdown-content
|
|
55
|
-
description: マイコンテンツ
|
|
56
|
-
locale: ja
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
# マイコンテンツ
|
|
60
|
-
|
|
61
|
-
ここにマークダウンコンテンツの例があります
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
`locale` フロントマターフィールドは、コンテンツのロケールを定義するフィールドです。これは任意です。指定しない場合、Intlayer はデフォルトのロケールを使用します。また、特定のロケールに対する翻訳が存在しない場合のフォールバックロケールとしても使用されます。
|
|
65
|
-
|
|
66
|
-
ファイル構造の例:
|
|
67
|
-
|
|
68
|
-
```text
|
|
69
|
-
content/
|
|
70
|
-
├── en/
|
|
71
|
-
│ └── markdown-file.en.content.md
|
|
72
|
-
├── fr/
|
|
73
|
-
│ └── markdown-file.fr.content.md
|
|
74
|
-
└── es/
|
|
75
|
-
└── markdown-file.es.content.md
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
フロントマターには、[辞書の定義](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dictionary/content_file.md)で定義されている任意のプロパティを追加できます。
|
|
79
|
-
|
|
80
|
-
</Tab>
|
|
81
|
-
<Tab label="手動ラッピング" value="manual-wrapping">
|
|
82
|
-
`md` 関数を使用して明示的にマークダウンコンテンツを宣言します。これは、明らかな構文が含まれていない場合でも文字列をマークダウンとして扱いたい場合に便利です。
|
|
83
|
-
|
|
84
|
-
```typescript fileName="markdownDictionary.content.ts"
|
|
85
|
-
import { md, type Dictionary } from "intlayer";
|
|
86
|
-
|
|
87
|
-
const markdownDictionary = {
|
|
88
|
-
key: "app",
|
|
89
|
-
content: {
|
|
90
|
-
myMarkdownContent: md("## My title \n\nLorem Ipsum"),
|
|
91
|
-
},
|
|
92
|
-
} satisfies Dictionary;
|
|
93
|
-
|
|
94
|
-
export default markdownDictionary;
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
</Tab>
|
|
98
|
-
<Tab label="自動検出" value="automatic-detection">
|
|
99
|
-
文字列に一般的なマークダウン指標(ヘッダー、リスト、リンクなど)が含まれている場合、Intlayerは自動的にそれを変換します。
|
|
100
|
-
|
|
101
|
-
```typescript fileName="markdownDictionary.content.ts"
|
|
102
|
-
export default {
|
|
103
|
-
key: "app",
|
|
104
|
-
contentAutoTransformation: true, // マークダウンコンテンツの自動検出を有効にする - intlayer.config.ts でグローバルに設定可能
|
|
105
|
-
content: {
|
|
106
|
-
myMarkdownContent: "## My title \n\nLorem Ipsum",
|
|
107
|
-
},
|
|
108
|
-
};
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
</Tab>
|
|
112
|
-
<Tab label="外部ファイル" value="external-files">
|
|
113
|
-
`file` 関数を使用して `.md` ファイルを直接インポートします。
|
|
114
|
-
|
|
115
|
-
```typescript fileName="markdownDictionary.content.ts"
|
|
116
|
-
import { md, file, t } from "intlayer";
|
|
117
|
-
|
|
118
|
-
export default {
|
|
119
|
-
key: "app",
|
|
120
|
-
content: {
|
|
121
|
-
content: t({
|
|
122
|
-
en: md(file("./myMarkdown.en.md")),
|
|
123
|
-
fr: md(file("./myMarkdown.fr.md")),
|
|
124
|
-
}),
|
|
125
|
-
},
|
|
126
|
-
};
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
</Tab>
|
|
130
|
-
</Tabs>
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
## マークダウンのレンダリング
|
|
135
|
-
|
|
136
|
-
レンダリングは Intlayer のコンテンツシステムで自動的に処理することも、専用のツールを使って手動で処理することもできます。
|
|
137
|
-
|
|
138
|
-
### 1. 自動レンダリング(`useIntlayer` を使用)
|
|
139
|
-
|
|
140
|
-
`useIntlayer` 経由でコンテンツにアクセスすると、マークダウンノードは既にレンダリング可能な状態になっています。
|
|
141
|
-
|
|
142
|
-
<Tabs group="framework">
|
|
143
|
-
<Tab label="React / Next.js" value="react">
|
|
144
|
-
マークダウンノードはそのまま JSX としてレンダリングできます。
|
|
145
|
-
|
|
146
|
-
```tsx fileName="App.tsx"
|
|
147
|
-
import { useIntlayer } from "react-intlayer";
|
|
148
|
-
|
|
149
|
-
const AppContent = () => {
|
|
150
|
-
const { myMarkdownContent } = useIntlayer("app");
|
|
151
|
-
return <div>{myMarkdownContent}</div>;
|
|
152
|
-
};
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
`.use()` メソッドを使用して特定のノードに対してローカルなオーバーライドを提供することもできます:
|
|
156
|
-
|
|
157
|
-
```tsx
|
|
158
|
-
{myMarkdownContent.use({
|
|
159
|
-
h1: ({ children }) => <h1 className="text-3xl font-bold">{children}</h1>,
|
|
160
|
-
})}
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
</Tab>
|
|
164
|
-
<Tab label="Vue" value="vue">
|
|
165
|
-
Vueでは、マークダウンコンテンツを組み込みの `component` を使って、または直接ノードとしてレンダリングできます。
|
|
166
|
-
|
|
167
|
-
```vue fileName="App.vue"
|
|
168
|
-
<script setup>
|
|
169
|
-
import { useIntlayer } from "vue-intlayer";
|
|
170
|
-
const { myMarkdownContent } = useIntlayer("app");
|
|
171
|
-
</script>
|
|
172
|
-
|
|
173
|
-
<template>
|
|
174
|
-
<component :is="myMarkdownContent" />
|
|
175
|
-
</template>
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
</Tab>
|
|
179
|
-
<Tab label="Svelte" value="svelte">
|
|
180
|
-
SvelteはデフォルトでマークダウンをHTML文字列としてレンダリングします。`{@html}` を使ってレンダリングしてください。
|
|
181
|
-
|
|
182
|
-
```svelte
|
|
183
|
-
<script lang="ts">
|
|
184
|
-
import { useIntlayer } from "svelte-intlayer";
|
|
185
|
-
const content = useIntlayer("app");
|
|
186
|
-
</script>
|
|
187
|
-
|
|
188
|
-
{@html $content.myMarkdownContent}
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
</Tab>
|
|
192
|
-
<Tab label="Preact" value="preact">
|
|
193
|
-
PreactはJSXでマークダウンノードを直接サポートします。
|
|
194
|
-
|
|
195
|
-
```tsx fileName="App.tsx"
|
|
196
|
-
import { useIntlayer } from "preact-intlayer";
|
|
197
|
-
|
|
198
|
-
const AppContent = () => {
|
|
199
|
-
const { myMarkdownContent } = useIntlayer("app");
|
|
200
|
-
return <div>{myMarkdownContent}</div>;
|
|
201
|
-
};
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
</Tab>
|
|
205
|
-
<Tab label="Solid" value="solid">
|
|
206
|
-
SolidはJSXでマークダウンノードを直接サポートします。
|
|
207
|
-
|
|
208
|
-
```tsx fileName="App.tsx"
|
|
209
|
-
import { useIntlayer } from "solid-intlayer";
|
|
210
|
-
|
|
211
|
-
const AppContent = () => {
|
|
212
|
-
const { myMarkdownContent } = useIntlayer("app");
|
|
213
|
-
return <div>{myMarkdownContent}</div>;
|
|
214
|
-
};
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
</Tab>
|
|
218
|
-
<Tab label="Angular" value="angular">
|
|
219
|
-
Angularは `[innerHTML]` ディレクティブを使用してマークダウンコンテンツをレンダリングします。
|
|
220
|
-
|
|
221
|
-
```typescript fileName="app.component.ts"
|
|
222
|
-
import { Component } from "@angular/core";
|
|
223
|
-
import { useIntlayer } from "angular-intlayer";
|
|
224
|
-
|
|
225
|
-
@Component({
|
|
226
|
-
selector: "app-root",
|
|
227
|
-
template: `<div [innerHTML]="content().myMarkdownContent"></div>`,
|
|
228
|
-
})
|
|
229
|
-
export class AppComponent {
|
|
230
|
-
content = useIntlayer("app");
|
|
231
|
-
}
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
`.use()` メソッドを使用して特定のノードに対してローカルなオーバーライドを提供することもできます:
|
|
235
|
-
|
|
236
|
-
```typescript
|
|
237
|
-
content().myMarkdownContent.use({
|
|
238
|
-
h1: { class: "text-3xl font-bold" },
|
|
239
|
-
})
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
</Tab>
|
|
243
|
-
</Tabs>
|
|
244
|
-
|
|
245
|
-
### 2. 手動レンダリングと高度なツール
|
|
246
|
-
|
|
247
|
-
生のマークダウン文字列をレンダリングしたり、レンダリングプロセスをより詳細に制御したい場合は、次のツールを使用してください。
|
|
248
|
-
|
|
249
|
-
<Tabs group="framework">
|
|
250
|
-
<Tab label="React / Next.js" value="react">
|
|
251
|
-
|
|
252
|
-
```tsx
|
|
253
|
-
import { MarkdownRenderer } from "react-intlayer/markdown";
|
|
254
|
-
|
|
255
|
-
<MarkdownRenderer forceBlock={true} tagfilter={true}>
|
|
256
|
-
{"# My Title"}
|
|
257
|
-
</MarkdownRenderer>
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
#### `useMarkdownRenderer()` フック
|
|
261
|
-
|
|
262
|
-
事前設定されたレンダラー関数を取得します。
|
|
263
|
-
|
|
264
|
-
```tsx
|
|
265
|
-
import { useMarkdownRenderer } from "react-intlayer/markdown";
|
|
266
|
-
|
|
267
|
-
const renderMarkdown = useMarkdownRenderer({
|
|
268
|
-
forceBlock: true,
|
|
269
|
-
components: { h1: (props) => <h1 {...props} className="custom" /> }
|
|
270
|
-
});
|
|
271
|
-
|
|
272
|
-
return renderMarkdown("# My Title");
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
#### `renderMarkdown()` ユーティリティ
|
|
276
|
-
コンポーネント外でのレンダリングのためのスタンドアロンユーティリティ。
|
|
277
|
-
|
|
278
|
-
```tsx
|
|
279
|
-
import { renderMarkdown } from "react-intlayer/markdown";
|
|
280
|
-
|
|
281
|
-
const jsx = renderMarkdown("# My Title", { forceBlock: true });
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
</Tab>
|
|
285
|
-
<Tab label="Vue" value="vue">
|
|
286
|
-
|
|
287
|
-
#### `<MarkdownRenderer />` コンポーネント
|
|
288
|
-
|
|
289
|
-
```vue
|
|
290
|
-
<script setup>
|
|
291
|
-
import { MarkdownRenderer } from "vue-intlayer/markdown";
|
|
292
|
-
</script>
|
|
293
|
-
|
|
294
|
-
<template>
|
|
295
|
-
<MarkdownRenderer :forceBlock="true" content="# My Title" />
|
|
296
|
-
</template>
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
</Tab>
|
|
300
|
-
<Tab label="Svelte" value="svelte">
|
|
301
|
-
|
|
302
|
-
#### `<MarkdownRenderer />` コンポーネント
|
|
303
|
-
|
|
304
|
-
```svelte
|
|
305
|
-
<script lang="ts">
|
|
306
|
-
import { MarkdownRenderer } from "svelte-intlayer/markdown";
|
|
307
|
-
</script>
|
|
308
|
-
|
|
309
|
-
<MarkdownRenderer forceBlock={true} value="# My Title" />
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
#### `useMarkdownRenderer()` フック
|
|
313
|
-
|
|
314
|
-
```svelte
|
|
315
|
-
<script lang="ts">
|
|
316
|
-
import { useMarkdownRenderer } from "svelte-intlayer/markdown";
|
|
317
|
-
const render = useMarkdownRenderer();
|
|
318
|
-
</script>
|
|
319
|
-
|
|
320
|
-
{@html render("# My Title")}
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
#### `renderMarkdown()` ユーティリティ
|
|
324
|
-
|
|
325
|
-
```svelte
|
|
326
|
-
<script lang="ts">
|
|
327
|
-
import { renderMarkdown } from "svelte-intlayer/markdown";
|
|
328
|
-
</script>
|
|
329
|
-
|
|
330
|
-
{@html renderMarkdown("# My Title")}
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
</Tab>
|
|
334
|
-
<Tab label="Preact" value="preact">
|
|
335
|
-
#### `<MarkdownRenderer />` コンポーネント
|
|
336
|
-
|
|
337
|
-
```tsx
|
|
338
|
-
import { MarkdownRenderer } from "preact-intlayer/markdown";
|
|
339
|
-
|
|
340
|
-
<MarkdownRenderer forceBlock={true}>
|
|
341
|
-
{"# My Title"}
|
|
342
|
-
</MarkdownRenderer>
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
#### `useMarkdownRenderer()` フック
|
|
346
|
-
|
|
347
|
-
```tsx
|
|
348
|
-
import { useMarkdownRenderer } from "preact-intlayer/markdown";
|
|
349
|
-
|
|
350
|
-
const render = useMarkdownRenderer();
|
|
351
|
-
|
|
352
|
-
return <div>{render("# My Title")}</div>;
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
#### `renderMarkdown()` ユーティリティ
|
|
356
|
-
|
|
357
|
-
```tsx
|
|
358
|
-
import { renderMarkdown } from "preact-intlayer/markdown";
|
|
359
|
-
|
|
360
|
-
return <div>{renderMarkdown("# My Title")}</div>;
|
|
361
|
-
```
|
|
362
|
-
|
|
363
|
-
</Tab>
|
|
364
|
-
<Tab label="Solid" value="solid">
|
|
365
|
-
#### `<MarkdownRenderer />` コンポーネント
|
|
366
|
-
|
|
367
|
-
```tsx
|
|
368
|
-
import { MarkdownRenderer } from "solid-intlayer/markdown";
|
|
369
|
-
|
|
370
|
-
<MarkdownRenderer forceBlock={true}>
|
|
371
|
-
{"# My Title"}
|
|
372
|
-
</MarkdownRenderer>
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
#### `useMarkdownRenderer()` フック
|
|
376
|
-
|
|
377
|
-
```tsx
|
|
378
|
-
import { useMarkdownRenderer } from "solid-intlayer/markdown";
|
|
379
|
-
|
|
380
|
-
const render = useMarkdownRenderer();
|
|
381
|
-
|
|
382
|
-
return <div>{render("# My Title")}</div>;
|
|
383
|
-
```
|
|
384
|
-
|
|
385
|
-
#### `renderMarkdown()` ユーティリティ
|
|
386
|
-
|
|
387
|
-
```tsx
|
|
388
|
-
import { renderMarkdown } from "solid-intlayer/markdown";
|
|
389
|
-
|
|
390
|
-
return <div>{renderMarkdown("# My Title")}</div>;
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
</Tab>
|
|
394
|
-
<Tab label="Angular" value="angular">
|
|
395
|
-
#### `IntlayerMarkdownService` サービス
|
|
396
|
-
サービスを使用してマークダウン文字列をレンダリングします。
|
|
397
|
-
|
|
398
|
-
```typescript
|
|
399
|
-
import { IntlayerMarkdownService } from "angular-intlayer/markdown";
|
|
400
|
-
|
|
401
|
-
export class MyComponent {
|
|
402
|
-
constructor(private markdownService: IntlayerMarkdownService) {}
|
|
403
|
-
|
|
404
|
-
renderMarkdown(markdown: string) {
|
|
405
|
-
return this.markdownService.renderMarkdown(markdown);
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
```
|
|
409
|
-
|
|
410
|
-
</Tab>
|
|
411
|
-
</Tabs>
|
|
412
|
-
|
|
413
|
-
---
|
|
414
|
-
|
|
415
|
-
## `MarkdownProvider` によるグローバル設定
|
|
416
|
-
|
|
417
|
-
アプリ全体でマークダウンレンダリングをグローバルに設定できます。これにより、すべてのレンダラーに同じプロップを渡す手間が省けます。
|
|
418
|
-
|
|
419
|
-
<Tabs group="framework">
|
|
420
|
-
<Tab label="React / Next.js" value="react">
|
|
421
|
-
|
|
422
|
-
```tsx fileName="AppProvider.tsx"
|
|
423
|
-
import { MarkdownProvider } from "react-intlayer/markdown";
|
|
424
|
-
|
|
425
|
-
export const AppProvider = ({ children }) => (
|
|
426
|
-
<MarkdownProvider
|
|
427
|
-
components={{
|
|
428
|
-
h1: ({ children }) => <h1 className="text-2xl font-bold">{children}</h1>,
|
|
429
|
-
a: ({ href, children }) => <Link to={href}>{children}</Link>,
|
|
430
|
-
}}
|
|
431
|
-
>
|
|
432
|
-
{children}
|
|
433
|
-
</MarkdownProvider>
|
|
434
|
-
);
|
|
435
|
-
```
|
|
436
|
-
|
|
437
|
-
独自の Markdown レンダラーを使用することもできます:
|
|
438
|
-
|
|
439
|
-
```tsx fileName="AppProvider.tsx"
|
|
440
|
-
import { MarkdownProvider } from "react-intlayer/markdown";
|
|
441
|
-
|
|
442
|
-
export const AppProvider = ({ children }) => (
|
|
443
|
-
<MarkdownProvider
|
|
444
|
-
renderMarkdown={async (md) => {
|
|
445
|
-
const { compileMarkdown } = await import('react-intlayer/markdown');
|
|
446
|
-
return compileMarkdown(md);
|
|
447
|
-
}}
|
|
448
|
-
>
|
|
449
|
-
{children}
|
|
450
|
-
</MarkdownProvider>
|
|
451
|
-
);
|
|
452
|
-
```
|
|
453
|
-
|
|
454
|
-
> Markdown レンダラーを動的にインポートすることは、アプリケーションのバンドルサイズを削減するための良い方法です。
|
|
455
|
-
|
|
456
|
-
</Tab>
|
|
457
|
-
<Tab label="Vue" value="vue">
|
|
458
|
-
|
|
459
|
-
```typescript fileName="main.ts"
|
|
460
|
-
import { createApp } from "vue";
|
|
461
|
-
import { intlayer } from "vue-intlayer";
|
|
462
|
-
import { intlayerMarkdown } from "vue-intlayer/markdown";
|
|
463
|
-
import App from "./App.vue";
|
|
464
|
-
|
|
465
|
-
const app = createApp(App);
|
|
466
|
-
|
|
467
|
-
app.use(intlayer);
|
|
468
|
-
app.use(intlayerMarkdown, {
|
|
469
|
-
components: {
|
|
470
|
-
h1: (props) =>
|
|
471
|
-
h('h1', { style: { color: 'orange' }, ...props }, props.children),
|
|
472
|
-
ComponentDemo: () => h('div', { style: { background: 'grey' } }, 'DEMO'),
|
|
473
|
-
bold: (props) => h('strong', props),
|
|
474
|
-
code: (props) => h('code', props),
|
|
475
|
-
},
|
|
476
|
-
});
|
|
477
|
-
|
|
478
|
-
app.mount("#app");
|
|
479
|
-
```
|
|
480
|
-
|
|
481
|
-
独自の Markdown レンダラーを使用することもできます:
|
|
482
|
-
|
|
483
|
-
```typescript fileName="main.ts"
|
|
484
|
-
import { createApp } from "vue";
|
|
485
|
-
import { intlayer } from "vue-intlayer";
|
|
486
|
-
import { intlayerMarkdown } from "vue-intlayer/markdown";
|
|
487
|
-
import App from "./App.vue";
|
|
488
|
-
|
|
489
|
-
const app = createApp(App);
|
|
490
|
-
|
|
491
|
-
app.use(intlayer);
|
|
492
|
-
app.use(intlayerMarkdown, {
|
|
493
|
-
renderMarkdown: async (md) => {
|
|
494
|
-
const { compileMarkdown } = await import('vue-intlayer/markdown');
|
|
495
|
-
return compileMarkdown(md);
|
|
496
|
-
},
|
|
497
|
-
});
|
|
498
|
-
|
|
499
|
-
app.mount("#app");
|
|
500
|
-
```
|
|
501
|
-
|
|
502
|
-
> Markdown レンダラーを動的にインポートすることは、アプリケーションのバンドルサイズを削減するための良い方法です。
|
|
503
|
-
|
|
504
|
-
</Tab>
|
|
505
|
-
<Tab label="Svelte" value="svelte">
|
|
506
|
-
|
|
507
|
-
```svelte fileName="App.svelte"
|
|
508
|
-
<script lang="ts">
|
|
509
|
-
import { MarkdownProvider } from "svelte-intlayer/markdown";
|
|
510
|
-
import MyHeading from "./MyHeading.svelte";
|
|
511
|
-
</script>
|
|
512
|
-
|
|
513
|
-
<MarkdownProvider
|
|
514
|
-
components={{
|
|
515
|
-
h1: MyHeading,
|
|
516
|
-
}}
|
|
517
|
-
>
|
|
518
|
-
<slot />
|
|
519
|
-
</MarkdownProvider>
|
|
520
|
-
```
|
|
521
|
-
|
|
522
|
-
独自の Markdown レンダラーを使用することもできます:
|
|
523
|
-
|
|
524
|
-
```svelte fileName="App.svelte"
|
|
525
|
-
<script lang="ts">
|
|
526
|
-
import { MarkdownProvider } from "svelte-intlayer/markdown";
|
|
527
|
-
</script>
|
|
528
|
-
|
|
529
|
-
<MarkdownProvider
|
|
530
|
-
renderMarkdown={async (md) => {
|
|
531
|
-
const { compileMarkdown } = await import('svelte-intlayer/markdown');
|
|
532
|
-
return compileMarkdown(md);
|
|
533
|
-
}}
|
|
534
|
-
>
|
|
535
|
-
<slot />
|
|
536
|
-
</MarkdownProvider>
|
|
537
|
-
```
|
|
538
|
-
|
|
539
|
-
> Markdown レンダラーを動的にインポートすることは、アプリケーションのバンドルサイズを削減するための良い方法です。
|
|
540
|
-
|
|
541
|
-
</Tab>
|
|
542
|
-
<Tab label="Preact" value="preact">
|
|
543
|
-
|
|
544
|
-
```tsx fileName="AppProvider.tsx"
|
|
545
|
-
import { MarkdownProvider } from "preact-intlayer/markdown";
|
|
546
|
-
|
|
547
|
-
export const AppProvider = ({ children }) => (
|
|
548
|
-
<MarkdownProvider
|
|
549
|
-
components={{
|
|
550
|
-
h1: ({ children }) => <h1 className="text-2xl font-bold">{children}</h1>,
|
|
551
|
-
}}
|
|
552
|
-
>
|
|
553
|
-
{children}
|
|
554
|
-
</MarkdownProvider>
|
|
555
|
-
);
|
|
556
|
-
```
|
|
557
|
-
|
|
558
|
-
独自の Markdown レンダラーを使用することもできます:
|
|
559
|
-
|
|
560
|
-
```tsx fileName="AppProvider.tsx"
|
|
561
|
-
import { MarkdownProvider } from "preact-intlayer/markdown";
|
|
562
|
-
|
|
563
|
-
export const AppProvider = ({ children }) => (
|
|
564
|
-
<MarkdownProvider
|
|
565
|
-
renderMarkdown={async (md) => {
|
|
566
|
-
const { compileMarkdown } = await import('preact-intlayer/markdown');
|
|
567
|
-
return compileMarkdown(md);
|
|
568
|
-
}}
|
|
569
|
-
>
|
|
570
|
-
{children}
|
|
571
|
-
</MarkdownProvider>
|
|
572
|
-
);
|
|
573
|
-
```
|
|
574
|
-
|
|
575
|
-
> Markdown レンダラーを動的にインポートすることは、アプリケーションのバンドルサイズを削減するための良い方法です。
|
|
576
|
-
|
|
577
|
-
</Tab>
|
|
578
|
-
<Tab label="Solid" value="solid">
|
|
579
|
-
|
|
580
|
-
```tsx fileName="AppProvider.tsx"
|
|
581
|
-
import { MarkdownProvider } from "solid-intlayer/markdown";
|
|
582
|
-
|
|
583
|
-
export const AppProvider = (props) => (
|
|
584
|
-
<MarkdownProvider
|
|
585
|
-
components={{
|
|
586
|
-
h1: (props) => <h1 className="text-2xl font-bold">{props.children}</h1>,
|
|
587
|
-
}}
|
|
588
|
-
>
|
|
589
|
-
{props.children}
|
|
590
|
-
</MarkdownProvider>
|
|
591
|
-
);
|
|
592
|
-
```
|
|
593
|
-
|
|
594
|
-
独自の Markdown レンダラーを使用することもできます:
|
|
595
|
-
|
|
596
|
-
```tsx fileName="AppProvider.tsx"
|
|
597
|
-
import { MarkdownProvider } from "solid-intlayer/markdown";
|
|
598
|
-
|
|
599
|
-
export const AppProvider = (props) => (
|
|
600
|
-
<MarkdownProvider
|
|
601
|
-
renderMarkdown={async (md) => {
|
|
602
|
-
const { compileMarkdown } = await import('solid-intlayer/markdown');
|
|
603
|
-
return compileMarkdown(md);
|
|
604
|
-
}}
|
|
605
|
-
>
|
|
606
|
-
{props.children}
|
|
607
|
-
</MarkdownProvider>
|
|
608
|
-
);
|
|
609
|
-
```
|
|
610
|
-
|
|
611
|
-
> Markdown レンダラーを動的にインポートすることは、アプリケーションのバンドルサイズを削減するための良い方法です。
|
|
612
|
-
|
|
613
|
-
</Tab>
|
|
614
|
-
<Tab label="Angular" value="angular">
|
|
615
|
-
|
|
616
|
-
```typescript fileName="app.config.ts"
|
|
617
|
-
import { createIntlayerMarkdownProvider } from "angular-intlayer/markdown";
|
|
618
|
-
|
|
619
|
-
export const appConfig: ApplicationConfig = {
|
|
620
|
-
providers: [
|
|
621
|
-
createIntlayerMarkdownProvider({
|
|
622
|
-
components: {
|
|
623
|
-
h1: { class: "text-2xl font-bold" },
|
|
624
|
-
},
|
|
625
|
-
}),
|
|
626
|
-
],
|
|
627
|
-
};
|
|
628
|
-
```
|
|
629
|
-
|
|
630
|
-
独自の Markdown レンダラーを使用することもできます:
|
|
631
|
-
|
|
632
|
-
```typescript fileName="app.config.ts"
|
|
633
|
-
import { createIntlayerMarkdownProvider } from "angular-intlayer/markdown";
|
|
634
|
-
|
|
635
|
-
export const appConfig: ApplicationConfig = {
|
|
636
|
-
providers: [
|
|
637
|
-
createIntlayerMarkdownProvider({
|
|
638
|
-
renderMarkdown: async (md) => {
|
|
639
|
-
const { compileMarkdown } = await import('angular-intlayer/markdown');
|
|
640
|
-
return compileMarkdown(md);
|
|
641
|
-
},
|
|
642
|
-
}),
|
|
643
|
-
],
|
|
644
|
-
};
|
|
645
|
-
```
|
|
646
|
-
|
|
647
|
-
> Markdown レンダラーを動的にインポートすることは、アプリケーションのバンドルサイズを削減するための良い方法です。
|
|
648
|
-
|
|
649
|
-
</Tab>
|
|
650
|
-
</Tabs>
|
|
651
|
-
|
|
652
|
-
---
|
|
653
|
-
|
|
654
|
-
## オプションリファレンス
|
|
655
|
-
|
|
656
|
-
これらのオプションは `MarkdownProvider`、`MarkdownRenderer`、`useMarkdownRenderer`、および `renderMarkdown` に渡すことができます。
|
|
657
|
-
|
|
658
|
-
| オプション | 型 | デフォルト | 説明 |
|
|
659
|
-
| :-------------------- | :---------- | :--------- | :---------------------------------------------------------------------------------- |
|
|
660
|
-
| `forceBlock` | `boolean` | `false` | 出力をブロックレベル要素(例: `<div>`)でラップすることを強制します。 |
|
|
661
|
-
| `forceInline` | `boolean` | `false` | 出力をインライン要素(例: `<span>`)でラップすることを強制します。 |
|
|
662
|
-
| `tagfilter` | `boolean` | `true` | 危険なHTMLタグを除去してセキュリティを向上させる GitHub Tag Filter を有効にします。 |
|
|
663
|
-
| `preserveFrontmatter` | `boolean` | `false` | `true` の場合、マークダウン文字列の冒頭にあるフロントマターが除去されません。 |
|
|
664
|
-
| `components` | `Overrides` | `{}` | HTMLタグからカスタムコンポーネントへのマッピング(例: `{ h1: MyHeading }`)。 |
|
|
665
|
-
| `wrapper` | `Component` | `null` | レンダリングされたマークダウンをラップするためのカスタムコンポーネント。 |
|
|
666
|
-
| `renderMarkdown` | `Function` | `null` | デフォルトのマークダウンコンパイラを完全に置き換えるカスタムレンダリング関数。 |
|