Pose una domanda e ottieni un riassunto del documento facendo riferimento a questa pagina e al provider AI di tua scelta
Cronologia delle versioni
- "Consenti la pre-analisi dell'AST Markdown per SSR / idratazione"v8.11.028/05/2026
- "Aggiunto il supporto per i file `.content.md`"v8.10.019/05/2026
- "Aggiunto l'oggetto plugin `intlayerMarkdown`; usa `app.use(intlayerMarkdown)` al posto di `app.use(installIntlayerMarkdown)`"v8.5.024/03/2026
- "Spostata l'importazione da `{{framework}}-intlayer` a `{{framework}}-intlayer/markdown`"v8.5.024/03/2026
- "Aggiunte le utility MarkdownRenderer / useMarkdownRenderer / renderMarkdown e l'opzione forceInline"v8.0.022/01/2026
- "Decorazione automatica dei contenuti markdown, supporto per MDX e SSR"v8.0.018/01/2026
- "Inizializzazione della cronologia"v5.5.1029/06/2025
Il contenuto di questa pagina è stato tradotto con un'IA.
Vedi l'ultima versione del contenuto originale in ingleseSe hai un’idea per migliorare questa documentazione, non esitare a contribuire inviando una pull request su GitHub.
Collegamento GitHub alla documentazioneCopia il Markdown del documento nella porta-documenti
Markdown / Contenuti Rich Text
Intlayer supporta contenuti rich text definiti utilizzando la sintassi Markdown. Questo ti permette di scrivere e mantenere facilmente contenuti con formattazione ricca, come blog, articoli e molto altro.
Dichiarare Contenuti Markdown
Puoi dichiarare i contenuti Markdown usando la funzione md o semplicemente come stringa (se contiene la sintassi Markdown).
Dalla versione 8.10.0, puoi dichiarare i contenuti Markdown direttamente nei file .content.md. Intlayer rileverà e analizzerà automaticamente il contenuto Markdown.
Copiare il codice nella clipboard
Il campo front-matter locale è il campo che definisce la lingua del contenuto. È facoltativo. Se non viene fornito, Intlayer utilizzerà la lingua predefinita, che viene anche utilizzata come lingua di fallback se non è disponibile alcuna traduzione per una lingua specifica.
Esempio di struttura dei file:
Copiare il codice nella clipboard
Puoi aggiungere nel front-matter qualsiasi proprietà definita nella Definizione del Dizionario
Usa la funzione md per dichiarare esplicitamente i contenuti Markdown. Questo è utile se vuoi assicurarti che una stringa venga trattata come Markdown anche se non contiene una sintassi evidente.
Copiare il codice nella clipboard
Importa direttamente i file .md usando la funzione file.
Copiare il codice nella clipboard
Se la stringa contiene indicatori comuni di Markdown (come intestazioni, elenchi, link, ecc.), Intlayer la trasformerà automaticamente.
Copiare il codice nella clipboard
Rendering del Markdown
Intlayer fornisce due modi indipendenti per eseguire il rendering del Markdown:
Tramite
useIntlayer— Intlayer trasforma automaticamente il nodomdnell'output nativo del framework (JSX, VNode, stringa HTML).- Il Frontmatter viene analizzato ed esposto come
.metadata. Puoi sovrascrivere il rendering su due livelli — globalmente conMarkdownProvider(o l'equivalente nel framework) e localmente per nodo con.use(). Entrambi possono essere combinati;.use()ha priorità suMarkdownProvider, il quale ha priorità su quello predefinito.
- Il Frontmatter viene analizzato ed esposto come
Utility di supporto —
<MarkdownRenderer />,useMarkdownRenderer(), erenderMarkdown()sono strumenti indipendenti che accettano solo stringhe Markdown pure. Sono indipendenti dauseIntlayere non funzionano con i nodi decorati che esso restituisce.
Il rendering del Markdown supporta MDX — usa qualsiasi componente JSX/framework tramite nome direttamente nel tuo Markdown.
1. Rendering Automatico (tramite useIntlayer)
I nodi Markdown possono essere renderizzati direttamente come JSX.
Copiare il codice nella clipboard
Se MarkdownProvider non è presente, Intlayer eseguirà il rendering del markdown usando il parser da Markdown a JSX predefinito.
Puoi anche fornire sovrascritture locali per nodi specifici utilizzando il metodo .use():
Copiare il codice nella clipboard
Puoi recuperare il Markdown come stringa:
Copiare il codice nella clipboard
E puoi accedere ai metadati del tuo markdown in questo modo:
Copiare il codice nella clipboard
I nodi Markdown possono essere renderizzati direttamente come JSX.
Copiare il codice nella clipboard
Se MarkdownProvider non è presente, Intlayer eseguirà il rendering del markdown usando il parser da Markdown a JSX predefinito.
Puoi anche fornire sovrascritture locali per nodi specifici utilizzando il metodo .use():
Copiare il codice nella clipboard
Puoi recuperare il Markdown come stringa:
Copiare il codice nella clipboard
E puoi accedere ai metadati del tuo markdown in questo modo:
Copiare il codice nella clipboard
In Vue, il contenuto Markdown può essere renderizzato usando il tag component integrato o direttamente come nodo.
Copiare il codice nella clipboard
Configura globalmente tramite il plugin intlayerMarkdown (supporta componenti MDX personalizzati):
Copiare il codice nella clipboard
Se il plugin intlayerMarkdown non è installato, Intlayer eseguirà il rendering utilizzando il compilatore predefinito.
Puoi anche fornire sovrascritture locali per nodi specifici utilizzando il metodo .use():
Copiare il codice nella clipboard
Puoi recuperare il Markdown come stringa:
Copiare il codice nella clipboard
E puoi accedere ai metadati del tuo markdown in questo modo:
Copiare il codice nella clipboard
Svelte renderizza il Markdown come una stringa HTML per impostazione predefinita. Usa {@html} per renderizzarlo.
Copiare il codice nella clipboard
Se MarkdownProvider non è presente, Intlayer renderizzerà il markdown usando il compilatore predefinito.
Puoi anche fornire sovrascritture locali per nodi specifici utilizzando il metodo .use():
Copiare il codice nella clipboard
Puoi recuperare il Markdown come stringa:
Copiare il codice nella clipboard
E puoi accedere ai metadati del tuo markdown in questo modo:
Copiare il codice nella clipboard
Preact supporta i nodi Markdown direttamente in JSX.
Copiare il codice nella clipboard
Se MarkdownProvider non è presente, Intlayer eseguirà il rendering del markdown usando il parser da Markdown a JSX predefinito.
Puoi anche fornire sovrascritture locali per nodi specifici utilizzando il metodo .use():
Copiare il codice nella clipboard
Puoi recuperare il Markdown come stringa:
Copiare il codice nella clipboard
E puoi accedere ai metadati del tuo markdown in questo modo:
Copiare il codice nella clipboard
Solid supporta i nodi Markdown direttamente in JSX.
Copiare il codice nella clipboard
Se MarkdownProvider non è presente, Intlayer eseguirà il rendering del markdown usando il parser da Markdown a JSX predefinito.
Puoi anche fornire sovrascritture locali per nodi specifici utilizzando il metodo .use():
Copiare il codice nella clipboard
Puoi recuperare il Markdown come stringa:
Copiare il codice nella clipboard
E puoi accedere ai metadati del tuo markdown in questo modo:
Copiare il codice nella clipboard
Angular utilizza la direttiva [innerHTML] per eseguire il rendering del contenuto Markdown.
Copiare il codice nella clipboard
Se il provider IntlayerMarkdown non è configurato, Intlayer eseguirà il rendering utilizzando il compilatore predefinito.
Puoi anche fornire sovrascritture locali per nodi specifici utilizzando il metodo .use():
Copiare il codice nella clipboard
Puoi recuperare il Markdown come stringa:
Copiare il codice nella clipboard
E puoi accedere ai metadati del tuo markdown in questo modo:
Copiare il codice nella clipboard
2. Utility di Supporto (Solo Stringhe Markdown)
Queste utility eseguono il rendering solo di stringhe Markdown pure e sono indipendenti da useIntlayer. Usale quando hai bisogno di renderizzare Markdown da fonti diverse dai tuoi dizionari.
Componente <MarkdownRenderer />
Esegue il rendering di una stringa Markdown con opzioni specifiche.
Copiare il codice nella clipboard
Hook useMarkdownRenderer()
Ottieni una funzione di rendering preconfigurata.
Copiare il codice nella clipboard
Utility renderMarkdown()
Utility indipendente per il rendering al di fuori dei componenti.
Copiare il codice nella clipboard
Componente <MarkdownRenderer />
Esegue il rendering di una stringa Markdown con opzioni specifiche.
Copiare il codice nella clipboard
Hook useMarkdownRenderer()
Ottieni una funzione di rendering preconfigurata.
Copiare il codice nella clipboard
Utility renderMarkdown()
Utility indipendente per il rendering al di fuori dei componenti.
Copiare il codice nella clipboard
Componente <MarkdownRenderer />
Copiare il codice nella clipboard
Componente <MarkdownRenderer />
Copiare il codice nella clipboard
Hook useMarkdownRenderer()
Copiare il codice nella clipboard
Utility renderMarkdown()
Copiare il codice nella clipboard
Componente <MarkdownRenderer />
Copiare il codice nella clipboard
Hook useMarkdownRenderer()
Copiare il codice nella clipboard
Utility renderMarkdown()
Copiare il codice nella clipboard
Componente <MarkdownRenderer />
Copiare il codice nella clipboard
Hook useMarkdownRenderer()
Copiare il codice nella clipboard
Utility renderMarkdown()
Copiare il codice nella clipboard
Servizio IntlayerMarkdownService
Esegue il rendering di una stringa Markdown utilizzando il servizio.
Copiare il codice nella clipboard
Configurazione Globale con MarkdownProvider
Il MarkdownProvider (o il suo equivalente nel framework) configura la pipeline di rendering Markdown per l'intera applicazione. Questo si applica sia al rendering automatico di useIntlayer che alle utility di supporto. Le opzioni impostate qui sono quelle predefinite — .use() le sovrascrive a livello di nodo.
Copiare il codice nella clipboard
MDX è supportato — qualsiasi nome di componente usato all'interno del tuo Markdown (es.<MyCustomJSXComponent />) viene risolto tramite la mappacomponents.
Puoi anche usare il tuo renderer markdown:
Copiare il codice nella clipboard
Importare dinamicamente il tuo renderer Markdown è un buon modo per ridurre le dimensioni del bundle della tua applicazione.
Copiare il codice nella clipboard
MDX è supportato — qualsiasi nome di componente usato all'interno del tuo Markdown (es.<MyCustomJSXComponent />) viene risolto tramite la mappacomponents.
Puoi anche usare il tuo renderer markdown:
Copiare il codice nella clipboard
Importare dinamicamente il tuo renderer Markdown è un buon modo per ridurre le dimensioni del bundle della tua applicazione.
Copiare il codice nella clipboard
MDX è supportato — qualsiasi nome di componente usato all'interno del tuo Markdown (es.<MyCustomJSXComponent />) viene risolto tramite la mappacomponents.
Puoi anche usare il tuo renderer markdown:
Copiare il codice nella clipboard
Importare dinamicamente il tuo renderer Markdown è un buon modo per ridurre le dimensioni del bundle della tua applicazione.
Copiare il codice nella clipboard
MDX è supportato — qualsiasi nome di componente usato all'interno del tuo Markdown (es.<MyCustomJSXComponent />) viene risolto tramite la mappacomponents.
Puoi anche usare il tuo renderer markdown:
Copiare il codice nella clipboard
Importare dinamicamente il tuo renderer Markdown è un buon modo per ridurre le dimensioni del bundle della tua applicazione.
Copiare il codice nella clipboard
MDX è supportato — qualsiasi nome di componente usato all'interno del tuo Markdown (es.<MyCustomJSXComponent />) viene risolto tramite la mappacomponents.
Puoi anche usare il tuo renderer markdown:
Copiare il codice nella clipboard
Importare dinamicamente il tuo renderer Markdown è un buon modo per ridurre le dimensioni del bundle della tua applicazione.
Copiare il codice nella clipboard
MDX è supportato — qualsiasi nome di componente usato all'interno del tuo Markdown (es.<MyCustomJSXComponent />) viene risolto tramite la mappacomponents.
Puoi anche usare il tuo renderer markdown:
Copiare il codice nella clipboard
Importare dinamicamente il tuo renderer Markdown è un buon modo per ridurre le dimensioni del bundle della tua applicazione.
MDX è supportato — qualsiasi nome di componente utilizzato all'interno del tuo Markdown (ad es.<MyCustomJSXComponent />) viene risolto rispetto alla mappacomponents.
Puoi anche usare il tuo markdown renderer personalizzato:
Copiare il codice nella clipboard
Suspense
Il renderer Markdown di Intlayer è caricato dinamicamente. Sebbene ottimizzato, il chunk del parser sottostante è di circa 55 kb. Il caricamento sincrono ritarda il rendering iniziale della pagina e riduce il First Contentful Paint (FCP).
Per evitare di bloccare l'interfaccia utente, Intlayer si integra con l'API Suspense di React. Recupera il parser in background e lancia una Promise durante il download.
Avvolgi qualsiasi componente che renderizza Intlayer Markdown in un limite <Suspense>. Questo visualizza uno stato di fallback localizzato durante il download del chunk, consentendo al resto del DOM di essere renderizzato immediatamente.
Avviso: Se non si fornisce un limite <Suspense>, React sospenderà a livello di root o bloccherà il rendering dell'intero albero dei componenti fino al completo caricamento del chunk di 55 kb.
In Next.js App Router, puoi utilizzare React Suspense per i componenti client o un file loading.tsx per i componenti server.
Componente Client:
Copiare il codice nella clipboard
Componente Server con loading.tsx:
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Vue ha un componente <Suspense> integrato. Avvolgi il componente che renderizza il contenuto Markdown in un limite <Suspense>.
Copiare il codice nella clipboard
Svelte non ha un equivalente dell'API Suspense. Usa un blocco {#await} per gestire il rendering asincrono del contenuto Markdown.
Copiare il codice nella clipboard
Preact supporta l'API Suspense di React tramite preact/compat.
Copiare il codice nella clipboard
Solid ha il suo componente <Suspense> da solid-js.
Copiare il codice nella clipboard
Angular non ha un'API Suspense. Usa le viste differite (@defer) per gestire i contenuti Markdown caricati in modo lazy (richiede Angular 17+).
Copiare il codice nella clipboard
Rendering Lato Server (SSR) e Idratazione
Rispetto ad altri parser Markdown come remark / rehype, Intlayer Markdown è privo di dipendenze e viene eseguito sia sul client che sul server.
Tuttavia, Intlayer ottimizza l'analisi per i framework di rendering lato server (SSR) (come Next.js App Router, React Router, Nuxt, SvelteKit, ecc.).
Invece di inviare stringhe Markdown grezze al client e analizzarle nel browser (il che comporta una penalizzazione delle prestazioni), Intlayer consente di pre-analizzare il Markdown in un albero sintattico astratto (AST) sul server.
È possibile utilizzare la funzione parseMarkdown del pacchetto Intlayer del proprio framework lato server per generare un AST serializzabile (oggetto ParsedMarkdown) e passarlo direttamente al frontend. Tutte le utilità di rendering di Intlayer (come <MarkdownRenderer>, useMarkdownRenderer, ecc.) accettano automaticamente questo oggetto AST e lo renderizzano perfettamente.
Esempio in un'Architettura Server/Client
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Copiare il codice nella clipboard
L'SSR di Angular in genere risolve i dati sul server durante il caricamento iniziale e si idrata sul client. È possibile utilizzare i resolver per passare l'AST.
Copiare il codice nella clipboard
Copiare il codice nella clipboard
Questo modello garantisce che la logica di analisi del Markdown venga eseguita interamente sul server, riducendo significativamente il tempo di esecuzione lato client e migliorando la velocità di idratazione iniziale.
Riferimento opzioni
Queste opzioni possono essere passate a MarkdownProvider, MarkdownRenderer, useMarkdownRenderer e renderMarkdown.
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
| Option | Type | Default | Descrizione |
|---|---|---|---|
forceBlock | boolean | false | Forza l'output a essere avvolto in un elemento a livello di blocco (es. <div>). |
forceInline | boolean | false | Forza l'output a essere avvolto in un elemento in linea (es. <span>). |
tagfilter | boolean | true | Abilita il GitHub Tag Filter per una maggiore sicurezza rimuovendo i tag HTML pericolosi. |
preserveFrontmatter | boolean | false | Se true, il frontmatter all'inizio della stringa Markdown non verrà rimosso. |
components | Overrides | {} | Una mappa di tag HTML per componenti personalizzati (es. { h1: MyHeading }). |
wrapper | Component | null | Un componente personalizzato per avvolgere il Markdown renderizzato. |
renderMarkdown | Function | null | Una funzione di rendering personalizzata per sostituire completamente il compilatore Markdown predefinito. |
