@intlayer/docs 8.0.0-canary.6 → 8.0.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/content_file.md +30 -1
- package/docs/ar/dictionary/html.md +45 -56
- package/docs/ar/dictionary/markdown.md +21 -57
- package/docs/ar/releases/v8.md +11 -2
- package/docs/de/dictionary/content_file.md +30 -1
- package/docs/de/dictionary/html.md +45 -56
- package/docs/de/dictionary/markdown.md +21 -57
- package/docs/de/releases/v8.md +11 -2
- package/docs/en/dictionary/content_file.md +35 -1
- package/docs/en/dictionary/html.md +45 -56
- package/docs/en/dictionary/markdown.md +22 -58
- package/docs/en/releases/v8.md +11 -2
- package/docs/en-GB/dictionary/content_file.md +31 -2
- package/docs/en-GB/dictionary/html.md +45 -56
- package/docs/en-GB/dictionary/markdown.md +17 -53
- package/docs/en-GB/releases/v8.md +11 -2
- package/docs/es/dictionary/content_file.md +30 -2
- package/docs/es/dictionary/html.md +45 -56
- package/docs/es/dictionary/markdown.md +21 -57
- package/docs/es/releases/v8.md +11 -2
- package/docs/fr/dictionary/content_file.md +30 -1
- package/docs/fr/dictionary/html.md +45 -56
- package/docs/fr/dictionary/markdown.md +21 -57
- package/docs/fr/releases/v8.md +11 -2
- package/docs/hi/dictionary/content_file.md +33 -3
- package/docs/hi/dictionary/html.md +45 -56
- package/docs/hi/dictionary/markdown.md +21 -57
- package/docs/hi/releases/v8.md +10 -1
- package/docs/id/dictionary/content_file.md +30 -1
- package/docs/id/dictionary/html.md +45 -56
- package/docs/id/dictionary/markdown.md +21 -57
- package/docs/id/releases/v8.md +11 -2
- package/docs/it/dictionary/content_file.md +30 -1
- package/docs/it/dictionary/html.md +45 -56
- package/docs/it/dictionary/markdown.md +21 -57
- package/docs/it/releases/v8.md +11 -2
- package/docs/ja/dictionary/content_file.md +30 -1
- package/docs/ja/dictionary/html.md +45 -56
- package/docs/ja/dictionary/markdown.md +21 -57
- package/docs/ja/releases/v8.md +11 -2
- package/docs/ko/dictionary/content_file.md +30 -1
- package/docs/ko/dictionary/html.md +45 -56
- package/docs/ko/dictionary/markdown.md +21 -57
- package/docs/ko/releases/v8.md +11 -2
- package/docs/pl/dictionary/content_file.md +30 -1
- package/docs/pl/dictionary/html.md +45 -56
- package/docs/pl/dictionary/markdown.md +18 -54
- package/docs/pl/releases/v8.md +11 -2
- package/docs/pt/dictionary/content_file.md +30 -1
- package/docs/pt/dictionary/html.md +45 -56
- package/docs/pt/dictionary/markdown.md +21 -57
- package/docs/pt/releases/v8.md +11 -2
- package/docs/ru/dictionary/content_file.md +30 -1
- package/docs/ru/dictionary/html.md +45 -56
- package/docs/ru/dictionary/markdown.md +21 -57
- package/docs/ru/releases/v8.md +11 -2
- package/docs/tr/dictionary/content_file.md +30 -1
- package/docs/tr/dictionary/html.md +45 -56
- package/docs/tr/dictionary/markdown.md +17 -53
- package/docs/tr/releases/v8.md +11 -2
- package/docs/uk/dictionary/content_file.md +32 -3
- package/docs/uk/dictionary/html.md +45 -56
- package/docs/uk/dictionary/markdown.md +14 -50
- package/docs/uk/releases/v8.md +11 -2
- package/docs/vi/dictionary/content_file.md +30 -1
- package/docs/vi/dictionary/html.md +45 -56
- package/docs/vi/dictionary/markdown.md +19 -55
- package/docs/vi/releases/v8.md +11 -2
- package/docs/zh/dictionary/content_file.md +28 -2
- package/docs/zh/dictionary/html.md +45 -56
- package/docs/zh/dictionary/markdown.md +20 -56
- package/docs/zh/releases/v8.md +11 -2
- package/package.json +7 -7
|
@@ -31,47 +31,12 @@ history:
|
|
|
31
31
|
|
|
32
32
|
Intlayer는 HTML 콘텐츠를 지원하여 사전(dictionary) 내에 풍부하고 구조화된 콘텐츠를 포함할 수 있습니다. 이 콘텐츠는 표준 HTML 태그로 렌더링되거나 런타임에 커스텀 컴포넌트로 교체될 수 있습니다.
|
|
33
33
|
|
|
34
|
-
## HTML 작동 방식
|
|
35
|
-
|
|
36
|
-
Intlayer v8는 콘텐츠 문자열에서 HTML 태그를 지능적으로 감지합니다. 문자열이 HTML(태그를 포함하는 것으로)로 식별되면 자동으로 HTML 노드로 변환됩니다.
|
|
37
|
-
|
|
38
|
-
<Columns>
|
|
39
|
-
<Column title="v7 동작(수동 래핑)">
|
|
40
|
-
|
|
41
|
-
```typescript fileName="htmlDictionary.content.ts"
|
|
42
|
-
import { html } from "intlayer";
|
|
43
|
-
|
|
44
|
-
export default {
|
|
45
|
-
key: "app",
|
|
46
|
-
content: {
|
|
47
|
-
text: html("<p>Hello <strong>World</strong></p>"),
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
</Column>
|
|
53
|
-
<Column title="v8 동작(자동 감지)">
|
|
54
|
-
|
|
55
|
-
```typescript fileName="htmlDictionary.content.ts"
|
|
56
|
-
export default {
|
|
57
|
-
key: "app",
|
|
58
|
-
content: {
|
|
59
|
-
text: "<p>Hello <strong>World</strong></p>",
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
</Column>
|
|
65
|
-
</Columns>
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
34
|
## HTML 콘텐츠 선언
|
|
70
35
|
|
|
71
36
|
HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할 수 있습니다.
|
|
72
37
|
|
|
73
38
|
<Tabs>
|
|
74
|
-
<Tab label="수동 래핑">
|
|
39
|
+
<Tab label="수동 래핑" value="manual-wrapping">
|
|
75
40
|
HTML 콘텐츠를 명시적으로 선언하려면 `html` 함수를 사용하세요. 자동 감지가 비활성화된 경우에도 표준 태그가 올바르게 매핑되도록 보장합니다.
|
|
76
41
|
|
|
77
42
|
```typescript fileName="htmlDictionary.content.ts"
|
|
@@ -88,7 +53,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
88
53
|
```
|
|
89
54
|
|
|
90
55
|
</Tab>
|
|
91
|
-
<Tab label="자동 감지">
|
|
56
|
+
<Tab label="자동 감지" value="automatic-detection">
|
|
92
57
|
문자열에 일반적인 HTML 태그(예: `<p>`, `<div>`, `<strong>` 등)가 포함되어 있으면 Intlayer가 자동으로 변환합니다.
|
|
93
58
|
|
|
94
59
|
```typescript fileName="htmlDictionary.content.ts"
|
|
@@ -101,7 +66,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
101
66
|
```
|
|
102
67
|
|
|
103
68
|
</Tab>
|
|
104
|
-
<Tab label="외부 파일">
|
|
69
|
+
<Tab label="외부 파일" value="external-files">
|
|
105
70
|
파일에서 HTML 콘텐츠를 가져옵니다. 현재 `file()` 함수는 문자열을 반환하며, 해당 문자열에 태그가 포함된 경우 HTML로 자동 감지됩니다.
|
|
106
71
|
|
|
107
72
|
```typescript fileName="htmlDictionary.content.ts"
|
|
@@ -121,6 +86,30 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
121
86
|
</Tab>
|
|
122
87
|
</Tabs>
|
|
123
88
|
|
|
89
|
+
### `html()` 노드
|
|
90
|
+
|
|
91
|
+
`html()` 함수는 Intlayer v8의 새로운 기능으로, 사전에서 HTML 콘텐츠를 명시적으로 정의할 수 있게 해줍니다. Intlayer는 종종 HTML 콘텐츠를 자동으로 감지할 수 있지만, `html()` 함수를 사용하면 다음과 같은 몇 가지 장점이 있습니다:
|
|
92
|
+
|
|
93
|
+
- **타입 안전성**: `html()` 함수를 사용하면 커스텀 컴포넌트에 필요한 props를 정의할 수 있어, 에디터에서 더 나은 자동 완성 및 타입 체크를 제공합니다.
|
|
94
|
+
- **명시적 선언**: 자동 감지를 트리거하는 표준 HTML 태그가 포함되어 있지 않더라도 문자열이 항상 HTML로 처리되도록 보장합니다.
|
|
95
|
+
- **커스텀 컴포넌트 정의**: `html()`의 두 번째 인자로 커스텀 컴포넌트와 예상되는 prop 타입을 정의하여 전달할 수 있습니다.
|
|
96
|
+
|
|
97
|
+
```typescript
|
|
98
|
+
import { html } from "intlayer";
|
|
99
|
+
|
|
100
|
+
const myContent = html(
|
|
101
|
+
"<MyCustomComponent title='안녕하세요'>세계</MyCustomComponent>",
|
|
102
|
+
{
|
|
103
|
+
MyCustomComponent: {
|
|
104
|
+
title: "string",
|
|
105
|
+
children: "node",
|
|
106
|
+
},
|
|
107
|
+
}
|
|
108
|
+
);
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
HTML 노드에서 `.use()` 메서드를 사용할 때, 제공하는 컴포넌트는 `html()` 함수에 제공된 정의(사용 가능한 경우)에 따라 확인됩니다.
|
|
112
|
+
|
|
124
113
|
---
|
|
125
114
|
|
|
126
115
|
## HTML 렌더링
|
|
@@ -132,7 +121,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
132
121
|
`useIntlayer`로 콘텐츠에 접근하면 HTML 노드는 이미 렌더링 준비가 되어 있습니다.
|
|
133
122
|
|
|
134
123
|
<Tabs group="framework">
|
|
135
|
-
<Tab label="React / Next.js">
|
|
124
|
+
<Tab label="React / Next.js" value="react">
|
|
136
125
|
HTML 노드는 JSX로 직접 렌더링할 수 있습니다. 표준 태그는 자동으로 작동합니다.
|
|
137
126
|
|
|
138
127
|
```tsx fileName="App.tsx"
|
|
@@ -154,7 +143,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
154
143
|
```
|
|
155
144
|
|
|
156
145
|
</Tab>
|
|
157
|
-
<Tab label="Vue">
|
|
146
|
+
<Tab label="Vue" value="vue">
|
|
158
147
|
Vue에서는 HTML 콘텐츠를 내장된 `component`를 사용하여 렌더링할 수 있습니다.
|
|
159
148
|
|
|
160
149
|
```vue fileName="App.vue"
|
|
@@ -174,7 +163,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
174
163
|
```
|
|
175
164
|
|
|
176
165
|
</Tab>
|
|
177
|
-
<Tab label="Svelte">
|
|
166
|
+
<Tab label="Svelte" value="svelte">
|
|
178
167
|
Svelte는 HTML 노드를 문자열로 렌더링합니다. 이를 렌더링하려면 `{@html}`을 사용하세요.
|
|
179
168
|
|
|
180
169
|
```svelte
|
|
@@ -187,7 +176,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
187
176
|
```
|
|
188
177
|
|
|
189
178
|
</Tab>
|
|
190
|
-
<Tab label="Preact">
|
|
179
|
+
<Tab label="Preact" value="preact">
|
|
191
180
|
Preact는 JSX에서 HTML 노드를 직접 지원합니다.
|
|
192
181
|
|
|
193
182
|
```tsx fileName="App.tsx"
|
|
@@ -200,7 +189,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
200
189
|
```
|
|
201
190
|
|
|
202
191
|
</Tab>
|
|
203
|
-
<Tab label="Solid">
|
|
192
|
+
<Tab label="Solid" value="solid">
|
|
204
193
|
Solid는 JSX에서 HTML 노드를 직접 지원합니다.
|
|
205
194
|
|
|
206
195
|
```tsx fileName="App.tsx"
|
|
@@ -213,7 +202,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
213
202
|
```
|
|
214
203
|
|
|
215
204
|
</Tab>
|
|
216
|
-
<Tab label="Angular">
|
|
205
|
+
<Tab label="Angular" value="angular">
|
|
217
206
|
Angular는 HTML 콘텐츠를 렌더링하기 위해 `[innerHTML]` 디렉티브를 사용합니다.
|
|
218
207
|
|
|
219
208
|
```typescript fileName="app.component.ts"
|
|
@@ -246,7 +235,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
246
235
|
애플리케이션 전체에 대해 HTML 렌더링을 전역으로 구성할 수 있습니다. 이는 모든 HTML 콘텐츠에서 사용 가능해야 하는 커스텀 컴포넌트를 정의할 때 이상적입니다.
|
|
247
236
|
|
|
248
237
|
<Tabs group="framework">
|
|
249
|
-
<Tab label="React / Next.js">
|
|
238
|
+
<Tab label="React / Next.js" value="react">
|
|
250
239
|
|
|
251
240
|
```tsx fileName="AppProvider.tsx"
|
|
252
241
|
import { HTMLProvider } from "react-intlayer";
|
|
@@ -264,7 +253,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
264
253
|
```
|
|
265
254
|
|
|
266
255
|
</Tab>
|
|
267
|
-
<Tab label="Vue">
|
|
256
|
+
<Tab label="Vue" value="vue">
|
|
268
257
|
|
|
269
258
|
```typescript fileName="main.ts"
|
|
270
259
|
import { createApp, h } from "vue";
|
|
@@ -285,7 +274,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
285
274
|
```
|
|
286
275
|
|
|
287
276
|
</Tab>
|
|
288
|
-
<Tab label="Svelte">
|
|
277
|
+
<Tab label="Svelte" value="svelte">
|
|
289
278
|
|
|
290
279
|
```svelte fileName="App.svelte"
|
|
291
280
|
<script lang="ts">
|
|
@@ -303,7 +292,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
303
292
|
```
|
|
304
293
|
|
|
305
294
|
</Tab>
|
|
306
|
-
<Tab label="Preact">
|
|
295
|
+
<Tab label="Preact" value="preact">
|
|
307
296
|
|
|
308
297
|
```tsx fileName="AppProvider.tsx"
|
|
309
298
|
import { HTMLProvider } from "preact-intlayer";
|
|
@@ -320,7 +309,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
320
309
|
```
|
|
321
310
|
|
|
322
311
|
</Tab>
|
|
323
|
-
<Tab label="Solid">
|
|
312
|
+
<Tab label="Solid" value="solid">
|
|
324
313
|
|
|
325
314
|
```tsx fileName="AppProvider.tsx"
|
|
326
315
|
import { HTMLProvider } from "solid-intlayer";
|
|
@@ -337,7 +326,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
337
326
|
```
|
|
338
327
|
|
|
339
328
|
</Tab>
|
|
340
|
-
<Tab label="Angular">
|
|
329
|
+
<Tab label="Angular" value="angular">
|
|
341
330
|
|
|
342
331
|
```typescript fileName="app.config.ts"
|
|
343
332
|
import { createIntlayerMarkdownProvider } from "angular-intlayer";
|
|
@@ -364,7 +353,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
364
353
|
원시 HTML 문자열을 렌더링하거나 컴포넌트 매핑을 더 세밀하게 제어해야 하는 경우, 다음 도구들을 사용하세요.
|
|
365
354
|
|
|
366
355
|
<Tabs group="framework">
|
|
367
|
-
<Tab label="React / Next.js">
|
|
356
|
+
<Tab label="React / Next.js" value="react">
|
|
368
357
|
#### `<HTMLRenderer />` 컴포넌트
|
|
369
358
|
특정 컴포넌트로 HTML 문자열을 렌더링합니다.
|
|
370
359
|
|
|
@@ -401,7 +390,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
401
390
|
```
|
|
402
391
|
|
|
403
392
|
</Tab>
|
|
404
|
-
<Tab label="Vue">
|
|
393
|
+
<Tab label="Vue" value="vue">
|
|
405
394
|
|
|
406
395
|
#### `<HTMLRenderer />` 컴포넌트
|
|
407
396
|
|
|
@@ -416,7 +405,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
416
405
|
```
|
|
417
406
|
|
|
418
407
|
</Tab>
|
|
419
|
-
<Tab label="Svelte">
|
|
408
|
+
<Tab label="Svelte" value="svelte">
|
|
420
409
|
|
|
421
410
|
#### `<HTMLRenderer />` 컴포넌트
|
|
422
411
|
|
|
@@ -450,7 +439,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
450
439
|
```
|
|
451
440
|
|
|
452
441
|
</Tab>
|
|
453
|
-
<Tab label="Preact">
|
|
442
|
+
<Tab label="Preact" value="preact">
|
|
454
443
|
|
|
455
444
|
#### `<HTMLRenderer />` 컴포넌트
|
|
456
445
|
|
|
@@ -481,7 +470,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
481
470
|
```
|
|
482
471
|
|
|
483
472
|
</Tab>
|
|
484
|
-
<Tab label="Solid">
|
|
473
|
+
<Tab label="Solid" value="solid">
|
|
485
474
|
|
|
486
475
|
#### `<HTMLRenderer />` 컴포넌트
|
|
487
476
|
|
|
@@ -512,7 +501,7 @@ HTML 콘텐츠는 `html` 함수를 사용하거나 단순 문자열로 선언할
|
|
|
512
501
|
```
|
|
513
502
|
|
|
514
503
|
</Tab>
|
|
515
|
-
<Tab label="Angular">
|
|
504
|
+
<Tab label="Angular" value="angular">
|
|
516
505
|
#### `IntlayerMarkdownService` 서비스
|
|
517
506
|
서비스를 사용하여 HTML 문자열을 렌더링합니다.
|
|
518
507
|
|
|
@@ -32,48 +32,12 @@ history:
|
|
|
32
32
|
|
|
33
33
|
Intlayer는 마크다운 문법을 사용하여 정의된 리치 텍스트 콘텐츠를 지원합니다. 이를 통해 블로그, 기사 등과 같은 리치 포맷의 콘텐츠를 쉽게 작성하고 관리할 수 있습니다.
|
|
34
34
|
|
|
35
|
-
## 마크다운 작동 방식
|
|
36
|
-
|
|
37
|
-
Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로 감지합니다. 문자열이 마크다운으로 식별되면 자동으로 마크다운 노드로 변환됩니다.
|
|
38
|
-
|
|
39
|
-
<Columns>
|
|
40
|
-
<Column title="v7 동작 (수동 래핑)">
|
|
41
|
-
|
|
42
|
-
```typescript fileName="markdownDictionary.content.ts"
|
|
43
|
-
import { md } from "intlayer";
|
|
44
|
-
|
|
45
|
-
export default {
|
|
46
|
-
key: "app",
|
|
47
|
-
content: {
|
|
48
|
-
text: md("## My title \n\nLorem Ipsum"),
|
|
49
|
-
},
|
|
50
|
-
};
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
</Column>
|
|
54
|
-
<Column title="v8 동작 (자동 감지)">
|
|
55
|
-
|
|
56
|
-
```typescript fileName="markdownDictionary.content.ts"
|
|
57
|
-
export default {
|
|
58
|
-
key: "app",
|
|
59
|
-
contentAutoTransformation: true, // 마크다운 콘텐츠 자동 감지 활성화 - intlayer.config.ts에서 전역 설정 가능
|
|
60
|
-
content: {
|
|
61
|
-
text: "## My title \n\nLorem Ipsum",
|
|
62
|
-
},
|
|
63
|
-
};
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
</Column>
|
|
67
|
-
</Columns>
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
35
|
## 파트 1: 마크다운 콘텐츠 선언
|
|
72
36
|
|
|
73
37
|
마크다운 콘텐츠는 `md` 함수를 사용하거나 (마크다운 문법을 포함하는 경우) 단순히 문자열로 선언할 수 있습니다.
|
|
74
38
|
|
|
75
39
|
<Tabs>
|
|
76
|
-
<Tab label="수동 래핑">
|
|
40
|
+
<Tab label="수동 래핑" value="manual-wrapping">
|
|
77
41
|
마크다운 콘텐츠를 명시적으로 선언하려면 `md` 함수를 사용하세요. 명백한 문법이 포함되어 있지 않더라도 문자열이 마크다운으로 처리되도록 보장하고 싶을 때 유용합니다.
|
|
78
42
|
|
|
79
43
|
```typescript fileName="markdownDictionary.content.ts"
|
|
@@ -90,7 +54,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
90
54
|
```
|
|
91
55
|
|
|
92
56
|
</Tab>
|
|
93
|
-
<Tab label="자동 감지">
|
|
57
|
+
<Tab label="자동 감지" value="automatic-detection">
|
|
94
58
|
문자열에 일반적인 마크다운 표시(예: 헤더, 리스트, 링크 등)가 포함되어 있으면 Intlayer가 자동으로 변환합니다.
|
|
95
59
|
|
|
96
60
|
```typescript fileName="markdownDictionary.content.ts"
|
|
@@ -104,7 +68,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
104
68
|
```
|
|
105
69
|
|
|
106
70
|
</Tab>
|
|
107
|
-
<Tab label="외부 파일">
|
|
71
|
+
<Tab label="외부 파일" value="external-files">
|
|
108
72
|
`file` 함수를 사용하여 `.md` 파일을 직접 가져옵니다.
|
|
109
73
|
|
|
110
74
|
```typescript fileName="markdownDictionary.content.ts"
|
|
@@ -135,7 +99,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
135
99
|
`useIntlayer`로 콘텐츠에 접근하면 마크다운 노드는 이미 렌더링 준비가 되어 있습니다.
|
|
136
100
|
|
|
137
101
|
<Tabs group="framework">
|
|
138
|
-
<Tab label="React / Next.js">
|
|
102
|
+
<Tab label="React / Next.js" value="react">
|
|
139
103
|
마크다운 노드는 JSX로 직접 렌더링할 수 있습니다.
|
|
140
104
|
|
|
141
105
|
```tsx fileName="App.tsx"
|
|
@@ -156,7 +120,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
156
120
|
```
|
|
157
121
|
|
|
158
122
|
</Tab>
|
|
159
|
-
<Tab label="Vue">
|
|
123
|
+
<Tab label="Vue" value="vue">
|
|
160
124
|
Vue에서는 마크다운 콘텐츠를 내장된 `component`를 사용하거나 직접 노드로 렌더링할 수 있습니다.
|
|
161
125
|
|
|
162
126
|
```vue fileName="App.vue"
|
|
@@ -171,7 +135,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
171
135
|
```
|
|
172
136
|
|
|
173
137
|
</Tab>
|
|
174
|
-
<Tab label="Svelte">
|
|
138
|
+
<Tab label="Svelte" value="svelte">
|
|
175
139
|
Svelte는 기본적으로 마크다운을 HTML 문자열로 렌더링합니다. 이를 렌더링하려면 `{@html}`을 사용하세요.
|
|
176
140
|
|
|
177
141
|
```svelte
|
|
@@ -184,7 +148,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
184
148
|
```
|
|
185
149
|
|
|
186
150
|
</Tab>
|
|
187
|
-
<Tab label="Preact">
|
|
151
|
+
<Tab label="Preact" value="preact">
|
|
188
152
|
Preact는 JSX에서 마크다운 노드를 직접 지원합니다.
|
|
189
153
|
|
|
190
154
|
```tsx fileName="App.tsx"
|
|
@@ -197,7 +161,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
197
161
|
```
|
|
198
162
|
|
|
199
163
|
</Tab>
|
|
200
|
-
<Tab label="Solid">
|
|
164
|
+
<Tab label="Solid" value="solid">
|
|
201
165
|
Solid는 JSX에서 마크다운 노드를 직접 지원합니다.
|
|
202
166
|
|
|
203
167
|
```tsx fileName="App.tsx"
|
|
@@ -210,7 +174,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
210
174
|
```
|
|
211
175
|
|
|
212
176
|
</Tab>
|
|
213
|
-
<Tab label="Angular">
|
|
177
|
+
<Tab label="Angular" value="angular">
|
|
214
178
|
Angular는 마크다운 콘텐츠를 렌더링하기 위해 `[innerHTML]` 디렉티브를 사용합니다.
|
|
215
179
|
|
|
216
180
|
```typescript fileName="app.component.ts"
|
|
@@ -242,7 +206,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
242
206
|
원시 마크다운 문자열을 렌더링하거나 렌더링 프로세스를 더 세밀하게 제어해야 하는 경우, 다음 도구들을 사용하세요.
|
|
243
207
|
|
|
244
208
|
<Tabs group="framework">
|
|
245
|
-
<Tab label="React / Next.js">
|
|
209
|
+
<Tab label="React / Next.js" value="react">
|
|
246
210
|
|
|
247
211
|
#### `<MarkdownRenderer />` 컴포넌트
|
|
248
212
|
|
|
@@ -281,7 +245,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
281
245
|
```
|
|
282
246
|
|
|
283
247
|
</Tab>
|
|
284
|
-
<Tab label="Vue">
|
|
248
|
+
<Tab label="Vue" value="vue">
|
|
285
249
|
|
|
286
250
|
#### `<MarkdownRenderer />` 컴포넌트
|
|
287
251
|
|
|
@@ -296,7 +260,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
296
260
|
```
|
|
297
261
|
|
|
298
262
|
</Tab>
|
|
299
|
-
<Tab label="Svelte">
|
|
263
|
+
<Tab label="Svelte" value="svelte">
|
|
300
264
|
|
|
301
265
|
#### `<MarkdownRenderer />` 컴포넌트
|
|
302
266
|
|
|
@@ -330,7 +294,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
330
294
|
```
|
|
331
295
|
|
|
332
296
|
</Tab>
|
|
333
|
-
<Tab label="Preact">
|
|
297
|
+
<Tab label="Preact" value="preact">
|
|
334
298
|
#### `<MarkdownRenderer />` 컴포넌트
|
|
335
299
|
|
|
336
300
|
```tsx
|
|
@@ -360,7 +324,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
360
324
|
```
|
|
361
325
|
|
|
362
326
|
</Tab>
|
|
363
|
-
<Tab label="Solid">
|
|
327
|
+
<Tab label="Solid" value="solid">
|
|
364
328
|
#### `<MarkdownRenderer />` 컴포넌트
|
|
365
329
|
|
|
366
330
|
```tsx
|
|
@@ -390,7 +354,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
390
354
|
```
|
|
391
355
|
|
|
392
356
|
</Tab>
|
|
393
|
-
<Tab label="Angular">
|
|
357
|
+
<Tab label="Angular" value="angular">
|
|
394
358
|
#### `IntlayerMarkdownService` 서비스
|
|
395
359
|
서비스를 사용하여 마크다운 문자열을 렌더링합니다.
|
|
396
360
|
|
|
@@ -416,7 +380,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
416
380
|
애플리케이션 전체에 대해 마크다운 렌더링을 전역으로 구성할 수 있습니다. 이를 통해 모든 렌더러에 동일한 프롭을 전달하는 번거로움을 피할 수 있습니다.
|
|
417
381
|
|
|
418
382
|
<Tabs group="framework">
|
|
419
|
-
<Tab label="React / Next.js">
|
|
383
|
+
<Tab label="React / Next.js" value="react">
|
|
420
384
|
|
|
421
385
|
```tsx fileName="AppProvider.tsx"
|
|
422
386
|
import { MarkdownProvider } from "react-intlayer";
|
|
@@ -436,7 +400,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
436
400
|
```
|
|
437
401
|
|
|
438
402
|
</Tab>
|
|
439
|
-
<Tab label="Vue">
|
|
403
|
+
<Tab label="Vue" value="vue">
|
|
440
404
|
|
|
441
405
|
```typescript fileName="main.ts"
|
|
442
406
|
import { createApp } from "vue";
|
|
@@ -461,7 +425,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
461
425
|
```
|
|
462
426
|
|
|
463
427
|
</Tab>
|
|
464
|
-
<Tab label="Svelte">
|
|
428
|
+
<Tab label="Svelte" value="svelte">
|
|
465
429
|
|
|
466
430
|
```svelte fileName="App.svelte"
|
|
467
431
|
<script lang="ts">
|
|
@@ -481,7 +445,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
481
445
|
```
|
|
482
446
|
|
|
483
447
|
</Tab>
|
|
484
|
-
<Tab label="Preact">
|
|
448
|
+
<Tab label="Preact" value="preact">
|
|
485
449
|
|
|
486
450
|
```tsx fileName="AppProvider.tsx"
|
|
487
451
|
import { MarkdownProvider } from "preact-intlayer";
|
|
@@ -500,7 +464,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
500
464
|
```
|
|
501
465
|
|
|
502
466
|
</Tab>
|
|
503
|
-
<Tab label="Solid">
|
|
467
|
+
<Tab label="Solid" value="solid">
|
|
504
468
|
|
|
505
469
|
```tsx fileName="AppProvider.tsx"
|
|
506
470
|
import { MarkdownProvider } from "solid-intlayer";
|
|
@@ -519,7 +483,7 @@ Intlayer v8는 콘텐츠 문자열에서 마크다운 문법을 지능적으로
|
|
|
519
483
|
```
|
|
520
484
|
|
|
521
485
|
</Tab>
|
|
522
|
-
<Tab label="Angular">
|
|
486
|
+
<Tab label="Angular" value="angular">
|
|
523
487
|
|
|
524
488
|
```typescript fileName="app.config.ts"
|
|
525
489
|
import { createIntlayerMarkdownProvider } from "angular-intlayer";
|
package/docs/ko/releases/v8.md
CHANGED
|
@@ -12,6 +12,7 @@ keywords:
|
|
|
12
12
|
- Next.js
|
|
13
13
|
- JavaScript
|
|
14
14
|
- TypeScript
|
|
15
|
+
youtubeVideo: https://www.youtube.com/watch?v=ia6JmVf-kkU
|
|
15
16
|
slugs:
|
|
16
17
|
- doc
|
|
17
18
|
- releases
|
|
@@ -22,6 +23,14 @@ slugs:
|
|
|
22
23
|
|
|
23
24
|
Intlayer v8에 오신 것을 환영합니다! 이번 릴리스는 자동 콘텐츠 감지를 통한 developer experience 향상, schema validation으로 데이터 무결성 보장, 그리고 dictionary management에 대한 더 많은 제어 제공에 중점을 둡니다.
|
|
24
25
|
|
|
26
|
+
<iframe
|
|
27
|
+
src="https://www.youtube.com/embed/ia6JmVf-kkU"
|
|
28
|
+
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
29
|
+
title="Demo Video - New Intlayer v8 - What's new?"
|
|
30
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
31
|
+
loading="lazy"
|
|
32
|
+
/>
|
|
33
|
+
|
|
25
34
|
## 목차
|
|
26
35
|
|
|
27
36
|
<TOC levels={[2]} maxDepth={1} />
|
|
@@ -1198,8 +1207,8 @@ Svelte에서의 Markdown 및 HTML 콘텐츠는 이제 문자열화될 때 자동
|
|
|
1198
1207
|
|
|
1199
1208
|
### 구성 변경사항
|
|
1200
1209
|
|
|
1201
|
-
- **`live` 속성**: 딕셔너리에서의 `live` 속성은
|
|
1202
|
-
-
|
|
1210
|
+
- **`live` 속성**: 딕셔너리에서의 `live` 속성은 제거되었습니다. 대신 `importMode: 'fetch'`를 사용하세요.
|
|
1211
|
+
- **importMode**: 설정에서 `build.importMode` 속성은 더 이상 권장되지 않습니다. 대신 `dictionary.importMode`를 사용하세요.
|
|
1203
1212
|
- **`contentDir` and `codeDir`**: `contentDir`는 이제 콘텐츠 파일 전용입니다. 코드 변환을 위한 새로운 `codeDir` 속성이 추가되었습니다. `codeDir`가 설정되어 있지 않으면 Intlayer는 `contentDir`로 폴백(fallback)하고 경고를 기록합니다.
|
|
1204
1213
|
- **스키마 검증**: 새로운 `schema` 기능을 사용하려면 프로젝트에 `zod`가 설치되어 있는지 확인하세요.
|
|
1205
1214
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-02-07
|
|
3
|
-
updatedAt: 2026-01-
|
|
3
|
+
updatedAt: 2026-01-28
|
|
4
4
|
title: Plik z Treścią
|
|
5
5
|
description: Dowiedz się, jak dostosować rozszerzenia dla plików deklaracji treści. Postępuj zgodnie z tą dokumentacją, aby efektywnie wdrażać warunki w swoim projekcie.
|
|
6
6
|
keywords:
|
|
@@ -12,6 +12,9 @@ slugs:
|
|
|
12
12
|
- concept
|
|
13
13
|
- content
|
|
14
14
|
history:
|
|
15
|
+
- version: 8.0.0
|
|
16
|
+
date: 2026-01-28
|
|
17
|
+
changes: Dodano typ węzła zawartości `html`
|
|
15
18
|
- version: 8.0.0
|
|
16
19
|
date: 2026-01-24
|
|
17
20
|
changes: Rename `live` import mode to `fetch` to better describe the underlying mechanism.
|
|
@@ -84,6 +87,7 @@ interface Content {
|
|
|
84
87
|
quantityContent: string;
|
|
85
88
|
conditionalContent: string;
|
|
86
89
|
markdownContent: never;
|
|
90
|
+
htmlContent: never;
|
|
87
91
|
externalContent: string;
|
|
88
92
|
insertionContent: string;
|
|
89
93
|
nestedContent: string;
|
|
@@ -128,6 +132,7 @@ export default {
|
|
|
128
132
|
fileContent: file("./path/to/file.txt"),
|
|
129
133
|
externalContent: fetch("https://example.com").then((res) => res.json()),
|
|
130
134
|
markdownContent: md("# Przykład Markdown"),
|
|
135
|
+
htmlContent: html("<p>Hello <strong>World</strong></p>"),
|
|
131
136
|
|
|
132
137
|
/*
|
|
133
138
|
* Dostępne tylko przy użyciu `react-intlayer` lub `next-intlayer`
|
|
@@ -177,6 +182,7 @@ export default {
|
|
|
177
182
|
"login.button" // [Opcjonalnie] Ścieżka do zawartości do zagnieżdżenia
|
|
178
183
|
),
|
|
179
184
|
markdownContent: md("# Przykład Markdown"),
|
|
185
|
+
htmlContent: html("<p>Hello <strong>World</strong></p>"),
|
|
180
186
|
fileContent: file("./path/to/file.txt"),
|
|
181
187
|
externalContent: fetch("https://example.com").then((res) => res.json())
|
|
182
188
|
|
|
@@ -226,6 +232,7 @@ module.exports = {
|
|
|
226
232
|
"login.button" // [Opcjonalne] Ścieżka do zawartości do zagnieżdżenia
|
|
227
233
|
),
|
|
228
234
|
markdownContent: md("# Przykład Markdown"),
|
|
235
|
+
htmlContent: html("<p>Hello <strong>World</strong></p>"),
|
|
229
236
|
fileContent: file("./path/to/file.txt"),
|
|
230
237
|
externalContent: fetch("https://example.com").then((res) => res.json())
|
|
231
238
|
|
|
@@ -287,6 +294,10 @@ module.exports = {
|
|
|
287
294
|
"nodeType": "markdown",
|
|
288
295
|
"markdown": "# Przykład Markdown",
|
|
289
296
|
},
|
|
297
|
+
"htmlContent": {
|
|
298
|
+
"nodeType": "html",
|
|
299
|
+
"html": "<p>Hello <strong>World</strong></p>",
|
|
300
|
+
},
|
|
290
301
|
"fileContent": {
|
|
291
302
|
"nodeType": "file",
|
|
292
303
|
"file": "./path/to/file.txt",
|
|
@@ -321,6 +332,7 @@ Intlayer obsługuje różne typy zawartości poprzez węzły typowane:
|
|
|
321
332
|
- **Zawartość enumeracji**: Zawartość zmieniająca się w zależności od wartości enumerowanych [zobacz Zawartość enumeracji](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/enumeration_content.md)
|
|
322
333
|
- **Zawartość wstawiania**: Zawartość, którą można wstawić do innej zawartości [zobacz Zawartość wstawiania](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/insertion_content.md)
|
|
323
334
|
- **Zawartość Markdown**: Zawartość tekstu sformatowanego w formacie Markdown [zobacz Zawartość Markdown](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/markdown_content.md)
|
|
335
|
+
- **Zawartość HTML**: Zawartość HTML z opcjonalnymi niestandardowymi komponentami [zobacz Zawartość HTML](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/html.md)
|
|
324
336
|
- **Zagnieżdżona zawartość**: Odwołania do innych słowników [zobacz Zagnieżdżoną zawartość](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/nested_content.md)
|
|
325
337
|
- **Zawartość zależna od płci**: Zawartość zmieniająca się w zależności od płci [zobacz Zawartość zależną od płci](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/gender_content.md)
|
|
326
338
|
- **Zawartość plikowa**: Odwołania do plików zewnętrznych [zobacz Zawartość plikową](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/file_content.md)
|
|
@@ -698,6 +710,23 @@ markdownContent: md(
|
|
|
698
710
|
);
|
|
699
711
|
```
|
|
700
712
|
|
|
713
|
+
### Zawartość HTML (`html`)
|
|
714
|
+
|
|
715
|
+
Zawartość HTML, która może używać standardowych tagów lub niestandardowych komponentów:
|
|
716
|
+
|
|
717
|
+
```typescript
|
|
718
|
+
import { html, file, t } from "intlayer";
|
|
719
|
+
|
|
720
|
+
// HTML w linii
|
|
721
|
+
htmlContent: html("<p>Hello <strong>World</strong></p>");
|
|
722
|
+
|
|
723
|
+
// HTML według lokalizacji z plików zewnętrznych
|
|
724
|
+
localizedHtmlContent: t({
|
|
725
|
+
en: html(file("./content.en.html")),
|
|
726
|
+
pl: html(file("./content.pl.html")),
|
|
727
|
+
});
|
|
728
|
+
```
|
|
729
|
+
|
|
701
730
|
### Zawartość według płci (`gender`)
|
|
702
731
|
|
|
703
732
|
Treść zmieniająca się w zależności od płci:
|