@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.
Files changed (73) hide show
  1. package/docs/ar/dictionary/content_file.md +30 -1
  2. package/docs/ar/dictionary/html.md +45 -56
  3. package/docs/ar/dictionary/markdown.md +21 -57
  4. package/docs/ar/releases/v8.md +11 -2
  5. package/docs/de/dictionary/content_file.md +30 -1
  6. package/docs/de/dictionary/html.md +45 -56
  7. package/docs/de/dictionary/markdown.md +21 -57
  8. package/docs/de/releases/v8.md +11 -2
  9. package/docs/en/dictionary/content_file.md +35 -1
  10. package/docs/en/dictionary/html.md +45 -56
  11. package/docs/en/dictionary/markdown.md +22 -58
  12. package/docs/en/releases/v8.md +11 -2
  13. package/docs/en-GB/dictionary/content_file.md +31 -2
  14. package/docs/en-GB/dictionary/html.md +45 -56
  15. package/docs/en-GB/dictionary/markdown.md +17 -53
  16. package/docs/en-GB/releases/v8.md +11 -2
  17. package/docs/es/dictionary/content_file.md +30 -2
  18. package/docs/es/dictionary/html.md +45 -56
  19. package/docs/es/dictionary/markdown.md +21 -57
  20. package/docs/es/releases/v8.md +11 -2
  21. package/docs/fr/dictionary/content_file.md +30 -1
  22. package/docs/fr/dictionary/html.md +45 -56
  23. package/docs/fr/dictionary/markdown.md +21 -57
  24. package/docs/fr/releases/v8.md +11 -2
  25. package/docs/hi/dictionary/content_file.md +33 -3
  26. package/docs/hi/dictionary/html.md +45 -56
  27. package/docs/hi/dictionary/markdown.md +21 -57
  28. package/docs/hi/releases/v8.md +10 -1
  29. package/docs/id/dictionary/content_file.md +30 -1
  30. package/docs/id/dictionary/html.md +45 -56
  31. package/docs/id/dictionary/markdown.md +21 -57
  32. package/docs/id/releases/v8.md +11 -2
  33. package/docs/it/dictionary/content_file.md +30 -1
  34. package/docs/it/dictionary/html.md +45 -56
  35. package/docs/it/dictionary/markdown.md +21 -57
  36. package/docs/it/releases/v8.md +11 -2
  37. package/docs/ja/dictionary/content_file.md +30 -1
  38. package/docs/ja/dictionary/html.md +45 -56
  39. package/docs/ja/dictionary/markdown.md +21 -57
  40. package/docs/ja/releases/v8.md +11 -2
  41. package/docs/ko/dictionary/content_file.md +30 -1
  42. package/docs/ko/dictionary/html.md +45 -56
  43. package/docs/ko/dictionary/markdown.md +21 -57
  44. package/docs/ko/releases/v8.md +11 -2
  45. package/docs/pl/dictionary/content_file.md +30 -1
  46. package/docs/pl/dictionary/html.md +45 -56
  47. package/docs/pl/dictionary/markdown.md +18 -54
  48. package/docs/pl/releases/v8.md +11 -2
  49. package/docs/pt/dictionary/content_file.md +30 -1
  50. package/docs/pt/dictionary/html.md +45 -56
  51. package/docs/pt/dictionary/markdown.md +21 -57
  52. package/docs/pt/releases/v8.md +11 -2
  53. package/docs/ru/dictionary/content_file.md +30 -1
  54. package/docs/ru/dictionary/html.md +45 -56
  55. package/docs/ru/dictionary/markdown.md +21 -57
  56. package/docs/ru/releases/v8.md +11 -2
  57. package/docs/tr/dictionary/content_file.md +30 -1
  58. package/docs/tr/dictionary/html.md +45 -56
  59. package/docs/tr/dictionary/markdown.md +17 -53
  60. package/docs/tr/releases/v8.md +11 -2
  61. package/docs/uk/dictionary/content_file.md +32 -3
  62. package/docs/uk/dictionary/html.md +45 -56
  63. package/docs/uk/dictionary/markdown.md +14 -50
  64. package/docs/uk/releases/v8.md +11 -2
  65. package/docs/vi/dictionary/content_file.md +30 -1
  66. package/docs/vi/dictionary/html.md +45 -56
  67. package/docs/vi/dictionary/markdown.md +19 -55
  68. package/docs/vi/releases/v8.md +11 -2
  69. package/docs/zh/dictionary/content_file.md +28 -2
  70. package/docs/zh/dictionary/html.md +45 -56
  71. package/docs/zh/dictionary/markdown.md +20 -56
  72. package/docs/zh/releases/v8.md +11 -2
  73. package/package.json +7 -7
