@intlayer/docs 8.10.0-canary.0 → 8.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@
2
2
  createdAt: 2025-02-07
3
3
  updatedAt: 2026-05-19
4
4
  title: Markdown
5
- description: Apprenez à déclarer et à utiliser du contenu Markdown dans votre site Web multilingue avec Intlayer. Suivez les étapes de cette documentation en ligne pour intégrer Markdown de manière transparente dans votre projet.
5
+ description: Découvrez comment déclarer et utiliser du contenu Markdown sur votre site multilingue avec Intlayer. Suivez les étapes de cette documentation en ligne pour intégrer facilement Markdown à votre projet.
6
6
  keywords:
7
7
  - Markdown
8
8
  - Internationalisation
@@ -19,51 +19,51 @@ slugs:
19
19
  history:
20
20
  - version: 8.10.0
21
21
  date: 2026-05-19
22
- changes: "Ajouter la prise en charge des fichiers `.content.md`"
22
+ changes: "Ajout de la prise en charge des fichiers `.content.md`"
23
23
  - version: 8.5.0
24
24
  date: 2026-03-24
25
- changes: "Add `intlayerMarkdown` plugin object; use `app.use(intlayerMarkdown)` instead of `app.use(installIntlayerMarkdown)`"
25
+ changes: "Ajout de l'objet plugin `intlayerMarkdown` ; utilisez `app.use(intlayerMarkdown)` au lieu de `app.use(installIntlayerMarkdown)`"
26
26
  - version: 8.5.0
27
27
  date: 2026-03-24
28
- changes: "déplacer l'importation de {{framework}}-intlayer vers {{framework}}-intlayer/markdown"
28
+ changes: "Déplacement de l'import depuis `{{framework}}-intlayer` vers `{{framework}}-intlayer/markdown`"
29
29
  - version: 8.0.0
30
30
  date: 2026-01-22
31
- changes: "Ajouter MarkdownRenderer / useMarkdownRenderer / utilitaire renderMarkdown et option forceInline"
31
+ changes: "Ajout de MarkdownRenderer / useMarkdownRenderer / renderMarkdown et de l'option forceInline"
32
32
  - version: 8.0.0
33
33
  date: 2026-01-18
34
- changes: "Décoration automatique du contenu markdown, support MDX et SSR"
34
+ changes: "Décoration automatique du contenu markdown, prise en charge de MDX et SSR"
35
35
  - version: 5.5.10
36
36
  date: 2025-06-29
37
37
  changes: "Initialisation de l'historique"
38
38
  ---
39
39
 
40
- # Markdown / Contenu Riche en Texte
40
+ # Markdown / Contenu Texte Riche
41
41
 
42
- Intlayer prend en charge le contenu riche en texte défini à l'aide de la syntaxe Markdown. Cela vous permet d'écrire et de maintenir facilement du contenu avec une mise en forme riche, comme des blogs, des articles, et plus encore.
42
+ Intlayer prend en charge le contenu texte riche défini à l'aide de la syntaxe Markdown. Cela vous permet de rédiger et de gérer facilement du contenu avec une mise en forme avancée, comme des blogs, des articles, et bien plus encore.
43
43
 
44
- ## Déclarer du contenu Markdown
44
+ ## Déclarer du Contenu Markdown
45
45
 
46
- Vous pouvez déclarer du contenu Markdown à l'aide de la fonction `md` ou simplement sous forme de chaîne de caractères (si elle contient la syntaxe Markdown).
46
+ Vous pouvez déclarer du contenu Markdown en utilisant la fonction `md` ou simplement comme une chaîne de caractères (si elle contient de la syntaxe Markdown).
47
47
 
48
48
  <Tabs>
49
49
  <Tab label=".content.md" value=".content.md">
50
- Depuis la version `8.10.0`, vous pouvez déclarer du contenu Markdown directement dans les fichiers `.content.md`. Intlayer détectera et analysera automatiquement le contenu Markdown.
50
+ Depuis la version `8.10.0`, vous pouvez déclarer du contenu Markdown directement dans des fichiers `.content.md`. Intlayer détectera et analysera automatiquement le contenu Markdown.
51
51
 
52
- ```md fileName="markdown-file.fr.content.md"
52
+ ```md fileName="markdown-file.en.content.md"
53
53
  ---
54
54
  key: my-markdown-content
55
55
  description: Mon contenu
56
- locale: fr
56
+ locale: en
57
57
  ---
58
58
 
59
59
  # Mon contenu
60
60
 
61
- Voici un exemple de contenu Markdown
61
+ Voici un exemple de contenu markdown
62
62
  ```
63
63
 
64
- Le champ de front-matter `locale` est le champ qui définit la langue du contenu. Il est facultatif. S'il n'est pas fourni, Intlayer utilisera la langue par défaut, qui est également utilisée comme langue de secours si aucune traduction n'est disponible pour une langue spécifique.
64
+ Le champ front-matter `locale` permet de définir la langue du contenu. Il est optionnel. S'il n'est pas fourni, Intlayer utilisera la langue par défaut, qui sert également de langue de secours si aucune traduction n'est disponible pour une langue spécifique.
65
65
 
66
- Exemple de structure de fichier :
66
+ Exemple de structure de fichiers :
67
67
 
68
68
  ```text
69
69
  content/
