Posez votre question et obtenez un résumé du document en referencant cette page et le Provider AI de votre choix
Historique des versions
- "Permettre la pré-analyse de l'AST Markdown pour le SSR / l'hydratation"v8.11.028/05/2026
- "Ajout de la prise en charge des fichiers `.content.md`"v8.10.019/05/2026
- "Ajout de l'objet plugin `intlayerMarkdown` ; utilisez `app.use(intlayerMarkdown)` au lieu de `app.use(installIntlayerMarkdown)`"v8.5.024/03/2026
- "Déplacement de l'import depuis `{{framework}}-intlayer` vers `{{framework}}-intlayer/markdown`"v8.5.024/03/2026
- "Ajout de MarkdownRenderer / useMarkdownRenderer / renderMarkdown et de l'option forceInline"v8.0.022/01/2026
- "Décoration automatique du contenu markdown, prise en charge de MDX et SSR"v8.0.018/01/2026
- "Initialisation de l'historique"v5.5.1029/06/2025
Le contenu de cette page a été traduit à l'aide d'une IA.
Voir la dernière version du contenu original en anglaisSi vous avez une idée d’amélioration pour améliorer cette documentation, n’hésitez pas à contribuer en submitant une pull request sur GitHub.
Lien GitHub de la documentationCopier le Markdown du doc dans le presse-papiers
Markdown / Contenu Texte Riche
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.
Déclarer du Contenu Markdown
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).
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.
Copier le code dans le presse-papiers
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.
Exemple de structure de fichiers :
Copier le code dans le presse-papiers
Vous pouvez ajouter dans le front-matter n'importe quelle propriété définie dans la Définition du dictionnaire
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.
Copier le code dans le presse-papiers
Importez des fichiers .md directement en utilisant la fonction file.
Copier le code dans le presse-papiers
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.
Copier le code dans le presse-papiers
Rendu Markdown
Intlayer propose deux manières indépendantes de rendre du Markdown :
Via
useIntlayer— Intlayer transforme automatiquement le nœudmddans le format natif du framework (JSX, VNode, chaîne HTML).- Le frontmatter est analysé et exposé sous
.metadata. Vous pouvez remplacer le rendu à deux niveaux — globalement avecMarkdownProvider(ou l'équivalent du framework) et localement par nœud avec.use(). Les deux peuvent être combinés ;.use()est prioritaire surMarkdownProvider, qui est lui-même prioritaire sur le rendu par défaut.
- Le frontmatter est analysé et exposé sous
Utilitaires d'aide —
<MarkdownRenderer />,useMarkdownRenderer()etrenderMarkdown()sont des outils indépendants qui n'acceptent que des chaînes Markdown brutes. Ils sont indépendants deuseIntlayeret ne fonctionnent pas avec les nœuds décorés qu'il retourne.
Le rendu Markdown prend en charge MDX — utilisez n'importe quel composant JSX/framework par son nom directement dans votre Markdown.
1. Rendu Automatique (via useIntlayer)
Les nœuds Markdown peuvent être rendus directement sous forme de JSX.
Copier le code dans le presse-papiers
Si MarkdownProvider n'est pas présent, Intlayer rendra le markdown en utilisant le parser par défaut de Markdown vers JSX.
Vous pouvez également fournir des remplacements locaux pour des nœuds spécifiques en utilisant la méthode .use() :
Copier le code dans le presse-papiers
Vous pouvez récupérer le Markdown sous forme de chaîne de caractères :
Copier le code dans le presse-papiers
Et vous pouvez accéder aux métadonnées de votre markdown comme ceci :
Copier le code dans le presse-papiers
Les nœuds Markdown peuvent être rendus directement sous forme de JSX.
Copier le code dans le presse-papiers
Si MarkdownProvider n'est pas présent, Intlayer rendra le markdown en utilisant le parser par défaut de Markdown vers JSX.
Vous pouvez également fournir des remplacements locaux pour des nœuds spécifiques en utilisant la méthode .use() :
Copier le code dans le presse-papiers
Vous pouvez récupérer le Markdown sous forme de chaîne de caractères :
Copier le code dans le presse-papiers
Et vous pouvez accéder aux métadonnées de votre markdown comme ceci :
Copier le code dans le presse-papiers
Dans Vue, le contenu Markdown peut être rendu en utilisant la balise component intégrée ou directement comme un nœud.
Copier le code dans le presse-papiers
Configurez globalement via le plugin intlayerMarkdown (prend en charge les composants personnalisés MDX) :
Copier le code dans le presse-papiers
Si le plugin intlayerMarkdown n'est pas installé, Intlayer effectuera le rendu avec le compilateur par défaut.
Vous pouvez également fournir des remplacements locaux pour des nœuds spécifiques en utilisant la méthode .use() :
Copier le code dans le presse-papiers
Vous pouvez récupérer le Markdown sous forme de chaîne de caractères :
Copier le code dans le presse-papiers
Et vous pouvez accéder aux métadonnées de votre markdown comme ceci :
Copier le code dans le presse-papiers
Svelte rend le Markdown sous forme de chaîne HTML par défaut. Utilisez {@html} pour le rendre.
Copier le code dans le presse-papiers
Si MarkdownProvider n'est pas présent, Intlayer rendra le markdown avec le compilateur par défaut.
Vous pouvez également fournir des remplacements locaux pour des nœuds spécifiques en utilisant la méthode .use() :
Copier le code dans le presse-papiers
Vous pouvez récupérer le Markdown sous forme de chaîne de caractères :
Copier le code dans le presse-papiers
Et vous pouvez accéder aux métadonnées de votre markdown comme ceci :
Copier le code dans le presse-papiers
Preact prend en charge les nœuds Markdown directement en JSX.
Copier le code dans le presse-papiers
Si MarkdownProvider n'est pas présent, Intlayer rendra le markdown en utilisant le parser par défaut de Markdown vers JSX.
Vous pouvez également fournir des remplacements locaux pour des nœuds spécifiques en utilisant la méthode .use() :
Copier le code dans le presse-papiers
Vous pouvez récupérer le Markdown sous forme de chaîne de caractères :
Copier le code dans le presse-papiers
Et vous pouvez accéder aux métadonnées de votre markdown comme ceci :
Copier le code dans le presse-papiers
Solid prend en charge les nœuds Markdown directement en JSX.
Copier le code dans le presse-papiers
Si MarkdownProvider n'est pas présent, Intlayer rendra le markdown en utilisant le parser par défaut de Markdown vers JSX.
Vous pouvez également fournir des remplacements locaux pour des nœuds spécifiques en utilisant la méthode .use() :
Copier le code dans le presse-papiers
Vous pouvez récupérer le Markdown sous forme de chaîne de caractères :
Copier le code dans le presse-papiers
Et vous pouvez accéder aux métadonnées de votre markdown comme ceci :
Copier le code dans le presse-papiers
Angular utilise la directive [innerHTML] pour afficher le contenu Markdown.
Copier le code dans le presse-papiers
Si le fournisseur IntlayerMarkdown n'est pas configuré, Intlayer effectuera le rendu avec le compilateur par défaut.
Vous pouvez également fournir des remplacements locaux pour des nœuds spécifiques en utilisant la méthode .use() :
Copier le code dans le presse-papiers
Vous pouvez récupérer le Markdown sous forme de chaîne de caractères :
Copier le code dans le presse-papiers
Et vous pouvez accéder aux métadonnées de votre markdown comme ceci :
Copier le code dans le presse-papiers
2. Utilitaires d'aide (Chaînes Markdown Uniquement)
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.
Composant <MarkdownRenderer />
Rend une chaîne Markdown avec des options spécifiques.
Copier le code dans le presse-papiers
Hook useMarkdownRenderer()
Obtenez une fonction de rendu préconfigurée.
Copier le code dans le presse-papiers
Utilitaire renderMarkdown()
Utilitaire autonome pour le rendu en dehors des composants.
Copier le code dans le presse-papiers
Composant <MarkdownRenderer />
Rend une chaîne Markdown avec des options spécifiques.
Copier le code dans le presse-papiers
Hook useMarkdownRenderer()
Obtenez une fonction de rendu préconfigurée.
Copier le code dans le presse-papiers
Utilitaire renderMarkdown()
Utilitaire autonome pour le rendu en dehors des composants.
Copier le code dans le presse-papiers
Composant <MarkdownRenderer />
Copier le code dans le presse-papiers
Composant <MarkdownRenderer />
Copier le code dans le presse-papiers
Hook useMarkdownRenderer()
Copier le code dans le presse-papiers
Utilitaire renderMarkdown()
Copier le code dans le presse-papiers
Composant <MarkdownRenderer />
Copier le code dans le presse-papiers
Hook useMarkdownRenderer()
Copier le code dans le presse-papiers
Utilitaire renderMarkdown()
Copier le code dans le presse-papiers
Composant <MarkdownRenderer />
Copier le code dans le presse-papiers
Hook useMarkdownRenderer()
Copier le code dans le presse-papiers
Utilitaire renderMarkdown()
Copier le code dans le presse-papiers
Service IntlayerMarkdownService
Rend une chaîne Markdown en utilisant le service.
Copier le code dans le presse-papiers
Configuration Globale avec MarkdownProvider
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.
Copier le code dans le presse-papiers
MDX est pris en charge — tout nom de composant utilisé dans votre Markdown (ex.<MyCustomJSXComponent />) est résolu par rapport à la correspondance danscomponents.
Vous pouvez également utiliser votre propre rendu de markdown :
Copier le code dans le presse-papiers
L'import dynamique de votre système de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
Copier le code dans le presse-papiers
MDX est pris en charge — tout nom de composant utilisé dans votre Markdown (ex.<MyCustomJSXComponent />) est résolu par rapport à la correspondance danscomponents.
Vous pouvez également utiliser votre propre rendu de markdown :
Copier le code dans le presse-papiers
L'import dynamique de votre système de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
Copier le code dans le presse-papiers
MDX est pris en charge — tout nom de composant utilisé dans votre Markdown (ex.<MyCustomJSXComponent />) est résolu par rapport à la correspondance danscomponents.
Vous pouvez également utiliser votre propre rendu de markdown :
Copier le code dans le presse-papiers
L'import dynamique de votre système de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
Copier le code dans le presse-papiers
MDX est pris en charge — tout nom de composant utilisé dans votre Markdown (ex.<MyCustomJSXComponent />) est résolu par rapport à la correspondance danscomponents.
Vous pouvez également utiliser votre propre rendu de markdown :
Copier le code dans le presse-papiers
L'import dynamique de votre système de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
Copier le code dans le presse-papiers
MDX est pris en charge — tout nom de composant utilisé dans votre Markdown (ex.<MyCustomJSXComponent />) est résolu par rapport à la correspondance danscomponents.
Vous pouvez également utiliser votre propre rendu de markdown :
Copier le code dans le presse-papiers
L'import dynamique de votre système de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
Copier le code dans le presse-papiers
MDX est pris en charge — tout nom de composant utilisé dans votre Markdown (ex.<MyCustomJSXComponent />) est résolu par rapport à la correspondance danscomponents.
Vous pouvez également utiliser votre propre rendu de markdown :
Copier le code dans le presse-papiers
L'import dynamique de votre système de rendu Markdown est un bon moyen de réduire la taille du bundle de votre application.
MDX est supporté — tout nom de composant utilisé dans votre Markdown (par exemple<MyCustomJSXComponent />) est résolu par rapport au mappingcomponents.
Vous pouvez également utiliser votre propre moteur de rendu Markdown :
Copier le code dans le presse-papiers
Suspense
Le moteur de rendu Markdown d'Intlayer est chargé dynamiquement. Bien qu'optimisé, le chunk de l'analyseur sous-jacent fait environ 55 ko. Son chargement synchrone retarde le rendu initial de la page et dégrade le First Contentful Paint (FCP).
Pour éviter de bloquer l'interface utilisateur, Intlayer s'intègre à l'API Suspense de React. Il récupère l'analyseur en arrière-plan et lève une Promise pendant le téléchargement.
Enveloppez tout composant rendant le Markdown d'Intlayer dans une limite <Suspense>. Cela affiche un état de repli localisé pendant le téléchargement du chunk, permettant au reste de votre DOM de se rendre immédiatement.
Avertissement : Si vous ne fournissez pas de limite <Suspense>, React suspendra au niveau racine ou bloquera le rendu de tout l'arbre des composants jusqu'à ce que le chunk de 55 ko soit complètement chargé.
Dans Next.js App Router, vous pouvez utiliser soit React Suspense pour les composants clients, soit un fichier loading.tsx pour les composants serveurs.
Composant Client :
Copier le code dans le presse-papiers
Composant Serveur avec loading.tsx :
Copier le code dans le presse-papiers
Copier le code dans le presse-papiers
Copier le code dans le presse-papiers
Vue possède un composant <Suspense> intégré. Enveloppez le composant rendant le contenu Markdown dans une limite <Suspense>.
Copier le code dans le presse-papiers
Svelte n'a pas d'équivalent à l'API Suspense. Utilisez un bloc {#await} pour gérer le rendu asynchrone du contenu Markdown.
Copier le code dans le presse-papiers
Preact prend en charge l'API Suspense de React via preact/compat.
Copier le code dans le presse-papiers
Solid possède son propre composant <Suspense> provenant de solid-js.
Copier le code dans le presse-papiers
Angular n'a pas d'API Suspense. Utilisez les vues différées (@defer) d'Angular pour gérer le contenu Markdown chargé paresseusement (nécessite Angular 17+).
Copier le code dans le presse-papiers
Rendu Côté Serveur (SSR) et Hydratation
En comparaison avec d'autres parseurs Markdown tels que remark / rehype, Intlayer Markdown est sans dépendance et s'exécute aussi bien côté client que côté serveur.
Cependant, Intlayer optimise l'analyse pour les frameworks de rendu côté serveur (SSR) (tels que Next.js App Router, React Router, Nuxt, SvelteKit, etc.).
Au lieu d'envoyer des chaînes Markdown brutes au client et de les analyser dans le navigateur (ce qui entraîne une pénalité de performance), Intlayer vous permet de pré-analyser le Markdown en un arbre de syntaxe abstraite (AST) sur le serveur.
Vous pouvez utiliser la fonction parseMarkdown du package Intlayer de votre framework côté serveur pour générer un AST sérialisable (objet ParsedMarkdown), et le transmettre directement au frontend. Tous les utilitaires de rendu Intlayer (comme <MarkdownRenderer>, useMarkdownRenderer, etc.) acceptent automatiquement cet objet AST et le rendent de manière transparente.
Exemple dans une architecture Serveur/Client
Copier le code dans le presse-papiers
Copier le code dans le presse-papiers
Copier le code dans le presse-papiers
Copier le code dans le presse-papiers
Copier le code dans le presse-papiers
Copier le code dans le presse-papiers
L'SSR d'Angular résout généralement les données sur le serveur lors du chargement initial et s'hydrate sur le client. Vous pouvez utiliser des résolveurs pour transmettre l'AST.
Copier le code dans le presse-papiers
Copier le code dans le presse-papiers
Ce modèle garantit que la logique d'analyse Markdown est entièrement exécutée sur le serveur, ce qui réduit considérablement le temps d'exécution côté client et améliore la vitesse d'hydratation initiale.
Référence des options
Ces options peuvent être passées à MarkdownProvider, MarkdownRenderer, useMarkdownRenderer et renderMarkdown.
Ouvrir le tableau dans une fenêtre modale pour voir tout le contenu clairement
| Option | Type | Default | Description |
|---|---|---|---|
forceBlock | boolean | false | Force la sortie à être enveloppée dans un élément de niveau bloc (ex: <div>). |
forceInline | boolean | false | Force la sortie à être enveloppée dans un élément en ligne (ex: <span>). |
tagfilter | boolean | true | Active le GitHub Tag Filter pour une meilleure sécurité en supprimant les balises HTML dangereuses. |
preserveFrontmatter | boolean | false | Si true, le frontmatter au début de la chaîne Markdown ne sera pas supprimé. |
components | Overrides | {} | Une carte des balises HTML vers des composants personnalisés (ex: { h1: MyHeading }). |
wrapper | Component | null | Un composant personnalisé pour envelopper le Markdown rendu. |
renderMarkdown | Function | null | Une fonction de rendu personnalisée pour remplacer complètement le compilateur Markdown par défaut. |
