Hello World
\"}\nHello World
\");\n ```\n\n #### Utilitaire `renderHTML()`\n\n Utilitaire autonome pour le rendu en dehors des composants.\n\n ```tsx\n import { renderHTML } from \"react-intlayer/html\";\n\n const jsx = renderHTML(\"Hello
\", { components: { p: 'div' } });\n ```\n\nHello World
\")}\n ```\n\n #### Utilitaire `renderHTML()`\n\n ```svelte\n \n\n {@html renderHTML(\"Hello World
\")}\n ```\n\nHello World
\"}\nHello World
\")}Hello World
\")}Hello World
\"}\nHello World
\")}Hello World
\")}Posez votre question et obtenez un résumé du document en referencant cette page et le Provider AI de votre choix
Historique des versions
- "Add `intlayerHTML` plugin object; use `app.use(intlayerHTML)` instead of `app.use(installIntlayerHTML)`"v8.5.024/03/2026
- "déplacer l'importation de {{framework}}-intlayer vers {{framework}}-intlayer/html"v8.5.024/03/2026
- "Ajouter HTMLRenderer / useHTMLRenderer / utilitaire renderHTML"v8.0.022/01/2026
- "Ajouter le support du parsing HTML"v8.0.020/01/2026
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
Contenu HTML / HTML dans Intlayer
Intlayer prend en charge le contenu HTML, vous permettant d'intégrer du contenu riche et structuré dans vos dictionnaires. Ce contenu peut être rendu avec des balises HTML standard ou remplacé par des composants personnalisés à l'exécution.
Déclarer du contenu HTML
Vous pouvez déclarer du contenu HTML à l'aide de la fonction html ou simplement sous forme de chaîne de caractères.
Utilisez la fonction html pour déclarer explicitement du contenu HTML. Cela garantit que les balises standard sont mappées correctement même si la détection automatique est désactivée.
Copier le code dans le presse-papiers
import { html, type Dictionary } from "intlayer";const htmlDictionary = { key: "app", contentAutoTransformation: true, // peut être défini dans le fichier de configuration content: { myHtmlContent: html("<p>Hello <strong>World</strong></p>"), },} satisfies Dictionary;export default htmlDictionary;Le nœud html()
La fonction html() est une nouvelle fonctionnalité d'Intlayer v8 qui vous permet de définir explicitement du contenu HTML dans vos dictionnaires. Bien qu'Intlayer puisse souvent détecter automatiquement le contenu HTML, l'utilisation de la fonction html() offre plusieurs avantages :
- Sécurité de typage : La fonction
html()vous permet de définir les props attendues pour les composants personnalisés, offrant une meilleure autocomplétion et une vérification de type dans votre éditeur. - Déclaration explicite : Elle garantit qu'une chaîne est toujours traitée comme du HTML, même si elle ne contient pas de balises HTML standard qui déclencheraient l'auto-détection.
- Définition de composants personnalisés : Vous pouvez passer un deuxième argument à
html()pour définir les composants personnalisés et leurs types de props attendus.
Copier le code dans le presse-papiers
import { html } from "intlayer";const myContent = html( "<MyCustomComponent title='Bonjour'>Monde</MyCustomComponent>", { MyCustomComponent: { title: "string", children: "node", }, });Lors de l'utilisation de la méthode .use() sur un nœud HTML, les composants que vous fournissez seront vérifiés par rapport à la définition fournie dans la fonction html() (si disponible).
Rendu du HTML
Le rendu peut être géré automatiquement par le système de contenu d'Intlayer ou manuellement à l'aide d'outils spécialisés.
Rendu Automatique (en utilisant useIntlayer)
Lorsque vous accédez au contenu via useIntlayer, les nœuds HTML sont déjà préparés pour le rendu.
Les nœuds HTML peuvent être rendus directement en JSX. Les balises standard fonctionnent automatiquement.
Copier le code dans le presse-papiers
import { useIntlayer } from "react-intlayer";const AppContent = () => { const { myHtmlContent } = useIntlayer("app"); return <div>{myHtmlContent}</div>;};Utilisez la méthode .use() pour fournir des composants personnalisés ou remplacer des balises :
Copier le code dans le presse-papiers
{myHtmlContent.use({ p: (props) => <p className="prose" {...props} />, CustomLink: ({ children }) => <a href="/details">{children}</a>,})}Configuration Globale avec HTMLProvider
Vous pouvez configurer le rendu HTML globalement pour l'ensemble de votre application. C'est idéal pour définir des composants personnalisés qui doivent être disponibles dans tout le contenu HTML.
Copier le code dans le presse-papiers
import { HTMLProvider } from "react-intlayer/html";export const AppProvider = ({ children }) => ( <HTMLProvider components={{ p: (props) => <p className="prose" {...props} />, CustomLink: ({ children }) => <a href="/details">{children}</a>, }} > {children} </HTMLProvider>);Vous pouvez également utiliser votre propre moteur de rendu HTML :
Copier le code dans le presse-papiers
import { HTMLProvider } from "react-intlayer/html";export const AppProvider = ({ children }) => ( <HTMLProvider renderHTML={async (html) => { const { renderHTML } = await import('react-intlayer/html'); return renderHTML(html); }} > {children} </HTMLProvider>);L'importation dynamique de votre moteur de rendu HTML est un bon moyen de réduire la taille du bundle de votre application.
Rendu Manuel et Outils Avancés
Si vous avez besoin de rendre des chaînes HTML brutes ou si vous voulez plus de contrôle sur le mappage des composants, utilisez les outils suivants.
Composant <HTMLRenderer />
Rendre une chaîne HTML avec des composants spécifiques.
Copier le code dans le presse-papiers
import { HTMLRenderer } from "react-intlayer/html";<HTMLRenderer components={{ p: MyCustomP }}> {"<p>Hello World</p>"}</HTMLRenderer>Hook useHTMLRenderer()
Obtenir une fonction de rendu pré-configurée.
Copier le code dans le presse-papiers
import { useHTMLRenderer } from "react-intlayer/html";const renderHTML = useHTMLRenderer({ components: { strong: (props) => <strong {...props} className="text-red-500" /> }});return renderHTML("<p>Hello <strong>World</strong></p>");Utilitaire renderHTML()
Utilitaire autonome pour le rendu en dehors des composants.
Copier le code dans le presse-papiers
import { renderHTML } from "react-intlayer/html";const jsx = renderHTML("<p>Hello</p>", { components: { p: 'div' } });Référence des Options
Ces options peuvent être passées à HTMLProvider, HTMLRenderer, useHTMLRenderer et renderHTML.
Ouvrir le tableau dans une fenêtre modale pour voir tout le contenu clairement
| Option | Type | Défaut | Description |
|---|---|---|---|
components | Record<string, any> | {} | Une carte des balises HTML ou des noms de composants personnalisés vers les composants. |
renderHTML | Function | null | Une fonction de rendu personnalisée pour remplacer complètement le parseur HTML par défaut (uniquement pour Vue/Svelte). |
Note : Pour React et Preact, les balises HTML standard sont fournies automatiquement. Vous n'avez besoin de passer la prop components que si vous souhaitez les remplacer ou ajouter des composants personnalisés.