@@ -75,10 +75,10 @@ Vous pouvez déclarer du contenu Markdown à l'aide de la fonction `md` ou simpl
75
75
  └── markdown-file.es.content.md
76
76
  ```
77
77
 
78
- Vous pouvez ajouter dans le front-matter toutes les propriétés définies dans la [définition du Dictionnaire](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/content_file.md)
78
+ Vous pouvez ajouter dans le front-matter n'importe quelle propriété définie dans la [Définition du dictionnaire](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/dictionary/content_file.md)
79
79
 
80
80
  </Tab>
81
- <Tab label="Enveloppement Manuel" value="manual-wrapping">
81
+ <Tab label="Encapsulation Manuelle" value="manual-wrapping">
82
82
  Utilisez la fonction `md` pour déclarer explicitement du contenu Markdown. Cela est utile si vous voulez vous assurer qu'une chaîne est traitée comme du Markdown même si elle ne contient pas de syntaxe évidente.
83
83
 
84
84
  ```typescript fileName="markdownDictionary.content.ts"
@@ -87,7 +87,7 @@ Vous pouvez déclarer du contenu Markdown à l'aide de la fonction `md` ou simpl
87
87
  const markdownDictionary = {
88
88
  key: "app",
89
89
  content: {
90
- myMarkdownContent: md("## My title \n\nLorem Ipsum"),
90
+ myMarkdownContent: md("## Mon titre \n\nLorem Ipsum"),
91
91
  },
92
92
  } satisfies Dictionary;
93
93
 
@@ -95,33 +95,34 @@ Vous pouvez déclarer du contenu Markdown à l'aide de la fonction `md` ou simpl
95
95
  ```
96
96
 
97
97
  </Tab>
98
- <Tab label="Détection Automatique" value="automatic-detection">
99
- Si la chaîne contient des indicateurs Markdown courants (comme des titres, des listes, des liens, etc.), Intlayer la transformera automatiquement.
98
+ <Tab label="Fichiers Externes" value="external-files">
99
+ Importez des fichiers `.md` directement en utilisant la fonction `file`.
100
100
 
101
101
  ```typescript fileName="markdownDictionary.content.ts"
102
+ import { md, file, t } from "intlayer";
103
+
102
104
  export default {
103
105
  key: "app",
104
- contentAutoTransformation: true, // Activer la détection automatique du contenu Markdown - Peut être défini globalement dans intlayer.config.ts
105
106
  content: {
106
- myMarkdownContent: "## My title \n\nLorem Ipsum",
107
+ content: t({
108
+ en: md(file("./myMarkdown.en.md")),
109
+ fr: md(file("./myMarkdown.fr.md")),
110
+ }),
107
111
  },
108
112
  };
109
113
  ```
110
114
 
111
115
  </Tab>
112
- <Tab label="Fichiers Externes" value="external-files">
113
- Importez des fichiers `.md` directement à l'aide de la fonction `file`.
114
116
 
115
- ```typescript fileName="markdownDictionary.content.ts"
116
- import { md, file, t } from "intlayer";
117
+ <Tab label="Détection Automatique" value="automatic-detection">
118
+ Si la chaîne de caractères contient des indicateurs Markdown courants (comme des en-têtes, des listes, des liens, etc.), Intlayer la transformera automatiquement.
117
119
 
120
+ ```typescript fileName="markdownDictionary.content.ts"
118
121
  export default {
119
122
  key: "app",
123
+ contentAutoTransformation: true, // Activer la détection automatique du Markdown - Peut être défini globalement dans intlayer.config.ts
120
124
  content: {
121
- content: t({
122
- en: md(file("./myMarkdown.en.md")),
123
- fr: md(file("./myMarkdown.fr.md")),
124
- }),
125
+ myMarkdownContent: "## Mon titre \n\nLorem Ipsum",
125
126
  },
126
127
  };
127
128
  ```
@@ -131,38 +132,74 @@ Vous pouvez déclarer du contenu Markdown à l'aide de la fonction `md` ou simpl
131
132
 
132
133
  ---
133
134
 
