Hello World
\"}\nHello World
\");\n ```\n\n #### `renderHTML()` Utility\n\n Eigenständiges Utility zum Rendern außerhalb von Komponenten.\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 #### `renderHTML()` Utility\n\n ```svelte\n \n\n {@html renderHTML(\"Hello World
\")}\n ```\n\nHello World
\"}\nHello World
\")}Hello World
\")}Hello World
\"}\nHello World
\")}Hello World
\")}Stellen Sie Ihre Frage und erhalten Sie einen Resümee des Dokuments, indem Sie diese Seite und den AI-Anbieter Ihrer Wahl referenzieren
Versionshistorie
- "Add `intlayerHTML` plugin object; use `app.use(intlayerHTML)` instead of `app.use(installIntlayerHTML)`"v8.5.024.3.2026
- "Import von {{framework}}-intlayer nach {{framework}}-intlayer/html verschieben"v8.5.024.3.2026
- "Hinzufügen von HTMLRenderer / useHTMLRenderer / renderHTML Utility"v8.0.022.1.2026
- "Hinzufügen von HTML-Parsing-Unterstützung"v8.0.020.1.2026
Der Inhalt dieser Seite wurde mit einer KI übersetzt.
Den englischen Originaltext ansehenWenn Sie eine Idee haben, um diese Dokumentation zu verbessern, zögern Sie bitte nicht, durch das Einreichen eines Pull-Requests auf GitHub beizutragen.
GitHub-Link zur DokumentationMarkdown des Dokuments in die Zwischenablage kopieren
HTML-Inhalte / HTML in Intlayer
Intlayer unterstützt HTML-Inhalte, sodass Sie reichhaltige, strukturierte Inhalte in Ihre Dictionaries einbetten können. Diese Inhalte können mit Standard-HTML-Tags gerendert oder zur Laufzeit durch benutzerdefinierte Komponenten ersetzt werden.
HTML-Inhalte deklarieren
Sie können HTML-Inhalte mit der html-Funktion oder einfach als String deklarieren.
Verwenden Sie die html-Funktion, um HTML-Inhalte explizit zu deklarieren. Dies stellt sicher, dass Standard-Tags korrekt zugeordnet werden, selbst wenn die automatische Erkennung deaktiviert ist.
Kopieren Sie den Code in die Zwischenablage
import { html, type Dictionary } from "intlayer";const htmlDictionary = { key: "app", contentAutoTransformation: true, // kann in der Konfigurationsdatei festgelegt werden content: { myHtmlContent: html("<p>Hello <strong>World</strong></p>"), },} satisfies Dictionary;export default htmlDictionary;Der html()-Knoten
Die html()-Funktion ist ein neues Feature in Intlayer v8, mit dem Sie HTML-Inhalte in Ihren Wörterbüchern explizit definieren können. Während Intlayer HTML-Inhalte oft automatisch erkennt, bietet die Verwendung der html()-Funktion mehrere Vorteile:
- Typsicherheit: Mit der
html()-Funktion können Sie die erwarteten Props für benutzerdefinierte Komponenten definieren, was eine bessere Autovervollständigung und Typprüfung in Ihrem Editor ermöglicht. - Explizite Deklaration: Sie stellt sicher, dass eine Zeichenfolge immer als HTML behandelt wird, auch wenn sie keine Standard-HTML-Tags enthält, die die automatische Erkennung auslösen würden.
- Definition benutzerdefinierter Komponenten: Sie können ein zweites Argument an
html()übergeben, um die benutzerdefinierten Komponenten und deren erwartete Prop-Typen zu definieren.
Kopieren Sie den Code in die Zwischenablage
import { html } from "intlayer";const myContent = html( "<MyCustomComponent title='Hallo'>Welt</MyCustomComponent>", { MyCustomComponent: { title: "string", children: "node", }, });Wenn Sie die Methode .use() auf einem HTML-Knoten verwenden, werden die von Ihnen bereitgestellten Komponenten gegen die in der html()-Funktion bereitgestellte Definition (falls verfügbar) geprüft.
HTML rendern
Das Rendern kann automatisch durch das Inhaltssystem von Intlayer oder manuell mit spezialisierten Tools erfolgen.
Automatisches Rendern (mit useIntlayer)
Wenn Sie auf Inhalte über useIntlayer zugreifen, sind HTML-Knoten bereits für das Rendering vorbereitet.
HTML-Knoten können direkt als JSX gerendert werden. Standard-Tags funktionieren automatisch.
Kopieren Sie den Code in die Zwischenablage
import { useIntlayer } from "react-intlayer";const AppContent = () => { const { myHtmlContent } = useIntlayer("app"); return <div>{myHtmlContent}</div>;};Verwenden Sie die .use()-Methode, um benutzerdefinierte Komponenten bereitzustellen oder Tags zu überschreiben:
Kopieren Sie den Code in die Zwischenablage
{myHtmlContent.use({ p: (props) => <p className="prose" {...props} />, CustomLink: ({ children }) => <a href="/details">{children}</a>,})}Globale Konfiguration mit HTMLProvider
Sie können das HTML-Rendering global für Ihre gesamte Anwendung konfigurieren. Dies ist ideal, um benutzerdefinierte Komponenten zu definieren, die in allen HTML-Inhalten verfügbar sein sollen.
Kopieren Sie den Code in die Zwischenablage
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>);Sie können auch Ihren eigenen HTML-Renderer verwenden:
Kopieren Sie den Code in die Zwischenablage
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>);Das dynamische Importieren Ihres HTML-Renderers ist eine gute Möglichkeit, die Bundle-Größe Ihrer Anwendung zu reduzieren.
Manuelles Rendering & Erweiterte Tools
Wenn Sie rohe HTML-Strings rendern müssen oder mehr Kontrolle über die Komponentenzuordnung benötigen, verwenden Sie die folgenden Tools.
<HTMLRenderer /> Komponente
Rendern Sie einen HTML-String mit spezifischen Komponenten.
Kopieren Sie den Code in die Zwischenablage
import { HTMLRenderer } from "react-intlayer/html";<HTMLRenderer components={{ p: MyCustomP }}> {"<p>Hello World</p>"}</HTMLRenderer>useHTMLRenderer() Hook
Holen Sie sich eine vorkonfigurierte Renderer-Funktion.
Kopieren Sie den Code in die Zwischenablage
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>");renderHTML() Utility
Eigenständiges Utility zum Rendern außerhalb von Komponenten.
Kopieren Sie den Code in die Zwischenablage
import { renderHTML } from "react-intlayer/html";const jsx = renderHTML("<p>Hello</p>", { components: { p: 'div' } });Optionen-Referenz
Diese Optionen können an HTMLProvider, HTMLRenderer, useHTMLRenderer und renderHTML übergeben werden.
Tabelle in einem Modal öffnen, um alle Daten übersichtlich anzuzeigen
| Option | Typ | Standard | Beschreibung |
|---|---|---|---|
components | Record<string, any> | {} | Eine Map von HTML-Tags oder benutzerdefinierten Komponentennamen zu Komponenten. |
renderHTML | Function | null | Eine benutzerdefinierte Rendering-Funktion, um den Standard-HTML-Parser vollständig zu ersetzen (Nur für Vue/Svelte Provider). |
Hinweis: Für React und Preact werden Standard-HTML-Tags automatisch bereitgestellt. Sie müssen das components-Prop nur übergeben, wenn Sie sie überschreiben oder benutzerdefinierte Komponenten hinzufügen möchten.