Hello World
\"}\nHello World
\");\n ```\n\n #### Utilitário `renderHTML()`\n\n Utilitário independente para renderização fora de componentes.\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 #### Utilitário `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
\")}Faça sua pergunta e obtenha um resumo do documento referenciando esta página e o provedor AI de sua escolha
Histórico de versões
- "Add `intlayerHTML` plugin object; use `app.use(intlayerHTML)` instead of `app.use(installIntlayerHTML)`"v8.5.024/03/2026
- "mover a importação de {{framework}}-intlayer para {{framework}}-intlayer/html"v8.5.024/03/2026
- "Adicionar HTMLRenderer / useHTMLRenderer / utilitário renderHTML"v8.0.022/01/2026
- "Adicionar suporte ao parsing de HTML"v8.0.020/01/2026
O conteúdo desta página foi traduzido com uma IA.
Veja a última versão do conteúdo original em inglêsSe você tiver uma ideia para melhorar esta documentação, sinta-se à vontade para contribuir enviando uma pull request no GitHub.
Link do GitHub para a documentaçãoCopiar o Markdown do documento para a área de transferência
Conteúdo HTML / HTML no Intlayer
O Intlayer suporta conteúdo HTML, permitindo que você incorpore conteúdo rico e estruturado dentro dos seus dicionários. Esse conteúdo pode ser renderizado com tags HTML padrão ou substituído por componentes personalizados em tempo de execução.
Declarando Conteúdo HTML
Você pode declarar conteúdo HTML usando la função html ou simplesmente como uma string.
Use a função html para declarar explicitamente conteúdo HTML. Isso garante que as tags padrão sejam mapeadas corretamente mesmo se a detecção automática estiver desabilitada.
Copiar o código para a área de transferência
import { html, type Dictionary } from "intlayer";const htmlDictionary = { key: "app", contentAutoTransformation: true, // pode ser definido no arquivo de configuração content: { myHtmlContent: html("<p>Hello <strong>World</strong></p>"), },} satisfies Dictionary;export default htmlDictionary;O Nó html()
A função html() é um novo recurso no Intlayer v8 que permite definir explicitamente conteúdo HTML em seus dicionários. Embora o Intlayer possa frequentemente detectar automaticamente o conteúdo HTML, o uso da função html() oferece várias vantagens:
- Segurança de Tipos: A função
html()permite definir as props esperadas para componentes personalizados, proporcionando melhor autocompletar e verificação de tipos em seu editor. - Declaração Explícita: Garante que uma string seja sempre tratada como HTML, mesmo que não contenha tags HTML padrão que acionariam a detecção automática.
- Definição de Componentes Personalizados: Você pode passar um segundo argumento para
html()para definir os componentes personalizados e seus tipos de props esperados.
Copiar o código para a área de transferência
import { html } from "intlayer";const myContent = html( "<MyCustomComponent title='Olá'>Mundo</MyCustomComponent>", { MyCustomComponent: { title: "string", children: "node", }, });Ao usar o método .use() em um nó HTML, os componentes que você fornecer serão verificados em relação à definição fornecida na função html() (se disponível).
Renderização de HTML
A renderização pode ser feita automaticamente pelo sistema de conteúdo do Intlayer ou manualmente usando ferramentas especializadas.
Renderização automática (usando useIntlayer)
Quando você acessa conteúdo via useIntlayer, os nós HTML já estão preparados para renderização.
Os nós HTML podem ser renderizados diretamente como JSX. As tags padrão funcionam automaticamente.
Copiar o código para a área de transferência
import { useIntlayer } from "react-intlayer";const AppContent = () => { const { myHtmlContent } = useIntlayer("app"); return <div>{myHtmlContent}</div>;};Use o método .use() para fornecer componentes personalizados ou sobrescrever tags:
Copiar o código para a área de transferência
{myHtmlContent.use({ p: (props) => <p className="prose" {...props} />, CustomLink: ({ children }) => <a href="/details">{children}</a>,})}Configuração Global com HTMLProvider
Você pode configurar a renderização de HTML globalmente para toda a sua aplicação. Isso é ideal para definir componentes personalizados que devem estar disponíveis em todo o conteúdo HTML.
Copiar o código para a área de transferência
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>);Você também pode usar o seu próprio renderizador de HTML:
Copiar o código para a área de transferência
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>);Importar dinamicamente o seu renderizador de HTML é uma boa maneira de reduzir o tamanho do pacote da sua aplicação.
Renderização Manual e Ferramentas Avançadas
Se precisar renderizar strings HTML brutas ou tiver mais controlo sobre o mapeamento de componentes, use as seguintes ferramentas.
Componente <HTMLRenderer />
Renderize uma string HTML con componentes específicos.
Copiar o código para a área de transferência
import { HTMLRenderer } from "react-intlayer/html";<HTMLRenderer components={{ p: MyCustomP }}> {"<p>Hello World</p>"}</HTMLRenderer>Hook useHTMLRenderer()
Obtenha uma função de renderização pré-configurada.
Copiar o código para a área de transferência
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>");Utilitário renderHTML()
Utilitário independente para renderização fora de componentes.
Copiar o código para a área de transferência
import { renderHTML } from "react-intlayer/html";const jsx = renderHTML("<p>Hello</p>", { components: { p: 'div' } });Referência de Opções
Essas opções podem ser passadas para HTMLProvider, HTMLRenderer, useHTMLRenderer e renderHTML.
Abrir a tabela em um modal para ver todo o conteúdo claramente
| Opção | Tipo | Padrão | Descrição |
|---|---|---|---|
components | Record<string, any> | {} | Um mapa que associa tags HTML ou nomes de componentes personalizados aos componentes. |
renderHTML | Function | null | Uma função de renderização personalizada para substituir completamente o parser HTML padrão (Apenas para providers Vue/Svelte). |
Nota: Para React e Preact, as tags HTML padrão são fornecidas automaticamente. Você só precisa passar a prop components se quiser sobrescrevê-las ou adicionar componentes personalizados.