134
- ## Rendu du Markdown
135
+ ## Rendu Markdown
136
+
137
+ Intlayer propose deux manières indépendantes de rendre du Markdown :
138
+
139
+ 1. **Via `useIntlayer`**
140
+ — Intlayer transforme automatiquement le nœud `md` dans le format natif du framework (JSX, VNode, chaîne HTML).
141
+ - Le frontmatter est analysé et exposé sous `.metadata`. Vous pouvez remplacer le rendu à deux niveaux — globalement avec `MarkdownProvider` (ou l'équivalent du framework) et localement par nœud avec `.use()`. Les deux peuvent être combinés ; `.use()` est prioritaire sur `MarkdownProvider`, qui est lui-même prioritaire sur le rendu par défaut.
135
142
 
136
- Le rendu peut être géré automatiquement par le système de contenu d'Intlayer ou manuellement à l'aide d'outils spécialisés.
143
+ 2. **Utilitaires d'aide** `<MarkdownRenderer />`, `useMarkdownRenderer()` et `renderMarkdown()` sont des outils indépendants qui n'acceptent que **des chaînes Markdown brutes**. Ils sont indépendants de `useIntlayer` et ne fonctionnent pas avec les nœuds décorés qu'il retourne.
137
144
 
138
- ### 1. Rendu Automatique (en utilisant `useIntlayer`)
145
+ Le rendu Markdown prend en charge **MDX** — utilisez n'importe quel composant JSX/framework par son nom directement dans votre Markdown.
139
146
 
140
- Lorsque vous accédez au contenu via `useIntlayer`, les nœuds Markdown sont déjà préparés pour le rendu.
147
+ ### 1. Rendu Automatique (via `useIntlayer`)
141
148
 
142
149
  <Tabs group="framework">
143
150
  <Tab label="React / Next.js" value="react">
144
- Les nœuds Markdown peuvent être rendus directement en JSX.
151
+ Les nœuds Markdown peuvent être rendus directement sous forme de JSX.
145
152
 
146
153
  ```tsx fileName="App.tsx"
147
154
  import { useIntlayer } from "react-intlayer";
155
+ import { MarkdownProvider } from "react-intlayer/markdown";
148
156
 
149
157
  const AppContent = () => {
150
158
  const { myMarkdownContent } = useIntlayer("app");
159
+
151
160
  return <div>{myMarkdownContent}</div>;
152
161
  };
162
+
163
+ const App = () => (
164
+ <MarkdownProvider
165
+ components={{
166
+ h1: ({ children }) => <h1 style={{ color: "red" }}>{children}</h1>,
167
+ MyButton: (props) => <button {...props} />, // Composant MDX
168
+ }}
169
+ >
170
+ <AppContent />
171
+ </MarkdownProvider>
172
+ );
153
173
  ```
154
174
 
155
- Vous pouvez également fournir des surcharges locales pour des nœuds spécifiques à l'aide de la méthode `.use()` :
175
+ > Si `MarkdownProvider` n'est pas présent, Intlayer rendra le markdown en utilisant le parser par défaut de Markdown vers JSX.
176
+
177
+ Vous pouvez également fournir des remplacements locaux pour des nœuds spécifiques en utilisant la méthode `.use()` :
156
178
 
157
179
  ```tsx
158
180
  {myMarkdownContent.use({
159
- h1: ({ children }) => <h1 className="text-3xl font-bold">{children}</h1>,
181
+ h1: ({ children }) => <h1 style={{ color: "red" }}>{children}</h1>,
160
182
  })}
161
183
  ```
162
184
 
185
+ Vous pouvez récupérer le Markdown sous forme de chaîne de caractères :
186
+
187
+ ```tsx
188
+ {myMarkdownContent.value}
189
+ {String(myMarkdownContent)}
190
+ {myMarkdownContent.toString()}
191
+ ```
192
+
193
+ Et vous pouvez accéder aux métadonnées de votre markdown comme ceci :
194
+
195
+ ```tsx
196
+ {myMarkdownContent.metadata}
197
+ {myMarkdownContent.metadata.title}
198
+ ```
199
+
163
200
  </Tab>
164
201
  <Tab label="Vue" value="vue">
165
- Dans Vue, le contenu Markdown peut être rendu à l'aide du composant intégré `component` ou directement sous forme de nœud.
202
+ Dans Vue, le contenu Markdown peut être rendu en utilisant la balise `component` intégrée ou directement comme un nœud.
166
203
 
167
204
  ```vue fileName="App.vue"
168
205
  <script setup>
@@ -175,48 +212,188 @@ Lorsque vous accédez au contenu via `useIntlayer`, les nœuds Markdown sont dé
175
212
  </template>
176
213
  ```
177
214
 
215
+ Configurez globalement via le plugin `intlayerMarkdown` (prend en charge les composants personnalisés MDX) :
216
+
217
+ ```ts fileName="main.ts"
218
+ import { intlayerMarkdown } from "vue-intlayer/markdown";
219
+
220
+ app.use(intlayerMarkdown, {
221
+ components: {
222
+ h1: (props) => h('h1', { style: { color: 'green' } }, props.children),
223
+ MyButton: (props) => h('button', props), // Composant MDX
224
+ },
225
+ });
226
+ ```
227
+
228
+ > Si le plugin `intlayerMarkdown` n'est pas installé, Intlayer effectuera le rendu avec le compilateur par défaut.
229
+
230
+ Vous pouvez également fournir des remplacements locaux pour des nœuds spécifiques en utilisant la méthode `.use()` :
231
+
232
+ ```vue
233
+ <component :is="myMarkdownContent.use({
234
+ h1: (props) => h('h1', { style: { color: 'red' } }, props.children),
235
+ })" />
236
+ ```
237
+
238
+ Vous pouvez récupérer le Markdown sous forme de chaîne de caractères :
239
+
240
+ ```vue
241
+ {{ myMarkdownContent.value }}
242
+ {{ String(myMarkdownContent) }}
243
+ {{ myMarkdownContent.toString() }}
244
+ ```
245
+
246
+ Et vous pouvez accéder aux métadonnées de votre markdown comme ceci :
247
+
248
+ ```vue
249
+ <component :is="myMarkdownContent.metadata" />
250
+ <component :is="myMarkdownContent.metadata.title" />
251
+ ```
252
+
178
253
  </Tab>
179
254
  <Tab label="Svelte" value="svelte">
180
255
  Svelte rend le Markdown sous forme de chaîne HTML par défaut. Utilisez `{@html}` pour le rendre.
181
256
 
182
- ```svelte
257
+ ```svelte fileName="App.svelte"
183
258
  <script lang="ts">
184
259
  import { useIntlayer } from "svelte-intlayer";
260
+ import { MarkdownProvider } from "svelte-intlayer/markdown";
261
+ import MyHeading from "./MyHeading.svelte";
262
+
185
263
  const content = useIntlayer("app");
186
264
  </script>
187
265
 
188
- {@html $content.myMarkdownContent}
266
+ <MarkdownProvider components={{ h1: MyHeading }}>
267
+ {@html $content.myMarkdownContent}
268
+ </MarkdownProvider>
269
+ ```
270
+
271
+ > Si `MarkdownProvider` n'est pas présent, Intlayer rendra le markdown avec le compilateur par défaut.
272
+
273
+ Vous pouvez également fournir des remplacements locaux pour des nœuds spécifiques en utilisant la méthode `.use()` :
274
+
275
+ ```svelte
276
+ {@html $content.myMarkdownContent.use({ ... })}
277
+ ```
278
+
279
+ Vous pouvez récupérer le Markdown sous forme de chaîne de caractères :
280
+
281
+ ```svelte
282
+ {$content.myMarkdownContent.value}
283
+ {String($content.myMarkdownContent)}
284
+ {$content.myMarkdownContent.toString()}
285
+ ```
286
+
287
+ Et vous pouvez accéder aux métadonnées de votre markdown comme ceci :
288
+
289
+ ```svelte
290
+ {$content.myMarkdownContent.metadata}
291
+ {$content.myMarkdownContent.metadata.title}
189
292
  ```
190
293
 
191
294
  </Tab>
192
295
  <Tab label="Preact" value="preact">
193
- Preact prend en charge les nœuds Markdown directement dans le JSX.
296
+ Preact prend en charge les nœuds Markdown directement en JSX.
194
297
 
195
298
  ```tsx fileName="App.tsx"
196
299
  import { useIntlayer } from "preact-intlayer";
300
+ import { MarkdownProvider } from "preact-intlayer/markdown";
197
301
 
198
302
  const AppContent = () => {
199
303
  const { myMarkdownContent } = useIntlayer("app");
200
304
  return <div>{myMarkdownContent}</div>;
201
305
  };
306
+
307
+ const App = () => (
308
+ <MarkdownProvider
309
+ components={{
310
+ h1: ({ children }) => <h1 style={{ color: "red" }}>{children}</h1>,
311
+ MyButton: (props) => <button {...props} />, // Composant MDX
312
+ }}
313
+ >
314
+ <AppContent />
315
+ </MarkdownProvider>
316
+ );
317
+ ```
318
+
319
+ > Si `MarkdownProvider` n'est pas présent, Intlayer rendra le markdown en utilisant le parser par défaut de Markdown vers JSX.
320
+
321
+ Vous pouvez également fournir des remplacements locaux pour des nœuds spécifiques en utilisant la méthode `.use()` :
322
+
323
+ ```tsx
324
+ {myMarkdownContent.use({
325
+ h1: ({ children }) => <h1 style={{ color: "red" }}>{children}</h1>,
326
+ })}
327
+ ```
328
+
329
+ Vous pouvez récupérer le Markdown sous forme de chaîne de caractères :
330
+
331
+ ```tsx
332
+ {myMarkdownContent.value}
333
+ {String(myMarkdownContent)}
334
+ {myMarkdownContent.toString()}
335
+ ```
336
+
337
+ Et vous pouvez accéder aux métadonnées de votre markdown comme ceci :
338
+
339
+ ```tsx
340
+ {myMarkdownContent.metadata}
341
+ {myMarkdownContent.metadata.title}
202
342
  ```
203
343
 
204
344
  </Tab>
205
345
  <Tab label="Solid" value="solid">
206
- Solid prend en charge les nœuds Markdown directement dans le JSX.
346
+ Solid prend en charge les nœuds Markdown directement en JSX.
207
347
 
208
348
  ```tsx fileName="App.tsx"
209
349
  import { useIntlayer } from "solid-intlayer";
350
+ import { MarkdownProvider } from "solid-intlayer/markdown";
210
351
 
211
352
  const AppContent = () => {
212
353
  const { myMarkdownContent } = useIntlayer("app");
213
354
  return <div>{myMarkdownContent}</div>;
214
355
  };
356
+
357
+ const App = () => (
358
+ <MarkdownProvider
359
+ components={{
360
+ h1: (props) => <h1 style={{ color: "red" }}>{props.children}</h1>,
361
+ MyButton: (props) => <button {...props} />, // Composant MDX
362
+ }}
363
+ >
364
+ <AppContent />
365
+ </MarkdownProvider>
366
+ );
367
+ ```
368
+
369
+ > Si `MarkdownProvider` n'est pas présent, Intlayer rendra le markdown en utilisant le parser par défaut de Markdown vers JSX.
370
+
371
+ Vous pouvez également fournir des remplacements locaux pour des nœuds spécifiques en utilisant la méthode `.use()` :
372
+
373
+ ```tsx
374
+ {myMarkdownContent.use({
375
+ h1: (props) => <h1 style={{ color: "red" }}>{props.children}</h1>,
376
+ })}
377
+ ```
378
+
379
+ Vous pouvez récupérer le Markdown sous forme de chaîne de caractères :
380
+
381
+ ```tsx
382
+ {myMarkdownContent.value}
383
+ {String(myMarkdownContent)}
384
+ {myMarkdownContent.toString()}
385
+ ```
386
+
387
+ Et vous pouvez accéder aux métadonnées de votre markdown comme ceci :
388
+
389
+ ```tsx
390
+ {myMarkdownContent.metadata}
391
+ {myMarkdownContent.metadata.title}
215
392
  ```
216
393
 
217
394
  </Tab>
218
395
  <Tab label="Angular" value="angular">
219
- Angular utilise la directive `[innerHTML]` pour rendre le contenu Markdown.
396
+ Angular utilise la directive `[innerHTML]` pour afficher le contenu Markdown.
220
397
 
221
398
  ```typescript fileName="app.component.ts"
222
399
  import { Component } from "@angular/core";
@@ -231,7 +408,9 @@ Lorsque vous accédez au contenu via `useIntlayer`, les nœuds Markdown sont dé
231
408
  }
232
409
  ```
233
410
 
234
- Vous pouvez également fournir des surcharges locales pour des nœuds spécifiques à l'aide de la méthode `.use()` :
411
+ > Si le fournisseur IntlayerMarkdown n'est pas configuré, Intlayer effectuera le rendu avec le compilateur par défaut.
412
+
413
+ Vous pouvez également fournir des remplacements locaux pour des nœuds spécifiques en utilisant la méthode `.use()` :
235
414
 
236
415
  ```typescript
237
416
  content().myMarkdownContent.use({
@@ -239,27 +418,46 @@ Lorsque vous accédez au contenu via `useIntlayer`, les nœuds Markdown sont dé
239
418
  })
240
419
  ```
241
420
 
421
+ Vous pouvez récupérer le Markdown sous forme de chaîne de caractères :
422
+
423
+ ```typescript
424
+ content().myMarkdownContent.value
425
+ String(content().myMarkdownContent)
426
+ content().myMarkdownContent.toString()
427
+ ```
428
+
429
+ Et vous pouvez accéder aux métadonnées de votre markdown comme ceci :
430
+
431
+ ```typescript
432
+ content().myMarkdownContent.metadata
433
+ content().myMarkdownContent.metadata.title
434
+ ```
435
+
242
436
  </Tab>
243
437
  </Tabs>
244
438
 
245
- ### 2. Rendu Manuel et Outils Avancés
439
+ ### 2. Utilitaires d'aide (Chaînes Markdown Uniquement)
246
440
 
247
- Si vous avez besoin de rendre des chaînes Markdown brutes ou si vous voulez plus de contrôle sur le processus de rendu, utilisez les outils suivants.
441
+ Ces utilitaires rendent **des chaînes Markdown brutes** et sont indépendants de `useIntlayer`. Utilisez-les lorsque vous devez afficher du Markdown provenant de sources autres que vos dictionnaires.
248
442
 
249
443
  <Tabs group="framework">
250
444
  <Tab label="React / Next.js" value="react">
251
445
 
446
+ #### Composant `<MarkdownRenderer />`
447
+
448
+ Rend une chaîne Markdown avec des options spécifiques.
449
+
252
450
  ```tsx
253
451
  import { MarkdownRenderer } from "react-intlayer/markdown";
254
452
 
255
453
  <MarkdownRenderer forceBlock={true} tagfilter={true}>
256
- {"# My Title"}
454
+ {"# Mon Titre"}
257
455
  </MarkdownRenderer>
258
456
  ```
259
457
 
260
458
  #### Hook `useMarkdownRenderer()`
261
459
 
262
- Obtenir une fonction de rendu pré-configurée.
460
+ Obtenez une fonction de rendu préconfigurée.
263
461
 
264
462
  ```tsx
265
463
  import { useMarkdownRenderer } from "react-intlayer/markdown";
@@ -269,7 +467,7 @@ Si vous avez besoin de rendre des chaînes Markdown brutes ou si vous voulez plu
269
467
  components: { h1: (props) => <h1 {...props} className="custom" /> }
270
468
  });
271
469
 
272
- return renderMarkdown("# My Title");
470
+ return renderMarkdown("# Mon Titre");
273
471
  ```
274
472
 
275
473
  #### Utilitaire `renderMarkdown()`
@@ -278,7 +476,7 @@ Si vous avez besoin de rendre des chaînes Markdown brutes ou si vous voulez plu
278
476
  ```tsx
279
477
  import { renderMarkdown } from "react-intlayer/markdown";
280
478
 
281
- const jsx = renderMarkdown("# My Title", { forceBlock: true });
479
+ const jsx = renderMarkdown("# Mon Titre", { forceBlock: true });
282
480
  ```
283
481
 
284
482
  </Tab>
@@ -292,7 +490,7 @@ Si vous avez besoin de rendre des chaînes Markdown brutes ou si vous voulez plu
292
490
  </script>
293
491
 
294
492
  <template>
295
- <MarkdownRenderer :forceBlock="true" content="# My Title" />
493
+ <MarkdownRenderer :forceBlock="true" content="# Mon Titre" />
296
494
  </template>
297
495
  ```
298
496
 
@@ -306,7 +504,7 @@ Si vous avez besoin de rendre des chaînes Markdown brutes ou si vous voulez plu
306
504
  import { MarkdownRenderer } from "svelte-intlayer/markdown";
