@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
@@ -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: ملف المحتوى
5
5
  description: تعلّم كيفية تخصيص الامتدادات لملفات إعلان المحتوى الخاصة بك. اتبع هذا التوثيق لتنفيذ الشروط بكفاءة في مشروعك.
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: إضافة نوع عقدة المحتوى `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;
@@ -129,6 +133,7 @@ export default {
129
133
  fileContent: file("./path/to/file.txt"),
130
134
  externalContent: fetch("https://example.com").then((res) => res.json()),
131
135
  markdownContent: md("# مثال على ماركداون"),
136
+ htmlContent: html("<p>Hello <strong>World</strong></p>"),
132
137
 
133
138
  /*
134
139
  * متاح فقط باستخدام `react-intlayer` أو `next-intlayer`
@@ -179,6 +184,7 @@ export default {
179
184
  "login.button" // [اختياري] المسار إلى المحتوى للتضمين
180
185
  ),
181
186
  markdownContent: md("# مثال على ماركداون"),
187
+ htmlContent: html("<p>Hello <strong>World</strong></p>"),
182
188
  fileContent: file("./path/to/file.txt"),
183
189
  externalContent: fetch("https://example.com").then((res) => res.json())
184
190
 
@@ -229,6 +235,7 @@ module.exports = {
229
235
  "login.button" // [اختياري] مسار المحتوى للتضمين
230
236
  ),
231
237
  markdownContent: md("# مثال على ماركداون"),
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": "# مثال على ماركداون",
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 @@ module.exports = {
324
335
  - **محتوى التعداد**: محتوى يتغير بناءً على قيم معدودة [انظر محتوى التعداد](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/enumeration_content.md)
325
336
  - **محتوى الإدراج**: محتوى يمكن إدراجه داخل محتويات أخرى [انظر محتوى الإدراج](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/insertion_content.md)
326
337
  - **محتوى ماركداون**: محتوى نص غني بصيغة ماركداون [انظر محتوى ماركداون](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/markdown_content.md)
338
+ - **محتوى HTML**: محتوى HTML غني مع مكونات مخصصة اختيارية [انظر محتوى HTML](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/html.md)
327
339
  - **محتوى متداخل**: مراجع إلى قواميس أخرى [انظر المحتوى المتداخل](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/nested_content.md)
328
340
  - **محتوى حسب الجنس**: محتوى يختلف بناءً على الجنس [انظر محتوى الجنس](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/gender_content.md)
329
341
  - **محتوى ملف**: مراجع إلى ملفات خارجية [انظر محتوى الملف](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/file_content.md)
@@ -696,6 +708,23 @@ markdownContent: md(
696
708
  );
697
709
  ```
698
710
 
711
+ ### محتوى HTML (`html`)
712
+
713
+ محتوى HTML غني يمكنه استخدام وسوم قياسية أو مكونات مخصصة:
714
+
715
+ ```typescript
716
+ import { html, file, t } from "intlayer";
717
+
718
+ // HTML مضمن
719
+ htmlContent: html("<p>Hello <strong>World</strong></p>");
720
+
721
+ // HTML حسب اللغة من ملفات خارجية
722
+ localizedHtmlContent: t({
723
+ en: html(file("./content.en.html")),
724
+ ar: html(file("./content.ar.html")),
725
+ });
726
+ ```
727
+
699
728
  ### محتوى الجنس (`gender`)
700
729
 
701
730
  محتوى يتغير بناءً على الجنس:
@@ -31,47 +31,12 @@ history:
31
31
 
32
32
  يدعم Intlayer محتوى HTML، مما يتيح لك تضمين محتوى غني ومنظم داخل القواميس (dictionaries) الخاصة بك. يمكن عرض هذا المحتوى باستخدام وسوم 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>مرحبًا <strong>بالعالم</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>مرحبًا <strong>بالعالم</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
+ - **سلامة النوع (Type Safety)**: تتيح لك دالة `html()` تحديد الخصائص (props) المتوقعة للمكونات المخصصة، مما يوفر إكمالاً تلقائيًا وفحصًا أفضل للنوع في المحرر الخاص بك.
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 محتوى النصوص الغنية المحدد باستخدام صيغة 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
  ## الجزء الأول: إعلان محتوى 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"
@@ -90,7 +54,7 @@ history:
90
54
  ```
91
55
 
92
56
  </Tab>
93
- <Tab label="الكشف التلقائي">
57
+ <Tab label="الكشف التلقائي" value="automatic-detection">
94
58
  إذا كانت السلسلة تحتوي على مؤشرات Markdown شائعة (مثل العناوين، القوائم، الروابط، إلخ)، فسيقوم Intlayer بتحويلها تلقائيًا.
95
59
 
96
60
  ```typescript fileName="markdownDictionary.content.ts"
@@ -104,7 +68,7 @@ history:
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"
@@ -135,7 +99,7 @@ history:
135
99
  عند الوصول إلى المحتوى عبر `useIntlayer`، تكون عقد Markdown جاهزة بالفعل للعرض.
136
100
 
137
101
  <Tabs group="framework">
138
- <Tab label="React / Next.js">
102
+ <Tab label="React / Next.js" value="react">
139
103
  يمكن عرض عقد Markdown مباشرةً كـ JSX.
140
104
 
141
105
  ```tsx fileName="App.tsx"
@@ -156,7 +120,7 @@ history:
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 @@ history:
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 @@ history:
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"
@@ -197,7 +161,7 @@ history:
197
161
  ```
198
162
 
199
163
  </Tab>
200
- <Tab label="Solid">
164
+ <Tab label="Solid" value="solid">
201
165
  يدعم Solid عقد Markdown مباشرة داخل JSX.
202
166
 
203
167
  ```tsx fileName="App.tsx"
@@ -210,7 +174,7 @@ history:
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"
@@ -242,7 +206,7 @@ history:
242
206
  إذا كنت بحاجة إلى عرض سلاسل Markdown خام أو التحكم بشكل أكبر في عملية العرض، فاستخدم الأدوات التالية.
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 @@ history:
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 @@ history:
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 @@ history:
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 @@ history:
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 @@ history:
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
 
@@ -416,7 +380,7 @@ history:
416
380
  يمكنك تكوين عرض Markdown على مستوى التطبيق بأكمله. هذا يغنيك عن تمرير نفس الخصائص لكل renderer.
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 @@ history:
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 @@ history:
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 @@ history:
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 @@ history:
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 @@ history:
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
- - **واجهة برمجة تطبيقات موحدة للمحتوى الغني**: يتم الآن استخدام طريقة `.use()` الجديدة لكل من تجاوزات Markdown و HTML، مما يوفر واجهة برمجة تطبيقات متسقة عبر جميع أنواع المحتوى الغني.
1210
+ - **خاصية `live`**: تمت إزالة خاصية `live` من القواميس. استخدم `importMode: 'fetch'` بدلاً منها.
1211
+ - **importMode**: تم إهمال خاصية `build.importMode` في التكوين. استخدم `dictionary.importMode` بدلاً منها.
1203
1212
  - **`contentDir` و `codeDir`**: أصبح `contentDir` مخصّصًا الآن لملفات المحتوى. تمت إضافة خاصية جديدة `codeDir` لتحويل الكود. إذا لم يتم تعيين `codeDir`، فسيقوم Intlayer بالرجوع إلى `contentDir` وتسجيل تحذير.
1204
1213
  - **التحقق من المخطط (Schema Validation)**: لاستخدام ميزة `schema` الجديدة، تأكد من تثبيت `zod` في مشروعك.
1205
1214