Creation:2026-01-20Last update:2026-03-24

    HTML İçeriği / Intlayer içinde HTML

    Intlayer, sözlükleriniz içinde zengin, yapılandırılmış içerik gömmenize olanak tanıyan HTML içeriğini destekler. Bu içerik, standart HTML etiketleriyle render edilebilir veya çalışma zamanında özel bileşenlerle değiştirilebilir.

    HTML İçeriğini Tanımlama

    HTML içeriğini html fonksiyonunu kullanarak veya basitçe bir string olarak tanımlayabilirsiniz.

    HTML içeriğini açıkça bildirmek için html fonksiyonunu kullanın. Bu, otomatik algılama devre dışı olsa bile standart etiketlerin doğru şekilde eşlenmesini sağlar.

    htmlDictionary.content.ts
    import { html, type Dictionary } from "intlayer";const htmlDictionary = {  key: "app",  contentAutoTransformation: true, // yapılandırma dosyasında ayarlanabilir  content: {    myHtmlContent:  html("<p>Merhaba <strong>Dünya</strong></p>"),  },} satisfies Dictionary;export default htmlDictionary;

    html() Düğümü

    html() fonksiyonu, Intlayer v8'de sözlüklerinizde HTML içeriğini açıkça tanımlamanıza olanak tanıyan yeni bir özelliktir. Intlayer genellikle HTML içeriğini otomatik olarak algılayabilse de, html() fonksiyonunu kullanmak birkaç avantaj sağlar:

    • Tür Güvenliği: html() fonksiyonu, özel bileşenler için beklenen propları tanımlamanıza olanak tanıyarak editörünüzde daha iyi otomatik tamamlama ve tür denetimi sağlar.
    • Açık Bildirim: Otomatik algılamayı tetikleyecek standart HTML etiketleri içermese bile bir dizenin her zaman HTML olarak değerlendirilmesini sağlar.
    • Özel Bileşen Tanımlama: Özel bileşenleri ve beklenen prop türlerini tanımlamak için html() fonksiyonuna ikinci bir argüman geçirebilirsiniz.
    typescript
    import { html } from "intlayer";const myContent = html(  "<MyCustomComponent title='Merhaba'>Dünya</MyCustomComponent>",  {    MyCustomComponent: {      title: "string",      children: "node",    },  });

    Bir HTML düğümü üzerinde .use() yöntemini kullanırken, sağladığınız bileşenler html() fonksiyonunda sağlanan tanıma (varsa) göre kontrol edilecektir.


    HTML'i Render Etme

    Render işlemi Intlayer'ın içerik sistemi tarafından otomatik olarak veya özel araçlar kullanılarak manuel olarak yapılabilir.

    Otomatik Renderleme ( useIntlayer kullanarak)

    useIntlayer aracılığıyla içeriğe eriştiğinizde, HTML düğümleri render için zaten hazırlanmıştır.

    HTML düğümleri doğrudan JSX olarak render edilebilir. Standart etiketler otomatik olarak çalışır.

    App.tsx
    import { useIntlayer } from "react-intlayer";const AppContent = () => {  const { myHtmlContent } = useIntlayer("app");  return <div>{myHtmlContent}</div>;};

    Özelleştirilmiş bileşen sağlamak veya etiketleri geçersiz kılmak için .use() metodunu kullanın:

    tsx
    {myHtmlContent.use({  p: (props) => <p className="prose" {...props} />,  CustomLink: ({ children }) => <a href="/details">{children}</a>,})}

    HTMLProvider ile Genel Yapılandırma

    HTML render'lamasını tüm uygulamanız için global olarak yapılandırabilirsiniz. Bu, tüm HTML içeriğinde kullanılabilir olması gereken özel bileşenleri tanımlamak için idealdir.

    AppProvider.tsx
    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>);

    Kendi HTML oluşturucunuzu da kullanabilirsiniz:

    AppProvider.tsx
    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>);
    HTML oluşturucunuzu dinamik olarak içe aktarmak, uygulamanızın bundle boyutunu azaltmanın iyi bir yoludur.

    Manuel Renderlama ve Gelişmiş Araçlar

    Ham HTML string'lerini render etmeniz gerekiyorsa veya bileşen eşlemesinde daha fazla kontrole ihtiyacınız varsa, aşağıdaki araçları kullanın.

    <HTMLRenderer /> Bileşeni

    tsx
    import { HTMLRenderer } from "react-intlayer/html";<HTMLRenderer components={{ p: MyCustomP }}>  {"<p>Merhaba Dünya</p>"}</HTMLRenderer>

    useHTMLRenderer() Hook

    Ön yapılandırılmış bir renderer fonksiyonu alın.

    tsx
    import { useHTMLRenderer } from "react-intlayer/html";const renderHTML = useHTMLRenderer({  components: { strong: (props) => <strong {...props} className="text-red-500" /> }});return renderHTML("<p>Merhaba <strong>Dünya</strong></p>");

    renderHTML() Yardımcı Aracı

    Bileşenlerin dışında render yapmak için bağımsız yardımcı araç.

    tsx
    import { renderHTML } from "react-intlayer/html";const jsx = renderHTML("<p>Merhaba</p>", { components: { p: 'div' } });

    Seçenekler Referansı

    Bu seçenekler HTMLProvider, HTMLRenderer, useHTMLRenderer ve renderHTML'e iletilebilir.

    Seçenek Tür Varsayılan Açıklama
    components Record<string, any> {} HTML etiketlerini veya özel bileşen isimlerini bileşenlere eşleyen bir harita.
    renderHTML Function null Varsayılan HTML ayrıştırıcısını tamamen değiştirmek için özel bir render fonksiyonu (Sadece Vue/Svelte sağlayıcıları için).
    Not: React ve Preact için standart HTML etiketleri otomatik olarak sağlanır. Bunları geçersiz kılmak veya özel bileşenler eklemek istiyorsanız yalnızca components prop'unu geçirmeniz yeterlidir.