307
505
  </script>
308
506
 
309
- <MarkdownRenderer forceBlock={true} value="# My Title" />
507
+ <MarkdownRenderer forceBlock={true} value="# Mon Titre" />
310
508
  ```
311
509
 
312
510
  #### Hook `useMarkdownRenderer()`
@@ -317,7 +515,7 @@ Si vous avez besoin de rendre des chaînes Markdown brutes ou si vous voulez plu
317
515
  const render = useMarkdownRenderer();
318
516
  </script>
319
517
 
320
- {@html render("# My Title")}
518
+ {@html render("# Mon Titre")}
321
519
  ```
322
520
 
323
521
  #### Utilitaire `renderMarkdown()`
@@ -327,7 +525,7 @@ Si vous avez besoin de rendre des chaînes Markdown brutes ou si vous voulez plu
327
525
  import { renderMarkdown } from "svelte-intlayer/markdown";
328
526
  </script>
329
527
 
330
- {@html renderMarkdown("# My Title")}
528
+ {@html renderMarkdown("# Mon Titre")}
331
529
  ```
332
530
 
333
531
  </Tab>
@@ -338,7 +536,7 @@ Si vous avez besoin de rendre des chaînes Markdown brutes ou si vous voulez plu
338
536
  import { MarkdownRenderer } from "preact-intlayer/markdown";
339
537
 
340
538
  <MarkdownRenderer forceBlock={true}>
341
- {"# My Title"}
539
+ {"# Mon Titre"}
342
540
  </MarkdownRenderer>
343
541
  ```
344
542
 
@@ -349,7 +547,7 @@ Si vous avez besoin de rendre des chaînes Markdown brutes ou si vous voulez plu
349
547
 
350
548
  const render = useMarkdownRenderer();
351
549
 
352
- return <div>{render("# My Title")}</div>;
550
+ return <div>{render("# Mon Titre")}</div>;
353
551
  ```
354
552
 
355
553
  #### Utilitaire `renderMarkdown()`
@@ -357,7 +555,7 @@ Si vous avez besoin de rendre des chaînes Markdown brutes ou si vous voulez plu
357
555
  ```tsx
358
556
  import { renderMarkdown } from "preact-intlayer/markdown";
359
557
 
360
- return <div>{renderMarkdown("# My Title")}</div>;
558
+ return <div>{renderMarkdown("# Mon Titre")}</div>;
361
559
  ```
362
560
 
363
561
  </Tab>
@@ -368,7 +566,7 @@ Si vous avez besoin de rendre des chaînes Markdown brutes ou si vous voulez plu
368
566
  import { MarkdownRenderer } from "solid-intlayer/markdown";
369
567
 
370
568
  <MarkdownRenderer forceBlock={true}>
371
- {"# My Title"}
569
+ {"# Mon Titre"}
372
570
  </MarkdownRenderer>
373
571
  ```
374
572
 
@@ -379,7 +577,7 @@ Si vous avez besoin de rendre des chaînes Markdown brutes ou si vous voulez plu
379
577
 
380
578
  const render = useMarkdownRenderer();
381
579
 
382
- return <div>{render("# My Title")}</div>;
580
+ return <div>{render("# Mon Titre")}</div>;
383
581
  ```
384
582
 
385
583
  #### Utilitaire `renderMarkdown()`
@@ -387,13 +585,13 @@ Si vous avez besoin de rendre des chaînes Markdown brutes ou si vous voulez plu
387
585
  ```tsx
388
586
  import { renderMarkdown } from "solid-intlayer/markdown";
389
587
 
390
- return <div>{renderMarkdown("# My Title")}</div>;
588
+ return <div>{renderMarkdown("# Mon Titre")}</div>;
391
589
  ```
392
590
 
393
591
  </Tab>
394
592
  <Tab label="Angular" value="angular">
395
593
  #### Service `IntlayerMarkdownService`
396
- Rendre une chaîne Markdown à l'aide du service.
594
+ Rend une chaîne Markdown en utilisant le service.
397
595
 
398
596
  ```typescript
399
597
  import { IntlayerMarkdownService } from "angular-intlayer/markdown";
@@ -414,7 +612,7 @@ Si vous avez besoin de rendre des chaînes Markdown brutes ou si vous voulez plu
414
612
 
415
613
  ## Configuration Globale avec `MarkdownProvider`
416
614
 
417
- Vous pouvez configurer le rendu Markdown globalement pour l'ensemble de votre application. Cela évite de passer les mêmes props à chaque moteur de rendu.
615
+ Le `MarkdownProvider` (ou son équivalent dans un framework) configure le pipeline de rendu Markdown pour toute votre application. Cela s'applique aussi bien au rendu automatique `useIntlayer` qu'aux utilitaires d'aide. Les options définies ici sont les options par défaut `.use()` les remplace au niveau du nœud.
418
616
 
419
617
  <Tabs group="framework">
420
618
  <Tab label="React / Next.js" value="react">
@@ -425,8 +623,9 @@ Vous pouvez configurer le rendu Markdown globalement pour l'ensemble de votre ap
425
623
  export const AppProvider = ({ children }) => (
426
624
  <MarkdownProvider
427
625
  components={{
428
- h1: ({ children }) => <h1 className="text-2xl font-bold">{children}</h1>,
429
- a: ({ href, children }) => <Link to={href}>{children}</Link>,
626
+ h1: (props) => <h1 style={{color: 'green'}} {...props} />,
627
+ a: ({ href, ...props }) => <a style={{color: 'red'}} {...props} />,
628
+ MyCustomJSXComponent: (props) => <span style={{color: 'red'}} {...props} />,
430
629
  }}
431
630
  >
432
631
  {children}
@@ -434,7 +633,9 @@ Vous pouvez configurer le rendu Markdown globalement pour l'ensemble de votre ap
434
633
  );
435
634
  ```
436
635
 
437
- Vous pouvez également utiliser votre propre moteur de rendu markdown :
636
+ > MDX est pris en charge tout nom de composant utilisé dans votre Markdown (ex. `<MyCustomJSXComponent />`) est résolu par rapport à la correspondance dans `components`.
637
+
638
+ Vous pouvez également utiliser votre propre rendu de markdown :
438
639
 
439
640
  ```tsx fileName="AppProvider.tsx"
440
641
  import { MarkdownProvider } from "react-intlayer/markdown";
@@ -442,8 +643,9 @@ Vous pouvez configurer le rendu Markdown globalement pour l'ensemble de votre ap
442
643
  export const AppProvider = ({ children }) => (
443
644
  <MarkdownProvider
444
645
  renderMarkdown={async (md) => {
445
- const { compileMarkdown } = await import('react-intlayer/markdown');
446
- return compileMarkdown(md);
646
+ // Use dynamic import to reduce the bundle size of your application
647
+ const { renderMarkdown } = await import('react-intlayer/markdown');
648
+ return renderMarkdown(md);
447
649
  }}
448
650
  >
449
651
  {children}
@@ -451,7 +653,7 @@ Vous pouvez configurer le rendu Markdown globalement pour l'ensemble de votre ap
451
653
  );
452
654
  ```
453
655
 
454
- > L'importation dynamique de votre moteur de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
656
+ > L'import dynamique de votre système de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
455
657
 
456
658
  </Tab>
457
659
  <Tab label="Vue" value="vue">
@@ -478,7 +680,7 @@ Vous pouvez configurer le rendu Markdown globalement pour l'ensemble de votre ap
478
680
  app.mount("#app");
479
681
  ```
480
682
 
481
- Vous pouvez également utiliser votre propre moteur de rendu markdown :
683
+ Vous pouvez également utiliser votre propre rendu de markdown :
482
684
 
483
685
  ```typescript fileName="main.ts"
484
686
  import { createApp } from "vue";
@@ -491,15 +693,15 @@ Vous pouvez configurer le rendu Markdown globalement pour l'ensemble de votre ap
491
693
  app.use(intlayer);
492
694
  app.use(intlayerMarkdown, {
493
695
  renderMarkdown: async (md) => {
494
- const { compileMarkdown } = await import('vue-intlayer/markdown');
495
- return compileMarkdown(md);
696
+ const { renderMarkdown } = await import('vue-intlayer/markdown');
697
+ return renderMarkdown(md);
496
698
  },
497
699
  });
498
700
 
499
701
  app.mount("#app");
500
702
  ```
501
703
 
502
- > L'importation dynamique de votre moteur de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
704
+ > L'import dynamique de votre système de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
503
705
 
504
706
  </Tab>
505
707
  <Tab label="Svelte" value="svelte">
@@ -519,7 +721,7 @@ Vous pouvez configurer le rendu Markdown globalement pour l'ensemble de votre ap
519
721
  </MarkdownProvider>
520
722
  ```
521
723
 
522
- Vous pouvez également utiliser votre propre moteur de rendu markdown :
724
+ Vous pouvez également utiliser votre propre rendu de markdown :
523
725
 
524
726
  ```svelte fileName="App.svelte"
525
727
  <script lang="ts">
@@ -528,15 +730,15 @@ Vous pouvez configurer le rendu Markdown globalement pour l'ensemble de votre ap
528
730
 
529
731
  <MarkdownProvider
530
732
  renderMarkdown={async (md) => {
531
- const { compileMarkdown } = await import('svelte-intlayer/markdown');
532
- return compileMarkdown(md);
733
+ const { renderMarkdown } = await import('svelte-intlayer/markdown');
734
+ return renderMarkdown(md);
533
735
  }}
534
736
  >
535
737
  <slot />
536
738
  </MarkdownProvider>
537
739
  ```
538
740
 
539
- > L'importation dynamique de votre moteur de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
741
+ > L'import dynamique de votre système de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
540
742
 
541
743
  </Tab>
542
744
  <Tab label="Preact" value="preact">
@@ -555,7 +757,7 @@ Vous pouvez configurer le rendu Markdown globalement pour l'ensemble de votre ap
555
757
  );
556
758
  ```
557
759
 
558
- Vous pouvez également utiliser votre propre moteur de rendu markdown :
760
+ Vous pouvez également utiliser votre propre rendu de markdown :
559
761
 
560
762
  ```tsx fileName="AppProvider.tsx"
561
763
  import { MarkdownProvider } from "preact-intlayer/markdown";
@@ -563,8 +765,8 @@ Vous pouvez configurer le rendu Markdown globalement pour l'ensemble de votre ap
563
765
  export const AppProvider = ({ children }) => (
564
766
  <MarkdownProvider
565
767
  renderMarkdown={async (md) => {
566
- const { compileMarkdown } = await import('preact-intlayer/markdown');
567
- return compileMarkdown(md);
768
+ const { renderMarkdown } = await import('preact-intlayer/markdown');
769
+ return renderMarkdown(md);
568
770
  }}
569
771
  >
570
772
  {children}
@@ -572,7 +774,7 @@ Vous pouvez configurer le rendu Markdown globalement pour l'ensemble de votre ap
572
774
  );
573
775
  ```
574
776
 
575
- > L'importation dynamique de votre moteur de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
777
+ > L'import dynamique de votre système de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
576
778
 
577
779
  </Tab>
578
780
  <Tab label="Solid" value="solid">
@@ -591,7 +793,7 @@ Vous pouvez configurer le rendu Markdown globalement pour l'ensemble de votre ap
591
793
  );
592
794
  ```
593
795
 
594
- Vous pouvez également utiliser votre propre moteur de rendu markdown :
796
+ Vous pouvez également utiliser votre propre rendu de markdown :
595
797
 
596
798
  ```tsx fileName="AppProvider.tsx"
597
799
  import { MarkdownProvider } from "solid-intlayer/markdown";
@@ -599,8 +801,8 @@ Vous pouvez configurer le rendu Markdown globalement pour l'ensemble de votre ap
599
801
  export const AppProvider = (props) => (
600
802
  <MarkdownProvider
601
803
  renderMarkdown={async (md) => {
602
- const { compileMarkdown } = await import('solid-intlayer/markdown');
603
- return compileMarkdown(md);
804
+ const { renderMarkdown } = await import('solid-intlayer/markdown');
805
+ return renderMarkdown(md);
604
806
  }}
605
807
  >
606
808
  {props.children}
@@ -608,59 +810,29 @@ Vous pouvez configurer le rendu Markdown globalement pour l'ensemble de votre ap
608
810
  );
609
811
  ```
610
812
 
611
- > L'importation dynamique de votre moteur de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
813
+ > L'import dynamique de votre système de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
612
814
 
613
815
  </Tab>
614
816
  <Tab label="Angular" value="angular">
615
817
 
616
- ```typescript fileName="app.config.ts"
617
- import { createIntlayerMarkdownProvider } from "angular-intlayer/markdown";
618
-
619
- export const appConfig: ApplicationConfig = {
620
- providers: [
621
- createIntlayerMarkdownProvider({
622
- components: {
623
- h1: { class: "text-2xl font-bold" },
624
- },
625
- }),
626
- ],
627
- };
628
- ```
629
-
630
- Vous pouvez également utiliser votre propre moteur de rendu markdown :
818
+ ```typescript fileName="app.module.ts"
819
+ import { NgModule } from '@angular/core';
820
+ import { IntlayerMarkdownModule } from 'angular-intlayer/markdown';
631
821
 
632
- ```typescript fileName="app.config.ts"
633
- import { createIntlayerMarkdownProvider } from "angular-intlayer/markdown";
634
-
635
- export const appConfig: ApplicationConfig = {
636
- providers: [
637
- createIntlayerMarkdownProvider({
822
+ @NgModule({
823
+ imports: [
824
+ IntlayerMarkdownModule.forRoot({
638
825
  renderMarkdown: async (md) => {
639
- const { compileMarkdown } = await import('angular-intlayer/markdown');
640
- return compileMarkdown(md);
641
- },
642
- }),
643
- ],
644
- };
826
+ const { renderMarkdown } = await import('angular-intlayer/markdown');
827
+ return renderMarkdown(md);
828
+ }
829
+ })
830
+ ]
831
+ })
832
+ export class AppModule {}
645
833
  ```
646
834
 
647
- > L'importation dynamique de votre moteur de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
835
+ > L'import dynamique de votre système de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
648
836
 
649
837
  </Tab>
650
838
  </Tabs>
651
-
652
- ---
653
-
654
- ## Référence des Options
655
-
656
- Ces options peuvent être passées à `MarkdownProvider`, `MarkdownRenderer`, `useMarkdownRenderer`, et `renderMarkdown`.
657
-
658
- | Option | Type | Défaut | Description |
659
- | :-------------------- | :---------- | :------ | :------------------------------------------------------------------------------------------------------ |
660
- | `forceBlock` | `boolean` | `false` | Force la sortie à être enveloppée dans un élément de niveau bloc (par exemple, `<div>`). |
661
- | `forceInline` | `boolean` | `false` | Force la sortie à être enveloppée dans un élément en ligne (par exemple, `<span>`). |
662
- | `tagfilter` | `boolean` | `true` | Active le filtre de balises GitHub pour une sécurité accrue en supprimant les balises HTML dangereuses. |
663
- | `preserveFrontmatter` | `boolean` | `false` | Si `true`, le frontmatter au début de la chaîne Markdown ne sera pas supprimé. |
664
- | `components` | `Overrides` | `{}` | Une carte des balises HTML vers des composants personnalisés (par exemple, `{ h1: MyHeading }`). |
665
- | `wrapper` | `Component` | `null` | Un composant personnalisé pour envelopper le Markdown rendu. |
666
- | `renderMarkdown` | `Function` | `null` | Une fonction de rendu personnalisée pour remplacer complètement le compilateur Markdown par défaut. |