@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 admite contenido HTML, lo que permite incrustar contenido enriquecido y estructurado dentro de los diccionarios. Este contenido se puede renderizar con etiquetas HTML estándar o reemplazarse por componentes personalizados en tiempo de ejecución.
|
|
33
33
|
|
|
34
|
-
## Cómo funciona el HTML
|
|
35
|
-
|
|
36
|
-
Intlayer v8 detecta inteligentemente las etiquetas HTML en las cadenas de contenido. Si una cadena se identifica como HTML (contiene etiquetas), se transforma automáticamente en un nodo HTML.
|
|
37
|
-
|
|
38
|
-
<Columns>
|
|
39
|
-
<Column title="Comportamiento v7 (Envoltura manual)">
|
|
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="Comportamiento v8 (Detección automática)">
|
|
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
|
## Declarar contenido HTML
|
|
70
35
|
|
|
71
36
|
Puedes declarar contenido HTML mediante la función `html` o simplemente como una cadena de texto.
|
|
72
37
|
|
|
73
38
|
<Tabs>
|
|
74
|
-
<Tab label="Envoltura Manual">
|
|
39
|
+
<Tab label="Envoltura Manual" value="manual-wrapping">
|
|
75
40
|
Utiliza la función `html` para declarar explícitamente contenido HTML. Esto garantiza que las etiquetas estándar se mapeen correctamente incluso si la detección automática está desactivada.
|
|
76
41
|
|
|
77
42
|
```typescript fileName="htmlDictionary.content.ts"
|
|
@@ -88,7 +53,7 @@ Puedes declarar contenido HTML mediante la función `html` o simplemente como un
|
|
|
88
53
|
```
|
|
89
54
|
|
|
90
55
|
</Tab>
|
|
91
|
-
<Tab label="Detección Automática">
|
|
56
|
+
<Tab label="Detección Automática" value="automatic-detection">
|
|
92
57
|
Si la cadena contiene etiquetas HTML comunes (por ejemplo, `<p>`, `<div>`, `<strong>`, etc.), Intlayer la transformará automáticamente.
|
|
93
58
|
|
|
94
59
|
```typescript fileName="htmlDictionary.content.ts"
|
|
@@ -101,7 +66,7 @@ Puedes declarar contenido HTML mediante la función `html` o simplemente como un
|
|
|
101
66
|
```
|
|
102
67
|
|
|
103
68
|
</Tab>
|
|
104
|
-
<Tab label="Archivos Externos">
|
|
69
|
+
<Tab label="Archivos Externos" value="external-files">
|
|
105
70
|
Importa contenido HTML desde archivos. Ten en cuenta que actualmente la función `file()` devuelve una cadena, que se detectará automáticamente como HTML si contiene etiquetas.
|
|
106
71
|
|
|
107
72
|
```typescript fileName="htmlDictionary.content.ts"
|
|
@@ -121,6 +86,30 @@ Puedes declarar contenido HTML mediante la función `html` o simplemente como un
|
|
|
121
86
|
</Tab>
|
|
122
87
|
</Tabs>
|
|
123
88
|
|
|
89
|
+
### El nodo `html()`
|
|
90
|
+
|
|
91
|
+
La función `html()` es una nueva característica en Intlayer v8 que le permite definir explícitamente contenido HTML en sus diccionarios. Aunque Intlayer a menudo puede detectar automáticamente el contenido HTML, el uso de la función `html()` ofrece varias ventajas:
|
|
92
|
+
|
|
93
|
+
- **Seguridad de Tipos**: La función `html()` le permite definir las props esperadas para los componentes personalizados, lo que proporciona un mejor autocompletado y comprobación de tipos en su editor.
|
|
94
|
+
- **Declaración Explícita**: Garantiza que una cadena siempre se trate como HTML, incluso si no contiene etiquetas HTML estándar que activarían la detección automática.
|
|
95
|
+
- **Definición de Componentes Personalizados**: Puede pasar un segundo argumento a `html()` para definir los componentes personalizados y sus tipos de props esperados.
|
|
96
|
+
|
|
97
|
+
```typescript
|
|
98
|
+
import { html } from "intlayer";
|
|
99
|
+
|
|
100
|
+
const myContent = html(
|
|
101
|
+
"<MyCustomComponent title='Hola'>Mundo</MyCustomComponent>",
|
|
102
|
+
{
|
|
103
|
+
MyCustomComponent: {
|
|
104
|
+
title: "string",
|
|
105
|
+
children: "node",
|
|
106
|
+
},
|
|
107
|
+
}
|
|
108
|
+
);
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Al utilizar el método `.use()` en un nodo HTML, los componentes que proporcione se cotejarán con la definición proporcionada en la función `html()` (si está disponible).
|
|
112
|
+
|
|
124
113
|
---
|
|
125
114
|
|
|
126
115
|
## Renderizado de HTML
|
|
@@ -132,7 +121,7 @@ El renderizado puede ser gestionado automáticamente por el sistema de contenido
|
|
|
132
121
|
Cuando accedes al contenido a través de `useIntlayer`, los nodos HTML ya están preparados para el renderizado.
|
|
133
122
|
|
|
134
123
|
<Tabs group="framework">
|
|
135
|
-
<Tab label="React / Next.js">
|
|
124
|
+
<Tab label="React / Next.js" value="react">
|
|
136
125
|
Los nodos HTML se pueden renderizar directamente como JSX. Las etiquetas estándar funcionan automáticamente.
|
|
137
126
|
|
|
138
127
|
```tsx fileName="App.tsx"
|
|
@@ -154,7 +143,7 @@ Cuando accedes al contenido a través de `useIntlayer`, los nodos HTML ya están
|
|
|
154
143
|
```
|
|
155
144
|
|
|
156
145
|
</Tab>
|
|
157
|
-
<Tab label="Vue">
|
|
146
|
+
<Tab label="Vue" value="vue">
|
|
158
147
|
En Vue, el contenido HTML se puede renderizar mediante el componente integrado `component`.
|
|
159
148
|
|
|
160
149
|
```vue fileName="App.vue"
|
|
@@ -174,7 +163,7 @@ Cuando accedes al contenido a través de `useIntlayer`, los nodos HTML ya están
|
|
|
174
163
|
```
|
|
175
164
|
|
|
176
165
|
</Tab>
|
|
177
|
-
<Tab label="Svelte">
|
|
166
|
+
<Tab label="Svelte" value="svelte">
|
|
178
167
|
Svelte renderiza los nodos HTML como cadenas de texto. Utiliza `{@html}` para renderizarlo.
|
|
179
168
|
|
|
180
169
|
```svelte
|
|
@@ -187,7 +176,7 @@ Cuando accedes al contenido a través de `useIntlayer`, los nodos HTML ya están
|
|
|
187
176
|
```
|
|
188
177
|
|
|
189
178
|
</Tab>
|
|
190
|
-
<Tab label="Preact">
|
|
179
|
+
<Tab label="Preact" value="preact">
|
|
191
180
|
Preact admite nodos HTML directamente en el JSX.
|
|
192
181
|
|
|
193
182
|
```tsx fileName="App.tsx"
|
|
@@ -200,7 +189,7 @@ Cuando accedes al contenido a través de `useIntlayer`, los nodos HTML ya están
|
|
|
200
189
|
```
|
|
201
190
|
|
|
202
191
|
</Tab>
|
|
203
|
-
<Tab label="Solid">
|
|
192
|
+
<Tab label="Solid" value="solid">
|
|
204
193
|
Solid admite nodos HTML directamente en el JSX.
|
|
205
194
|
|
|
206
195
|
```tsx fileName="App.tsx"
|
|
@@ -213,7 +202,7 @@ Cuando accedes al contenido a través de `useIntlayer`, los nodos HTML ya están
|
|
|
213
202
|
```
|
|
214
203
|
|
|
215
204
|
</Tab>
|
|
216
|
-
<Tab label="Angular">
|
|
205
|
+
<Tab label="Angular" value="angular">
|
|
217
206
|
Angular utiliza la directiva `[innerHTML]` para renderizar contenido HTML.
|
|
218
207
|
|
|
219
208
|
```typescript fileName="app.component.ts"
|
|
@@ -246,7 +235,7 @@ Cuando accedes al contenido a través de `useIntlayer`, los nodos HTML ya están
|
|
|
246
235
|
Puedes configurar el renderizado de HTML de forma global para toda tu aplicación. Esto es ideal para definir componentes personalizados que deben estar disponibles en todo el contenido 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 @@ Puedes configurar el renderizado de HTML de forma global para toda tu aplicació
|
|
|
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 @@ Puedes configurar el renderizado de HTML de forma global para toda tu aplicació
|
|
|
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 @@ Puedes configurar el renderizado de HTML de forma global para toda tu aplicació
|
|
|
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 @@ Puedes configurar el renderizado de HTML de forma global para toda tu aplicació
|
|
|
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 @@ Puedes configurar el renderizado de HTML de forma global para toda tu aplicació
|
|
|
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 @@ Puedes configurar el renderizado de HTML de forma global para toda tu aplicació
|
|
|
364
353
|
Si necesitas renderizar cadenas de HTML sin procesar o tener más control sobre el mapeo de componentes, utiliza las siguientes herramientas.
|
|
365
354
|
|
|
366
355
|
<Tabs group="framework">
|
|
367
|
-
<Tab label="React / Next.js">
|
|
356
|
+
<Tab label="React / Next.js" value="react">
|
|
368
357
|
#### Componente `<HTMLRenderer />`
|
|
369
358
|
Renderiza una cadena HTML con componentes específicos.
|
|
370
359
|
|
|
@@ -401,7 +390,7 @@ Si necesitas renderizar cadenas de HTML sin procesar o tener más control sobre
|
|
|
401
390
|
```
|
|
402
391
|
|
|
403
392
|
</Tab>
|
|
404
|
-
<Tab label="Vue">
|
|
393
|
+
<Tab label="Vue" value="vue">
|
|
405
394
|
|
|
406
395
|
#### Componente `<HTMLRenderer />`
|
|
407
396
|
|
|
@@ -416,7 +405,7 @@ Si necesitas renderizar cadenas de HTML sin procesar o tener más control sobre
|
|
|
416
405
|
```
|
|
417
406
|
|
|
418
407
|
</Tab>
|
|
419
|
-
<Tab label="Svelte">
|
|
408
|
+
<Tab label="Svelte" value="svelte">
|
|
420
409
|
|
|
421
410
|
#### Componente `<HTMLRenderer />`
|
|
422
411
|
|
|
@@ -450,7 +439,7 @@ Si necesitas renderizar cadenas de HTML sin procesar o tener más control sobre
|
|
|
450
439
|
```
|
|
451
440
|
|
|
452
441
|
</Tab>
|
|
453
|
-
<Tab label="Preact">
|
|
442
|
+
<Tab label="Preact" value="preact">
|
|
454
443
|
|
|
455
444
|
#### Componente `<HTMLRenderer />`
|
|
456
445
|
|
|
@@ -481,7 +470,7 @@ Si necesitas renderizar cadenas de HTML sin procesar o tener más control sobre
|
|
|
481
470
|
```
|
|
482
471
|
|
|
483
472
|
</Tab>
|
|
484
|
-
<Tab label="Solid">
|
|
473
|
+
<Tab label="Solid" value="solid">
|
|
485
474
|
|
|
486
475
|
#### Componente `<HTMLRenderer />`
|
|
487
476
|
|
|
@@ -512,7 +501,7 @@ Si necesitas renderizar cadenas de HTML sin procesar o tener más control sobre
|
|
|
512
501
|
```
|
|
513
502
|
|
|
514
503
|
</Tab>
|
|
515
|
-
<Tab label="Angular">
|
|
504
|
+
<Tab label="Angular" value="angular">
|
|
516
505
|
#### Servicio `IntlayerMarkdownService`
|
|
517
506
|
Renderiza una cadena HTML utilizando el servicio.
|
|
518
507
|
|
|
@@ -32,48 +32,12 @@ history:
|
|
|
32
32
|
|
|
33
33
|
Intlayer admite contenido de texto enriquecido definido mediante la sintaxis Markdown. Esto le permite escribir y mantener fácilmente contenido con un formato enriquecido, como blogs, artículos y más.
|
|
34
34
|
|
|
35
|
-
## Cómo funciona Markdown
|
|
36
|
-
|
|
37
|
-
Intlayer v8 detecta inteligentemente la sintaxis Markdown en sus cadenas de contenido. Si una cadena se identifica como Markdown, se transforma automáticamente en un nodo Markdown.
|
|
38
|
-
|
|
39
|
-
<Columns>
|
|
40
|
-
<Column title="Comportamiento en v7 (Envoltura manual)">
|
|
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="Comportamiento en v8 (Detección automática)">
|
|
55
|
-
|
|
56
|
-
```typescript fileName="markdownDictionary.content.ts"
|
|
57
|
-
export default {
|
|
58
|
-
key: "app",
|
|
59
|
-
contentAutoTransformation: true, // Habilitar la detección automática de contenido Markdown - Se puede configurar globalmente en 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
|
## Parte 1: Declarar Contenido Markdown
|
|
72
36
|
|
|
73
37
|
Puede declarar contenido Markdown mediante la función `md` o simplemente como una cadena (si contiene sintaxis Markdown).
|
|
74
38
|
|
|
75
39
|
<Tabs>
|
|
76
|
-
<Tab label="Envoltura Manual">
|
|
40
|
+
<Tab label="Envoltura Manual" value="manual-wrapping">
|
|
77
41
|
Utilice la función `md` para declarar explícitamente contenido Markdown. Esto es útil si desea asegurarse de que una cadena se trate como Markdown incluso si no contiene una sintaxis obvia.
|
|
78
42
|
|
|
79
43
|
```typescript fileName="markdownDictionary.content.ts"
|
|
@@ -90,7 +54,7 @@ Puede declarar contenido Markdown mediante la función `md` o simplemente como u
|
|
|
90
54
|
```
|
|
91
55
|
|
|
92
56
|
</Tab>
|
|
93
|
-
<Tab label="Detección Automática">
|
|
57
|
+
<Tab label="Detección Automática" value="automatic-detection">
|
|
94
58
|
Si la cadena contiene indicadores comunes de Markdown (como encabezados, listas, enlaces, etc.), Intlayer la transformará automáticamente.
|
|
95
59
|
|
|
96
60
|
```typescript fileName="markdownDictionary.content.ts"
|
|
@@ -104,7 +68,7 @@ Puede declarar contenido Markdown mediante la función `md` o simplemente como u
|
|
|
104
68
|
```
|
|
105
69
|
|
|
106
70
|
</Tab>
|
|
107
|
-
<Tab label="Archivos Externos">
|
|
71
|
+
<Tab label="Archivos Externos" value="external-files">
|
|
108
72
|
Importe archivos `.md` directamente mediante la función `file`.
|
|
109
73
|
|
|
110
74
|
```typescript fileName="markdownDictionary.content.ts"
|
|
@@ -135,7 +99,7 @@ El renderizado puede ser gestionado automáticamente por el sistema de contenido
|
|
|
135
99
|
Cuando accede al contenido a través de `useIntlayer`, los nodos Markdown ya están preparados para el renderizado.
|
|
136
100
|
|
|
137
101
|
<Tabs group="framework">
|
|
138
|
-
<Tab label="React / Next.js">
|
|
102
|
+
<Tab label="React / Next.js" value="react">
|
|
139
103
|
Los nodos Markdown se pueden renderizar directamente como JSX.
|
|
140
104
|
|
|
141
105
|
```tsx fileName="App.tsx"
|
|
@@ -156,7 +120,7 @@ Cuando accede al contenido a través de `useIntlayer`, los nodos Markdown ya est
|
|
|
156
120
|
```
|
|
157
121
|
|
|
158
122
|
</Tab>
|
|
159
|
-
<Tab label="Vue">
|
|
123
|
+
<Tab label="Vue" value="vue">
|
|
160
124
|
En Vue, el contenido Markdown se puede renderizar mediante el componente integrado `component` o directamente como un nodo.
|
|
161
125
|
|
|
162
126
|
```vue fileName="App.vue"
|
|
@@ -171,7 +135,7 @@ Cuando accede al contenido a través de `useIntlayer`, los nodos Markdown ya est
|
|
|
171
135
|
```
|
|
172
136
|
|
|
173
137
|
</Tab>
|
|
174
|
-
<Tab label="Svelte">
|
|
138
|
+
<Tab label="Svelte" value="svelte">
|
|
175
139
|
Svelte renderiza Markdown como una cadena HTML por defecto. Utilice `{@html}` para renderizarlo.
|
|
176
140
|
|
|
177
141
|
```svelte
|
|
@@ -184,7 +148,7 @@ Cuando accede al contenido a través de `useIntlayer`, los nodos Markdown ya est
|
|
|
184
148
|
```
|
|
185
149
|
|
|
186
150
|
</Tab>
|
|
187
|
-
<Tab label="Preact">
|
|
151
|
+
<Tab label="Preact" value="preact">
|
|
188
152
|
Preact admite nodos Markdown directamente en el JSX.
|
|
189
153
|
|
|
190
154
|
```tsx fileName="App.tsx"
|
|
@@ -197,7 +161,7 @@ Cuando accede al contenido a través de `useIntlayer`, los nodos Markdown ya est
|
|
|
197
161
|
```
|
|
198
162
|
|
|
199
163
|
</Tab>
|
|
200
|
-
<Tab label="Solid">
|
|
164
|
+
<Tab label="Solid" value="solid">
|
|
201
165
|
Solid admite nodos Markdown directamente en el JSX.
|
|
202
166
|
|
|
203
167
|
```tsx fileName="App.tsx"
|
|
@@ -210,7 +174,7 @@ Cuando accede al contenido a través de `useIntlayer`, los nodos Markdown ya est
|
|
|
210
174
|
```
|
|
211
175
|
|
|
212
176
|
</Tab>
|
|
213
|
-
<Tab label="Angular">
|
|
177
|
+
<Tab label="Angular" value="angular">
|
|
214
178
|
Angular utiliza la directiva `[innerHTML]` para renderizar contenido Markdown.
|
|
215
179
|
|
|
216
180
|
```typescript fileName="app.component.ts"
|
|
@@ -242,7 +206,7 @@ Cuando accede al contenido a través de `useIntlayer`, los nodos Markdown ya est
|
|
|
242
206
|
Si necesita renderizar cadenas de Markdown sin procesar o tener más control sobre el proceso de renderizado, utilice las siguientes herramientas.
|
|
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
|
#### Componente `<MarkdownRenderer />`
|
|
248
212
|
|
|
@@ -281,7 +245,7 @@ Si necesita renderizar cadenas de Markdown sin procesar o tener más control sob
|
|
|
281
245
|
```
|
|
282
246
|
|
|
283
247
|
</Tab>
|
|
284
|
-
<Tab label="Vue">
|
|
248
|
+
<Tab label="Vue" value="vue">
|
|
285
249
|
|
|
286
250
|
#### Componente `<MarkdownRenderer />`
|
|
287
251
|
|
|
@@ -296,7 +260,7 @@ Si necesita renderizar cadenas de Markdown sin procesar o tener más control sob
|
|
|
296
260
|
```
|
|
297
261
|
|
|
298
262
|
</Tab>
|
|
299
|
-
<Tab label="Svelte">
|
|
263
|
+
<Tab label="Svelte" value="svelte">
|
|
300
264
|
|
|
301
265
|
#### Componente `<MarkdownRenderer />`
|
|
302
266
|
|
|
@@ -330,7 +294,7 @@ Si necesita renderizar cadenas de Markdown sin procesar o tener más control sob
|
|
|
330
294
|
```
|
|
331
295
|
|
|
332
296
|
</Tab>
|
|
333
|
-
<Tab label="Preact">
|
|
297
|
+
<Tab label="Preact" value="preact">
|
|
334
298
|
#### Componente `<MarkdownRenderer />`
|
|
335
299
|
|
|
336
300
|
```tsx
|
|
@@ -360,7 +324,7 @@ Si necesita renderizar cadenas de Markdown sin procesar o tener más control sob
|
|
|
360
324
|
```
|
|
361
325
|
|
|
362
326
|
</Tab>
|
|
363
|
-
<Tab label="Solid">
|
|
327
|
+
<Tab label="Solid" value="solid">
|
|
364
328
|
#### Componente `<MarkdownRenderer />`
|
|
365
329
|
|
|
366
330
|
```tsx
|
|
@@ -390,7 +354,7 @@ Si necesita renderizar cadenas de Markdown sin procesar o tener más control sob
|
|
|
390
354
|
```
|
|
391
355
|
|
|
392
356
|
</Tab>
|
|
393
|
-
<Tab label="Angular">
|
|
357
|
+
<Tab label="Angular" value="angular">
|
|
394
358
|
#### Servicio `IntlayerMarkdownService`
|
|
395
359
|
Renderiza una cadena Markdown mediante el servicio.
|
|
396
360
|
|
|
@@ -416,7 +380,7 @@ Si necesita renderizar cadenas de Markdown sin procesar o tener más control sob
|
|
|
416
380
|
Puede configurar el renderizado de Markdown de forma global para toda su aplicación. Esto evita pasar las mismas props a cada renderizador.
|
|
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 @@ Puede configurar el renderizado de Markdown de forma global para toda su aplicac
|
|
|
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 @@ Puede configurar el renderizado de Markdown de forma global para toda su aplicac
|
|
|
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 @@ Puede configurar el renderizado de Markdown de forma global para toda su aplicac
|
|
|
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 @@ Puede configurar el renderizado de Markdown de forma global para toda su aplicac
|
|
|
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 @@ Puede configurar el renderizado de Markdown de forma global para toda su aplicac
|
|
|
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/es/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
|
¡Bienvenido a Intlayer v8! Esta versión se centra en mejorar la experiencia del desarrollador con la detección automática de contenido, garantizar la integridad de los datos con la validación de esquemas y proporcionar más control sobre la gestión de diccionarios.
|
|
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
|
## Tabla de contenidos
|
|
26
35
|
|
|
27
36
|
<TOC levels={[2]} maxDepth={1} />
|
|
@@ -1198,8 +1207,8 @@ El contenido Markdown y HTML en Svelte ahora se analiza automáticamente a HTML
|
|
|
1198
1207
|
|
|
1199
1208
|
### Cambios en la configuración
|
|
1200
1209
|
|
|
1201
|
-
- **Propiedad `live`**: La propiedad `live` en los diccionarios
|
|
1202
|
-
- **
|
|
1210
|
+
- **Propiedad `live`**: La propiedad `live` en los diccionarios ha sido eliminada. Use `importMode: 'fetch'` en su lugar.
|
|
1211
|
+
- **importMode**: La propiedad `build.importMode` en la configuración ha sido obsoleta. Use `dictionary.importMode` en su lugar.
|
|
1203
1212
|
- **`contentDir` y `codeDir`**: `contentDir` ahora es específicamente para archivos de contenido. Se ha añadido una nueva propiedad `codeDir` para la transformación del código. Si `codeDir` no está configurado, Intlayer recurrirá a `contentDir` y registrará una advertencia.
|
|
1204
1213
|
- **Validación del esquema**: Para utilizar la nueva función `schema`, asegúrese de tener `zod` instalado en su proyecto.
|
|
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: Fichier de Contenu
|
|
5
5
|
description: Apprenez à personnaliser les extensions pour vos fichiers de déclaration de contenu. Suivez cette documentation pour implémenter efficacement des conditions dans votre projet.
|
|
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: Ajout du type de nœud de contenu `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.
|
|
@@ -81,6 +84,7 @@ interface Content {
|
|
|
81
84
|
quantityContent: string;
|
|
82
85
|
conditionalContent: string;
|
|
83
86
|
markdownContent: never;
|
|
87
|
+
htmlContent: never;
|
|
84
88
|
externalContent: string;
|
|
85
89
|
insertionContent: string;
|
|
86
90
|
nestedContent: string;
|
|
@@ -125,6 +129,7 @@ export default {
|
|
|
125
129
|
fileContent: file("./path/to/file.txt"),
|
|
126
130
|
externalContent: fetch("https://example.com").then((res) => res.json()),
|
|
127
131
|
markdownContent: md("# Exemple Markdown"),
|
|
132
|
+
htmlContent: html("<p>Hello <strong>World</strong></p>"),
|
|
128
133
|
|
|
129
134
|
/*
|
|
130
135
|
* Disponible uniquement avec `react-intlayer` ou `next-intlayer`
|
|
@@ -174,6 +179,7 @@ export default {
|
|
|
174
179
|
"login.button" // [Optionnel] Le chemin vers le contenu à imbriquer
|
|
175
180
|
),
|
|
176
181
|
markdownContent: md("# Exemple Markdown"),
|
|
182
|
+
htmlContent: html("<p>Hello <strong>World</strong></p>"),
|
|
177
183
|
fileContent: file("./path/to/file.txt"),
|
|
178
184
|
externalContent: fetch("https://example.com").then((res) => res.json())
|
|
179
185
|
|
|
@@ -223,6 +229,7 @@ module.exports = {
|
|
|
223
229
|
"login.button" // [Optionnel] Le chemin vers le contenu à imbriquer
|
|
224
230
|
),
|
|
225
231
|
markdownContent: md("# Exemple Markdown"),
|
|
232
|
+
htmlContent: html("<p>Hello <strong>World</strong></p>"),
|
|
226
233
|
fileContent: file("./path/to/file.txt"),
|
|
227
234
|
externalContent: fetch("https://example.com").then((res) => res.json())
|
|
228
235
|
|
|
@@ -284,6 +291,10 @@ module.exports = {
|
|
|
284
291
|
"nodeType": "markdown",
|
|
285
292
|
"markdown": "# Exemple de Markdown",
|
|
286
293
|
},
|
|
294
|
+
"htmlContent": {
|
|
295
|
+
"nodeType": "html",
|
|
296
|
+
"html": "<p>Hello <strong>World</strong></p>",
|
|
297
|
+
},
|
|
287
298
|
"fileContent": {
|
|
288
299
|
"nodeType": "file",
|
|
289
300
|
"file": "./path/to/file.txt",
|
|
@@ -318,6 +329,7 @@ Intlayer prend en charge divers types de contenu via des nœuds typés :
|
|
|
318
329
|
- **Contenu d'énumération** : Contenu qui varie en fonction de valeurs énumérées [voir Contenu d'énumération](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/enumeration_content.md)
|
|
319
330
|
- **Contenu d'insertion** : Contenu pouvant être inséré dans un autre contenu [voir Contenu d'insertion](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/insertion_content.md)
|
|
320
331
|
- **Contenu Markdown** : Contenu en texte enrichi au format Markdown [voir Contenu Markdown](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/markdown_content.md)
|
|
332
|
+
- **Contenu HTML** : Contenu HTML riche avec des composants personnalisés optionnels [voir Contenu HTML](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/html.md)
|
|
321
333
|
- **Contenu Imbriqué** : Références à d’autres dictionnaires [voir Contenu Imbriqué](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/nested_content.md)
|
|
322
334
|
- **Contenu Genré** : Contenu qui varie selon le genre [voir Contenu Genré](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/gender_content.md)
|
|
323
335
|
- **Contenu Fichier** : Références à des fichiers externes [voir Contenu Fichier](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/file_content.md)
|
|
@@ -683,6 +695,23 @@ markdownContent: md(
|
|
|
683
695
|
);
|
|
684
696
|
```
|
|
685
697
|
|
|
698
|
+
### Contenu HTML (`html`)
|
|
699
|
+
|
|
700
|
+
Contenu HTML riche pouvant utiliser des balises standard ou des composants personnalisés :
|
|
701
|
+
|
|
702
|
+
```typescript
|
|
703
|
+
import { html, file, t } from "intlayer";
|
|
704
|
+
|
|
705
|
+
// HTML en ligne
|
|
706
|
+
htmlContent: html("<p>Hello <strong>World</strong></p>");
|
|
707
|
+
|
|
708
|
+
// HTML par locale à partir de fichiers externes
|
|
709
|
+
localizedHtmlContent: t({
|
|
710
|
+
en: html(file("./content.en.html")),
|
|
711
|
+
fr: html(file("./content.fr.html")),
|
|
712
|
+
});
|
|
713
|
+
```
|
|
714
|
+
|
|
686
715
|
### Contenu selon le genre (`gender`)
|
|
687
716
|
|
|
688
717
|
Contenu qui varie selon le genre :
|