Hello World
\"}\nWitaj świecie
\");\n ```\n\n #### Narzędzie `renderHTML()`\n\n Samodzielne narzędzie do renderowania poza komponentami.\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 #### Narzędzie `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
\")}Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI
Historia wersji
- "Add `intlayerHTML` plugin object; use `app.use(intlayerHTML)` instead of `app.use(installIntlayerHTML)`"v8.5.024.03.2026
- "przeniesienie importu z {{framework}}-intlayer do {{framework}}-intlayer/html"v8.5.024.03.2026
- "Dodano HTMLRenderer / useHTMLRenderer / renderHTML"v8.0.022.01.2026
- "Dodano obsługę parsowania HTML"v8.0.020.01.2026
Treść tej strony została przetłumaczona przy użyciu sztucznej inteligencji.
Zobacz ostatnią wersję oryginalnej treści w języku angielskimJeśli masz pomysł na ulepszenie tej dokumentacji, zachęcamy do przesłania pull requesta na GitHubie.
Link do dokumentacji na GitHubieKopiuj dokument Markdown do schowka
Zawartość HTML / HTML w Intlayer
Intlayer obsługuje zawartość HTML, umożliwiając osadzanie bogatej, strukturalnej treści w Twoich słownikach. Ta zawartość może być renderowana za pomocą standardowych tagów HTML lub zastępowana niestandardowymi komponentami w czasie wykonywania.
Deklarowanie treści HTML
Możesz zadeklarować treść HTML, używając funkcji html lub po prostu jako łańcuch znaków.
Użyj funkcji html, aby jawnie zadeklarować zawartość HTML. Zapewnia to poprawne odwzorowanie standardowych tagów, nawet jeśli automatyczne wykrywanie jest wyłączone.
Skopiuj kod do schowka
import { html, type Dictionary } from "intlayer";const htmlDictionary = { key: "app", contentAutoTransformation: true, // można ustawić w pliku konfiguracyjnym content: { myHtmlContent: html("<p>Witaj <strong>świecie</strong></p>"), },} satisfies Dictionary;export default htmlDictionary;Węzeł html()
Funkcja html() to nowa funkcja w Intlayer v8, która pozwala na jawne definiowanie treści HTML w słownikach. Chociaż Intlayer często potrafi automatycznie wykryć treść HTML, użycie funkcji html() zapewnia kilka korzyści:
- Bezpieczeństwo typów: Funkcja
html()pozwala zdefiniować oczekiwane właściwości (props) dla niestandardowych komponentów, co zapewnia lepsze autouzupełnianie i sprawdzanie typów w edytorze. - Jawna deklaracja: Gwarantuje, że ciąg znaków będzie zawsze traktowany jako HTML, nawet jeśli nie zawiera standardowych tagów HTML, które wyzwoliłyby automatyczne wykrywanie.
- Definiowanie niestandardowych komponentów: Możesz przekazać drugi argument do
html(), aby zdefiniować niestandardowe komponenty i ich oczekiwane typy właściwości.
Skopiuj kod do schowka
import { html } from "intlayer";const myContent = html( "<MyCustomComponent title='Witaj'>Świecie</MyCustomComponent>", { MyCustomComponent: { title: "string", children: "node", }, });Podczas korzystania z metody .use() na węźle HTML, dostarczone komponenty zostaną sprawdzone pod kątem definicji podanej w funkcji html() (jeśli jest dostępna).
Renderowanie HTML
Renderowaniem można zająć się automatycznie za pomocą systemu treści Intlayer lub ręcznie przy użyciu specjalistycznych narzędzi.
Automatyczne renderowanie (z użyciem useIntlayer)
Kiedy uzyskujesz dostęp do treści za pomocą useIntlayer, węzły HTML są już przygotowane do renderowania.
Węzły HTML można renderować bezpośrednio jako JSX. Standardowe tagi działają automatycznie.
Skopiuj kod do schowka
import { useIntlayer } from "react-intlayer";const AppContent = () => { const { myHtmlContent } = useIntlayer("app"); return <div>{myHtmlContent}</div>;};Użyj metody .use(), aby dostarczyć własne komponenty lub nadpisać tagi:
Skopiuj kod do schowka
{myHtmlContent.use({ p: (props) => <p className="prose" {...props} />, CustomLink: ({ children }) => <a href="/details">{children}</a>,})}Konfiguracja globalna z HTMLProvider
Możesz skonfigurować renderowanie HTML globalnie dla całej aplikacji. To idealne rozwiązanie do zdefiniowania niestandardowych komponentów, które powinny być dostępne we wszystkich treściach HTML.
Skopiuj kod do schowka
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>);Możesz również użyć własnego silnika renderującego HTML:
Skopiuj kod do schowka
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>);Dynamiczne importowanie silnika renderującego HTML to dobry sposób na zmniejszenie rozmiaru paczki (bundle) Twojej aplikacji.
Ręczne renderowanie i zaawansowane narzędzia
Jeśli musisz renderować surowe łańcuchy HTML lub potrzebujesz większej kontroli nad mapowaniem komponentów, użyj poniższych narzędzi.
Komponent <HTMLRenderer />
Renderuj łańcuch HTML przy użyciu określonych komponentów.
Skopiuj kod do schowka
import { HTMLRenderer } from "react-intlayer/html";<HTMLRenderer components={{ p: MyCustomP }}> {"<p>Hello World</p>"}</HTMLRenderer>Hook useHTMLRenderer()
Uzyskaj wstępnie skonfigurowaną funkcję renderującą.
Skopiuj kod do schowka
import { useHTMLRenderer } from "react-intlayer/html";const renderHTML = useHTMLRenderer({ components: { strong: (props) => <strong {...props} className="text-red-500" /> }});return renderHTML("<p>Witaj <strong>świecie</strong></p>");Narzędzie renderHTML()
Samodzielne narzędzie do renderowania poza komponentami.
Skopiuj kod do schowka
import { renderHTML } from "react-intlayer/html";const jsx = renderHTML("<p>Hello</p>", { components: { p: 'div' } });Referencja opcji
Te opcje mogą być przekazane do HTMLProvider, HTMLRenderer, useHTMLRenderer i renderHTML.
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Opcja | Typ | Domyślnie | Opis |
|---|---|---|---|
components | Record<string, any> | {} | Mapa tagów HTML lub niestandardowych nazw komponentów do odpowiadających im komponentów. |
renderHTML | Function | null | Funkcja renderująca, która całkowicie zastąpi domyślny parser HTML (tylko dla providerów Vue/Svelte). |
Uwaga: Dla React i Preact standardowe tagi HTML są dostarczane automatycznie. Prop components trzeba przekazać tylko wtedy, gdy chcesz je nadpisać lub dodać niestandardowe komponenty.