@@ -31,47 +31,12 @@ history:
31
31
 
32
32
  Intlayer підтримує HTML-контент, що дозволяє вбудовувати насичений, структурований вміст у ваші словники. Цей вміст може відображатися за допомогою стандартних 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 @@ export default {
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 @@ export default {
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"
@@ -122,6 +87,30 @@ export default {
122
87
  </Tab>
123
88
  </Tabs>
124
89
 
90
+ ### Вузол `html()`
91
+
92
+ Функція `html()` — це нова можливість в Intlayer v8, яка дозволяє явно визначати HTML-контент у ваших словниках. Хоча Intlayer часто може автоматично визначати HTML-контент, використання функції `html()` має кілька переваг:
93
+
94
+ - **Типобезпека**: Функція `html()` дозволяє визначати очікувані пропси для користувацьких компонентів, забезпечуючи краще автодоповнення та перевірку типів у вашому редакторі.
95
+ - **Явне оголошення**: Це гарантує, що рядок завжди буде розглядатися як HTML, навіть якщо він не містить стандартних HTML-тегів, які могли б активувати автоматичне визначення.
96
+ - **Визначення користувацьких компонентів**: Ви можете передати другий аргумент у `html()`, щоб визначити користувацькі компоненти та очікувані типи їхніх пропсів.
97
+
98
+ ```typescript
99
+ import { html } from "intlayer";
100
+
101
+ const myContent = html(
102
+ "<MyCustomComponent title='Привіт'>Світ</MyCustomComponent>",
103
+ {
104
+ MyCustomComponent: {
105
+ title: "string",
106
+ children: "node",
107
+ },
108
+ }
109
+ );
110
+ ```
111
+
112
+ При використанні методу `.use()` для HTML-вузла надані вами компоненти будуть перевірятися на відповідність визначенню, вказаному у функції `html()` (якщо воно доступне).
113
+
125
114
  ---
126
115
 
127
116
  ## Відтворення HTML
@@ -133,7 +122,7 @@ export default {
133
122
  Коли ви отримуєте доступ до контенту через `useIntlayer`, HTML-вузли вже підготовлені до відтворення.
134
123
 
135
124
  <Tabs group="framework">
136
- <Tab label="React / Next.js">
125
+ <Tab label="React / Next.js" value="react">
137
126
  HTML-вузли можна відтворювати безпосередньо як JSX. Стандартні теги працюють автоматично.
138
127
 
139
128
  ```tsx fileName="App.tsx"
@@ -155,7 +144,7 @@ export default {
155
144
  ```
156
145
 
157
146
  </Tab>
158
- <Tab label="Vue">
147
+ <Tab label="Vue" value="vue">
159
148
  У Vue HTML-контент можна відтворити за допомогою вбудованого компонента `component`.
160
149
 
161
150
  ```vue fileName="App.vue"
@@ -175,7 +164,7 @@ export default {
175
164
  ```
176
165
 
177
166
  </Tab>
178
- <Tab label="Svelte">
167
+ <Tab label="Svelte" value="svelte">
179
168
  Svelte відтворює HTML-вузли як рядки. Використовуйте `{@html}` для їх відображення.
180
169
 
181
170
  ```svelte
@@ -188,7 +177,7 @@ export default {
188
177
  ```
189
178
 
190
179
  </Tab>
191
- <Tab label="Preact">
180
+ <Tab label="Preact" value="preact">
192
181
  Preact підтримує HTML-вузли безпосередньо в JSX.
193
182
 
194
183
  ```tsx fileName="App.tsx"
@@ -201,7 +190,7 @@ export default {
201
190
  ```
202
191
 
203
192
  </Tab>
204
- <Tab label="Solid">
193
+ <Tab label="Solid" value="solid">
205
194
  Solid підтримує HTML-вузли безпосередньо в JSX.
206
195
 
207
196
  ```tsx fileName="App.tsx"
@@ -214,7 +203,7 @@ export default {
214
203
  ```
215
204
 
216
205
  </Tab>
217
- <Tab label="Angular">
206
+ <Tab label="Angular" value="angular">
218
207
  Angular використовує директиву `[innerHTML]` для відтворення HTML-контенту.
219
208
 
220
209
  ```typescript fileName="app.component.ts"
@@ -247,7 +236,7 @@ export default {
247
236
  Ви можете налаштувати відтворення HTML глобально для всього застосунку. Це ідеально підходить для визначення користувацьких компонентів, які мають бути доступні в усьому HTML-контенті.
248
237
 
249
238
  <Tabs group="framework">
250
- <Tab label="React / Next.js">
239
+ <Tab label="React / Next.js" value="react">
251
240
 
252
241
  ```tsx fileName="AppProvider.tsx"
253
242
  import { HTMLProvider } from "react-intlayer";
@@ -265,7 +254,7 @@ export default {
265
254
  ```
266
255
 
267
256
  </Tab>
268
- <Tab label="Vue">
257
+ <Tab label="Vue" value="vue">
269
258
 
270
259
  ```typescript fileName="main.ts"
271
260
  import { createApp, h } from "vue";
@@ -286,7 +275,7 @@ export default {
286
275
  ```
287
276
 
288
277
  </Tab>
289
- <Tab label="Svelte">
278
+ <Tab label="Svelte" value="svelte">
290
279
 
291
280
  ```svelte fileName="App.svelte"
292
281
  <script lang="ts">
@@ -304,7 +293,7 @@ export default {
304
293
  ```
305
294
 
306
295
  </Tab>
307
- <Tab label="Preact">
296
+ <Tab label="Preact" value="preact">
308
297
 
309
298
  ```tsx fileName="AppProvider.tsx"
310
299
  import { HTMLProvider } from "preact-intlayer";
@@ -321,7 +310,7 @@ export default {
321
310
  ```
322
311
 
323
312
  </Tab>
324
- <Tab label="Solid">
313
+ <Tab label="Solid" value="solid">
325
314
 
326
315
  ```tsx fileName="AppProvider.tsx"
327
316
  import { HTMLProvider } from "solid-intlayer";
@@ -338,7 +327,7 @@ export default {
338
327
  ```
339
328
 
340
329
  </Tab>
341
- <Tab label="Angular">
330
+ <Tab label="Angular" value="angular">
342
331
 
343
332
  ```typescript fileName="app.config.ts"
344
333
  import { createIntlayerMarkdownProvider } from "angular-intlayer";
@@ -365,7 +354,7 @@ export default {
365
354
  Якщо вам потрібно відтворити сирі HTML-рядки або ви хочете більше контролю над мапуванням компонентів, використовуйте наступні інструменти.
366
355
 
367
356
  <Tabs group="framework">
368
- <Tab label="React / Next.js">
357
+ <Tab label="React / Next.js" value="react">
369
358
  #### Компонент `<HTMLRenderer />`
370
359
  Відтворіть HTML-рядок із конкретними компонентами.
371
360
 
@@ -402,7 +391,7 @@ export default {
402
391
  ```
403
392
 
404
393
  </Tab>
405
- <Tab label="Vue">
394
+ <Tab label="Vue" value="vue">
406
395
 
407
396
  #### Компонент `<HTMLRenderer />`
408
397
 
@@ -417,7 +406,7 @@ export default {
417
406
  ```
418
407
 
419
408
  </Tab>
420
- <Tab label="Svelte">
409
+ <Tab label="Svelte" value="svelte">
421
410
 
422
411
  #### Компонент `<HTMLRenderer />`
423
412
 
@@ -451,7 +440,7 @@ export default {
451
440
  ```
452
441
 
453
442
  </Tab>
454
- <Tab label="Preact">
443
+ <Tab label="Preact" value="preact">
455
444
 
456
445
  #### Компонент `<HTMLRenderer />`
457
446
 
@@ -482,7 +471,7 @@ export default {
482
471
  ```
483
472
 
484
473
  </Tab>
485
- <Tab label="Solid">
474
+ <Tab label="Solid" value="solid">
486
475
 
487
476
  #### Компонент `<HTMLRenderer />`
488
477
 
@@ -513,7 +502,7 @@ export default {
513
502
  ```
514
503
 
515
504
  </Tab>
516
- <Tab label="Angular">
505
+ <Tab label="Angular" value="angular">
517
506
  #### Сервіс `IntlayerMarkdownService`
518
507
  Відтворіть HTML-рядок за допомогою сервісу.
519
508
 
@@ -32,48 +32,12 @@ history:
32
32
 
33
33
  Intlayer підтримує контент rich text, визначений за допомогою синтаксису Markdown. Це дозволяє легко писати та підтримувати контент із багатим форматуванням, таким як блоги, статті та інше.
34
34
 
35
- ## Як працює Markdown
36
-
37
- Intlayer v8 інтелектуально виявляє синтаксис Markdown у ваших рядках контенту. Якщо рядок ідентифіковано як Markdown, він автоматично перетворюється на вузол Markdown.
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("## Мій заголовок \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, // Увімкнути автоматичне виявлення контенту Markdown - Можна встановити глобально в intlayer.config.ts
60
- content: {
61
- text: "## Мій заголовок \n\nLorem Ipsum",
62
- },
63
- };
64
- ```
65
-
66
- </Column>
67
- </Columns>
68
-
69
- ---
70
-
71
35
  ## Частина 1: Оголошення контенту Markdown
72
36
 
73
37
  Ви можете оголосити контент Markdown за допомогою функції `md` або просто як рядок (якщо він містить синтаксис Markdown).
74
38
 
75
39
  <Tabs>
76
- <Tab label="Ручне обгортання">
40
+ <Tab label="Ручне обгортання" value="manual-wrapping">
77
41
  Використовуйте функцію `md` для явного оголошення контенту Markdown. Це корисно, якщо ви хочете переконатися, що рядок розглядається як Markdown, навіть якщо він не містить очевидного синтаксису.
78
42
 
79
43
  ```typescript fileName="markdownDictionary.content.ts"
@@ -104,7 +68,7 @@ Intlayer v8 інтелектуально виявляє синтаксис Markd
104
68
  ```
105
69
 
106
70
  </Tab>
107
- <Tab label="Зовнішні файли">
71
+ <Tab label="Зовнішні файли" value="external-files">
108
72
  Імпортуйте файли `.md` безпосередньо за допомогою функції `file`.
109
73
 
110
74
  ```typescript fileName="markdownDictionary.content.ts"
@@ -156,7 +120,7 @@ Intlayer v8 інтелектуально виявляє синтаксис Markd
156
120
  ```
157
121
 
158
122
  </Tab>
159
- <Tab label="Vue">
123
+ <Tab label="Vue" value="vue">
160
124
  У Vue контент Markdown можна відтворити за допомогою вбудованого компонента `component` або безпосередньо як вузол.
161
125
 
162
126
  ```vue fileName="App.vue"
@@ -171,7 +135,7 @@ Intlayer v8 інтелектуально виявляє синтаксис Markd
171
135
  ```
172
136
 
173
137
  </Tab>
174
- <Tab label="Svelte">
138
+ <Tab label="Svelte" value="svelte">
175
139
  Svelte відтворює Markdown як рядок HTML за замовчуванням. Використовуйте `{@html}` для його відображення.
176
140
 
177
141
  ```svelte
@@ -184,7 +148,7 @@ Intlayer v8 інтелектуально виявляє синтаксис Markd
184
148
  ```
185
149
 
186
150
  </Tab>
187
- <Tab label="Preact">
151
+ <Tab label="Preact" value="preact">
188
152
  Preact підтримує вузли Markdown безпосередньо в JSX.
189
153
 
190
154
  ```tsx fileName="App.tsx"
@@ -210,7 +174,7 @@ Intlayer v8 інтелектуально виявляє синтаксис Markd
210
174
  ```
211
175
 
212
176
  </Tab>
213
- <Tab label="Angular">
177
+ <Tab label="Angular" value="angular">
214
178
  Angular використовує директиву `[innerHTML]` для відтворення контенту Markdown.
215
179
 
216
180
  ```typescript fileName="app.component.ts"
@@ -281,7 +245,7 @@ Intlayer v8 інтелектуально виявляє синтаксис Markd
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 інтелектуально виявляє синтаксис Markd
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 інтелектуально виявляє синтаксис Markd
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
@@ -390,7 +354,7 @@ Intlayer v8 інтелектуально виявляє синтаксис Markd
390
354
  ```
391
355
 
392
356
  </Tab>
393
- <Tab label="Angular">
357
+ <Tab label="Angular" value="angular">
394
358
  #### Сервіс `IntlayerMarkdownService`
395
359
  Відтворіть рядок Markdown за допомогою сервісу.
396
360
 
@@ -436,7 +400,7 @@ Intlayer v8 інтелектуально виявляє синтаксис Markd
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 інтелектуально виявляє синтаксис Markd
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 інтелектуально виявляє синтаксис Markd
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";
@@ -519,7 +483,7 @@ Intlayer v8 інтелектуально виявляє синтаксис Markd
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";
@@ -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! У цьому випуску основна увага приділена покращенню досвіду розробника за допомогою автоматичного виявлення контенту, забезпеченню цілісності даних через валідацію схем і наданню більшого контролю над управлінням словниками.
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 @@ export default {
1198
1207
 
1199
1208
  ### Зміни в конфігурації
1200
1209
 
1201
- - **Властивість `live`**: Властивість `live` у словниках застаріла. Використовуйте `importMode: 'fetch'` замість неї.
1202
- - **Уніфікований API розширеного вмісту**: Новий метод `.use()` тепер використовується як для Markdown, так і для HTML перевизначень, забезпечуючи узгоджений API для всіх типів розширеного вмісту.
1210
+ - **Властивість `live`**: Властивість `live` у словниках видалена. Використовуйте `importMode: 'fetch'` замість неї.
1211
+ - **importMode**: Властивість `build.importMode` у конфігурації застаріла. Використовуйте `dictionary.importMode` замість неї.
1203
1212
  - **`contentDir` та `codeDir`**: `contentDir` тепер призначений саме для файлів контенту. Додано нову властивість `codeDir` для трансформації коду. Якщо `codeDir` не встановлено, Intlayer повернеться до `contentDir` та виведе попередження.
1204
1213
  - **Валідація схеми**: Щоб використовувати нову функцію `schema`, переконайтеся, що у вашому проєкті встановлено `zod`.
1205
1214
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-02-07
3
- updatedAt: 2026-01-24
3
+ updatedAt: 2026-01-28
4
4
  title: Tệp Nội Dung
5
5
  description: Tìm hiểu cách tùy chỉnh các phần mở rộng cho các tệp khai báo nội dung của bạn. Theo dõi tài liệu này để triển khai các điều kiện một cách hiệu quả trong dự án của bạn.
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: Thêm kiểu nút nội dung `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.
@@ -87,6 +90,7 @@ interface Content {
87
90
  quantityContent: string;
88
91
  conditionalContent: string;
89
92
  markdownContent: never;
93
+ htmlContent: never;
90
94
  externalContent: string;
91
95
  insertionContent: string;
92
96
  nestedContent: string;
@@ -131,6 +135,7 @@ export default {
131
135
  fileContent: file("./path/to/file.txt"),
132
136
  externalContent: fetch("https://example.com").then((res) => res.json()),
133
137
  markdownContent: md("# Ví dụ Markdown"),
138
+ htmlContent: html("<p>Hello <strong>World</strong></p>"),
134
139
 
135
140
  /*
136
141
  * Chỉ có sẵn khi sử dụng `react-intlayer` hoặc `next-intlayer`
@@ -180,6 +185,7 @@ export default {
180
185
  "login.button" // [Tùy chọn] Đường dẫn đến nội dung để lồng vào
181
186
  ),
182
187
  markdownContent: md("# Ví dụ Markdown"),
188
+ htmlContent: html("<p>Hello <strong>World</strong></p>"),
183
189
  fileContent: file("./path/to/file.txt"),
184
190
  externalContent: fetch("https://example.com").then((res) => res.json())
185
191
 
@@ -229,6 +235,7 @@ module.exports = {
229
235
  "login.button" // [Tùy chọn] Đường dẫn đến nội dung để lồng vào
230
236
  ),
231
237
  markdownContent: md("# Ví dụ Markdown"),
238
+ htmlContent: html("<p>Hello <strong>World</strong></p>"),
232
239
  fileContent: file("./path/to/file.txt"),
233
240
  externalContent: fetch("https://example.com").then((res) => res.json())
234
241
 
@@ -290,6 +297,10 @@ module.exports = {
290
297
  "nodeType": "markdown",
291
298
  "markdown": "# Ví dụ Markdown",
292
299
  },
300
+ "htmlContent": {
301
+ "nodeType": "html",
302
+ "html": "<p>Hello <strong>World</strong></p>",
303
+ },
293
304
  "fileContent": {
294
305
  "nodeType": "file",
295
306
  "file": "./path/to/file.txt",
@@ -324,6 +335,7 @@ Intlayer hỗ trợ nhiều loại nội dung thông qua các node kiểu:
324
335
  - **Nội dung Liệt kê**: Nội dung thay đổi dựa trên các giá trị được liệt kê [xem Nội dung Liệt kê](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/dictionary/enumeration_content.md)
325
336
  - **Nội dung Chèn**: Nội dung có thể được chèn vào các nội dung khác [xem Nội dung Chèn](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/dictionary/insertion_content.md)
326
337
  - **Nội dung Markdown**: Nội dung văn bản phong phú ở định dạng Markdown [xem Nội dung Markdown](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/dictionary/markdown_content.md)
338
+ - **Nội dung HTML**: Nội dung HTML phong phú với các component tùy chỉnh tùy chọn [xem Nội dung HTML](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/dictionary/html.md)
327
339
  - **Nội dung Lồng nhau**: Tham chiếu đến các từ điển khác [xem Nội dung Lồng nhau](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/dictionary/nested_content.md)
328
340
  - **Nội dung Giới tính**: Nội dung thay đổi dựa trên giới tính [xem Nội dung Giới tính](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/dictionary/gender_content.md)
329
341
  - **Nội dung Tệp**: Tham chiếu đến các tệp bên ngoài [xem Nội dung Tệp](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/dictionary/file_content.md)
@@ -701,6 +713,23 @@ markdownContent: md(
701
713
  );
702
714
  ```
703
715
 
716
+ ### Nội dung HTML (`html`)
717
+
718
+ Nội dung HTML phong phú có thể sử dụng thẻ chuẩn hoặc component tùy chỉnh:
719
+
720
+ ```typescript
721
+ import { html, file, t } from "intlayer";
722
+
723
+ // HTML nội tuyến
724
+ htmlContent: html("<p>Hello <strong>World</strong></p>");
725
+
726
+ // HTML theo từng ngôn ngữ từ các tệp bên ngoài
727
+ localizedHtmlContent: t({
728
+ en: html(file("./content.en.html")),
729
+ vi: html(file("./content.vi.html")),
730
+ });
731
+ ```
732
+
704
733
  ### Nội dung theo giới tính (`gender`)
705
734
 
706
735
  Nội dung thay đổi dựa trên giới tính: