@intlayer/docs 8.10.0-canary.0 → 8.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@
2
2
  createdAt: 2025-02-07
3
3
  updatedAt: 2026-05-19
4
4
  title: Markdown
5
- description: Descubra como declarar e usar conteúdo Markdown no seu site multilíngue com o Intlayer. Siga os passos nesta documentação online para integrar o Markdown de forma simples ao seu projeto.
5
+ description: Aprenda como declarar e usar conteúdo Markdown em seu site multilíngue com o Intlayer. Siga os passos nesta documentação online para integrar o Markdown de forma nativa ao seu projeto.
6
6
  keywords:
7
7
  - Markdown
8
8
  - Internacionalização
@@ -19,22 +19,22 @@ slugs:
19
19
  history:
20
20
  - version: 8.10.0
21
21
  date: 2026-05-19
22
- changes: "Adicionar suporte a arquivos `.content.md`"
22
+ changes: "Adicionado suporte a arquivos `.content.md`"
23
23
  - version: 8.5.0
24
24
  date: 2026-03-24
25
- changes: "Add `intlayerMarkdown` plugin object; use `app.use(intlayerMarkdown)` instead of `app.use(installIntlayerMarkdown)`"
25
+ changes: "Adicionado o objeto plugin `intlayerMarkdown`; use `app.use(intlayerMarkdown)` em vez de `app.use(installIntlayerMarkdown)`"
26
26
  - version: 8.5.0
27
27
  date: 2026-03-24
28
- changes: "mover a importação de {{framework}}-intlayer para {{framework}}-intlayer/markdown"
28
+ changes: "Movida a importação de `{{framework}}-intlayer` para `{{framework}}-intlayer/markdown`"
29
29
  - version: 8.0.0
30
30
  date: 2026-01-22
31
- changes: "Adicionar MarkdownRenderer / useMarkdownRenderer / utilitário renderMarkdown e opção forceInline"
31
+ changes: "Adicionada a utilidade MarkdownRenderer / useMarkdownRenderer / renderMarkdown e a opção forceInline"
32
32
  - version: 8.0.0
33
33
  date: 2026-01-18
34
- changes: "Decoração automática do conteúdo markdown, suporte MDX e SSR"
34
+ changes: "Decoração automática de conteúdo markdown, suporte a MDX e SSR"
35
35
  - version: 5.5.10
36
36
  date: 2025-06-29
37
- changes: "Init history"
37
+ changes: "Histórico inicializado"
38
38
  ---
39
39
 
40
40
  # Markdown / Conteúdo de Texto Rico
@@ -43,27 +43,27 @@ O Intlayer suporta conteúdo de texto rico definido usando a sintaxe Markdown. I
43
43
 
44
44
  ## Declarando Conteúdo Markdown
45
45
 
46
- Você pode declarar conteúdo Markdown usando a função `md` ou simplesmente como uma string (se contiver sintaxe Markdown).
46
+ Você pode declarar conteúdo Markdown usando a função `md` ou simplesmente como uma string (se ela contiver sintaxe Markdown).
47
47
 
48
48
  <Tabs>
49
49
  <Tab label=".content.md" value=".content.md">
50
- A partir da versão `8.10.0`, você pode declarar conteúdo Markdown diretamente em arquivos `.content.md`. O Intlayer irá detectar e analisar automaticamente o conteúdo Markdown.
50
+ A partir da versão `8.10.0`, você pode declarar conteúdo Markdown diretamente em arquivos `.content.md`. O Intlayer detectará e processará automaticamente o conteúdo Markdown.
51
51
 
52
- ```md fileName="markdown-file.pt.content.md"
52
+ ```md fileName="markdown-file.en.content.md"
53
53
  ---
54
- key: meu-conteudo-markdown
54
+ key: my-markdown-content
55
55
  description: Meu conteúdo
56
- locale: pt
56
+ locale: en
57
57
  ---
58
58
 
59
59
  # Meu conteúdo
60
60
 
61
- Aqui está um exemplo de conteúdo Markdown
61
+ Aqui está um exemplo de conteúdo markdown
62
62
  ```
63
63
 
64
- O campo frontmatter `locale` é o campo que define o idioma (locale) do conteúdo. É opcional. Se não for fornecido, o Intlayer usará o idioma padrão, que também é usado como idioma de fallback se nenhuma tradução estiver disponível para um idioma específico.
64
+ O campo `locale` no front-matter é o campo que define a localização do conteúdo. É opcional. Se não for fornecido, o Intlayer usará o idioma padrão, que também é usado como idioma de fallback caso não haja tradução disponível para um idioma específico.
65
65
 
66
- Exemplo de estrutura de arquivos:
66
+ Exemplo de estrutura de diretórios:
67
67
 
68
68
  ```text
69
69
  content/
@@ -75,11 +75,11 @@ Você pode declarar conteúdo Markdown usando a função `md` ou simplesmente co
75
75
  └── markdown-file.es.content.md
76
76
  ```
77
77
 
78
- Você pode adicionar no front-matter quaisquer propriedades definidas na [definição do Dicionário](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/dictionary/content_file.md)
78
+ Você pode adicionar no front-matter quaisquer propriedades definidas na [Definição de Dicionário](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/dictionary/content_file.md)
79
79
 
80
80
  </Tab>
81
- <Tab label="Envolvimento Manual" value="manual-wrapping">
82
- Use a função `md` para declarar explicitamente conteúdo Markdown. Isso é útil se você quiser garantir que uma string seja tratada como Markdown mesmo que não contenha sintaxe óbvia.
81
+ <Tab label="Empacotamento Manual" value="manual-wrapping">
82
+ Use a função `md` para declarar explicitamente o conteúdo Markdown. Isso é útil se você quiser garantir que uma string seja tratada como Markdown, mesmo que não contenha sintaxe óbvia.
83
83
 
84
84
  ```typescript fileName="markdownDictionary.content.ts"
85
85
  import { md, type Dictionary } from "intlayer";
@@ -95,34 +95,34 @@ Você pode declarar conteúdo Markdown usando a função `md` ou simplesmente co
95
95
  ```
96
96
 
97
97
  </Tab>
98
- <Tab label="Detecção Automática" value="automatic-detection">
99
- Se a string contiver indicadores comuns de Markdown (como cabeçalhos, listas, links, etc.), o Intlayer irá transformá-la automaticamente.
98
+ <Tab label="Arquivos Externos" value="external-files">
99
+ Importe arquivos `.md` diretamente usando a função `file`.
100
100
 
101
101
  ```typescript fileName="markdownDictionary.content.ts"
102
+ import { md, file, t } from "intlayer";
103
+
102
104
  export default {
103
105
  key: "app",
104
- contentAutoTransformation: true, // Ativar a detecção automática de conteúdo Markdown - Pode ser definido globalmente em intlayer.config.ts
105
106
  content: {
106
- myMarkdownContent: "## Meu título \n\nLorem Ipsum",
107
+ content: t({
108
+ en: md(file("./myMarkdown.en.md")),
109
+ pt: md(file("./myMarkdown.pt.md")),
110
+ }),
107
111
  },
108
112
  };
109
113
  ```
110
114
 
111
115
  </Tab>
112
- <Tab label="Arquivos Externos" value="external-files">
113
- Importe arquivos `.md` diretamente usando a função `file`.
114
116
 
115
- ```typescript fileName="markdownDictionary.content.ts"
116
- import { md, file, t } from "intlayer";
117
+ <Tab label="Detecção Automática" value="automatic-detection">
118
+ Se a string contiver indicadores Markdown comuns (como cabeçalhos, listas, links, etc.), o Intlayer a transformará automaticamente.
117
119
 
120
+ ```typescript fileName="markdownDictionary.content.ts"
118
121
  export default {
119
122
  key: "app",
123
+ contentAutoTransformation: true, // Ativar detecção automática de conteúdo Markdown - Pode ser definido globalmente em intlayer.config.ts
120
124
  content: {
121
- content: t({
122
- en: md(file("./myMarkdown.en.md")),
123
- fr: md(file("./myMarkdown.fr.md")),
124
- pt: md(file("./myMarkdown.pt.md")),
125
- }),
125
+ myMarkdownContent: "## Meu título \n\nLorem Ipsum",
126
126
  },
127
127
  };
128
128
  ```
@@ -132,38 +132,74 @@ Você pode declarar conteúdo Markdown usando a função `md` ou simplesmente co
132
132
 
133
133
  ---
134
134
 
135
- ## Renderização de Markdown
135
+ ## Renderizando Markdown
136
+
137
+ O Intlayer fornece duas maneiras independentes de renderizar Markdown:
138
+
139
+ 1. **Através do `useIntlayer`**
140
+ — O Intlayer transforma automaticamente o nó `md` na saída nativa do framework (JSX, VNode, string HTML).
141
+ - O Frontmatter é analisado e exposto como `.metadata`. Você pode substituir a renderização em dois níveis — globalmente com `MarkdownProvider` (ou o equivalente do framework) e localmente por nó com `.use()`. Ambos podem ser combinados; `.use()` tem prioridade sobre `MarkdownProvider`, que por sua vez tem prioridade sobre o padrão.
136
142
 
137
- A renderização pode ser feita automaticamente pelo sistema de conteúdo do Intlayer ou manualmente usando ferramentas especializadas.
143
+ 2. **Utilitários auxiliares** `<MarkdownRenderer />`, `useMarkdownRenderer()` e `renderMarkdown()` são ferramentas autônomas que aceitam **apenas strings Markdown brutas**. Elas são independentes do `useIntlayer` e não funcionam com os nós decorados que ele retorna.
138
144
 
139
- ### 1. Renderização automática (usando `useIntlayer`)
145
+ A renderização do Markdown suporta **MDX** — use qualquer componente JSX/framework por nome diretamente no seu Markdown.
140
146
 
141
- Quando você acessa conteúdo via `useIntlayer`, os nós Markdown já estão preparados para renderização.
147
+ ### 1. Renderização Automática (através de `useIntlayer`)
142
148
 
143
149
  <Tabs group="framework">
144
150
  <Tab label="React / Next.js" value="react">
145
- Os nós Markdown podem ser renderizados diretamente como JSX.
151
+ Nós Markdown podem ser renderizados diretamente como JSX.
146
152
 
147
153
  ```tsx fileName="App.tsx"
148
154
  import { useIntlayer } from "react-intlayer";
155
+ import { MarkdownProvider } from "react-intlayer/markdown";
149
156
 
150
157
  const AppContent = () => {
151
158
  const { myMarkdownContent } = useIntlayer("app");
159
+
152
160
  return <div>{myMarkdownContent}</div>;
153
161
  };
162
+
163
+ const App = () => (
164
+ <MarkdownProvider
165
+ components={{
166
+ h1: ({ children }) => <h1 style={{ color: "red" }}>{children}</h1>,
167
+ MyButton: (props) => <button {...props} />, // Componente MDX
168
+ }}
169
+ >
170
+ <AppContent />
171
+ </MarkdownProvider>
172
+ );
154
173
  ```
155
174
 
175
+ > Se o `MarkdownProvider` não estiver presente, o Intlayer renderizará o markdown usando o parser padrão Markdown-para-JSX.
176
+
156
177
  Você também pode fornecer substituições locais para nós específicos usando o método `.use()`:
157
178
 
158
179
  ```tsx
159
180
  {myMarkdownContent.use({
160
- h1: ({ children }) => <h1 className="text-3xl font-bold">{children}</h1>,
181
+ h1: ({ children }) => <h1 style={{ color: "red" }}>{children}</h1>,
161
182
  })}
162
183
  ```
163
184
 
185
+ Você pode recuperar o Markdown como string:
186
+
187
+ ```tsx
188
+ {myMarkdownContent.value}
189
+ {String(myMarkdownContent)}
190
+ {myMarkdownContent.toString()}
191
+ ```
192
+
193
+ E você pode acessar os metadados do markdown assim:
194
+
195
+ ```tsx
196
+ {myMarkdownContent.metadata}
197
+ {myMarkdownContent.metadata.title}
198
+ ```
199
+
164
200
  </Tab>
165
201
  <Tab label="Vue" value="vue">
166
- No Vue, o conteúdo Markdown pode ser renderizado usando o built-in `component` ou diretamente como um nó.
202
+ No Vue, o conteúdo Markdown pode ser renderizado usando a tag nativa `component` ou diretamente como um nó.
167
203
 
168
204
  ```vue fileName="App.vue"
169
205
  <script setup>
@@ -176,48 +212,188 @@ Quando você acessa conteúdo via `useIntlayer`, os nós Markdown já estão pre
176
212
  </template>
177
213
  ```
178
214
 
215
+ Configure globalmente via plugin `intlayerMarkdown` (suporta componentes MDX personalizados):
216
+
217
+ ```ts fileName="main.ts"
218
+ import { intlayerMarkdown } from "vue-intlayer/markdown";
219
+
220
+ app.use(intlayerMarkdown, {
221
+ components: {
222
+ h1: (props) => h('h1', { style: { color: 'green' } }, props.children),
223
+ MyButton: (props) => h('button', props), // Componente MDX
224
+ },
225
+ });
226
+ ```
227
+
228
+ > Se o plugin `intlayerMarkdown` não estiver instalado, o Intlayer renderizará usando o compilador padrão.
229
+
230
+ Você também pode fornecer substituições locais para nós específicos usando o método `.use()`:
231
+
232
+ ```vue
233
+ <component :is="myMarkdownContent.use({
234
+ h1: (props) => h('h1', { style: { color: 'red' } }, props.children),
235
+ })" />
236
+ ```
237
+
238
+ Você pode recuperar o Markdown como string:
239
+
240
+ ```vue
241
+ {{ myMarkdownContent.value }}
242
+ {{ String(myMarkdownContent) }}
243
+ {{ myMarkdownContent.toString() }}
244
+ ```
245
+
246
+ E você pode acessar os metadados do markdown assim:
247
+
248
+ ```vue
249
+ <component :is="myMarkdownContent.metadata" />
250
+ <component :is="myMarkdownContent.metadata.title" />
251
+ ```
252
+
179
253
  </Tab>
180
254
  <Tab label="Svelte" value="svelte">
181
- O Svelte renderiza Markdown como uma string HTML por padrão. Use `{@html}` para renderizá-lo.
255
+ O Svelte renderiza Markdown como string HTML por padrão. Use `{@html}` para renderizá-lo.
182
256
 
183
- ```svelte
257
+ ```svelte fileName="App.svelte"
184
258
  <script lang="ts">
185
259
  import { useIntlayer } from "svelte-intlayer";
260
+ import { MarkdownProvider } from "svelte-intlayer/markdown";
261
+ import MyHeading from "./MyHeading.svelte";
262
+
186
263
  const content = useIntlayer("app");
187
264
  </script>
188
265
 
189
- {@html $content.myMarkdownContent}
266
+ <MarkdownProvider components={{ h1: MyHeading }}>
267
+ {@html $content.myMarkdownContent}
268
+ </MarkdownProvider>
269
+ ```
270
+
271
+ > Se o `MarkdownProvider` não estiver presente, o Intlayer renderizará o markdown usando o compilador padrão.
272
+
273
+ Você também pode fornecer substituições locais para nós específicos usando o método `.use()`:
274
+
275
+ ```svelte
276
+ {@html $content.myMarkdownContent.use({ ... })}
277
+ ```
278
+
279
+ Você pode recuperar o Markdown como string:
280
+
281
+ ```svelte
282
+ {$content.myMarkdownContent.value}
283
+ {String($content.myMarkdownContent)}
284
+ {$content.myMarkdownContent.toString()}
285
+ ```
286
+
287
+ E você pode acessar os metadados do markdown assim:
288
+
289
+ ```svelte
290
+ {$content.myMarkdownContent.metadata}
291
+ {$content.myMarkdownContent.metadata.title}
190
292
  ```
191
293
 
192
294
  </Tab>
193
295
  <Tab label="Preact" value="preact">
194
- Preact suporta nós Markdown diretamente no JSX.
296
+ O Preact suporta nós Markdown diretamente em JSX.
195
297
 
196
298
  ```tsx fileName="App.tsx"
197
299
  import { useIntlayer } from "preact-intlayer";
300
+ import { MarkdownProvider } from "preact-intlayer/markdown";
198
301
 
199
302
  const AppContent = () => {
200
303
  const { myMarkdownContent } = useIntlayer("app");
201
304
  return <div>{myMarkdownContent}</div>;
202
305
  };
306
+
307
+ const App = () => (
308
+ <MarkdownProvider
309
+ components={{
310
+ h1: ({ children }) => <h1 style={{ color: "red" }}>{children}</h1>,
311
+ MyButton: (props) => <button {...props} />, // Componente MDX
312
+ }}
313
+ >
314
+ <AppContent />
315
+ </MarkdownProvider>
316
+ );
317
+ ```
318
+
319
+ > Se o `MarkdownProvider` não estiver presente, o Intlayer renderizará o markdown usando o parser padrão Markdown-para-JSX.
320
+
321
+ Você também pode fornecer substituições locais para nós específicos usando o método `.use()`:
322
+
323
+ ```tsx
324
+ {myMarkdownContent.use({
325
+ h1: ({ children }) => <h1 style={{ color: "red" }}>{children}</h1>,
326
+ })}
327
+ ```
328
+
329
+ Você pode recuperar o Markdown como string:
330
+
331
+ ```tsx
332
+ {myMarkdownContent.value}
333
+ {String(myMarkdownContent)}
334
+ {myMarkdownContent.toString()}
335
+ ```
336
+
337
+ E você pode acessar os metadados do markdown assim:
338
+
339
+ ```tsx
340
+ {myMarkdownContent.metadata}
341
+ {myMarkdownContent.metadata.title}
203
342
  ```
204
343
 
205
344
  </Tab>
206
345
  <Tab label="Solid" value="solid">
207
- Solid suporta nós Markdown diretamente no JSX.
346
+ O Solid suporta nós Markdown diretamente em JSX.
208
347
 
209
348
  ```tsx fileName="App.tsx"
210
349
  import { useIntlayer } from "solid-intlayer";
350
+ import { MarkdownProvider } from "solid-intlayer/markdown";
211
351
 
212
352
  const AppContent = () => {
213
353
  const { myMarkdownContent } = useIntlayer("app");
214
354
  return <div>{myMarkdownContent}</div>;
215
355
  };
356
+
357
+ const App = () => (
358
+ <MarkdownProvider
359
+ components={{
360
+ h1: (props) => <h1 style={{ color: "red" }}>{props.children}</h1>,
361
+ MyButton: (props) => <button {...props} />, // Componente MDX
362
+ }}
363
+ >
364
+ <AppContent />
365
+ </MarkdownProvider>
366
+ );
367
+ ```
368
+
369
+ > Se o `MarkdownProvider` não estiver presente, o Intlayer renderizará o markdown usando o parser padrão Markdown-para-JSX.
370
+
371
+ Você também pode fornecer substituições locais para nós específicos usando o método `.use()`:
372
+
373
+ ```tsx
374
+ {myMarkdownContent.use({
375
+ h1: (props) => <h1 style={{ color: "red" }}>{props.children}</h1>,
376
+ })}
377
+ ```
378
+
379
+ Você pode recuperar o Markdown como string:
380
+
381
+ ```tsx
382
+ {myMarkdownContent.value}
383
+ {String(myMarkdownContent)}
384
+ {myMarkdownContent.toString()}
385
+ ```
386
+
387
+ E você pode acessar os metadados do markdown assim:
388
+
389
+ ```tsx
390
+ {myMarkdownContent.metadata}
391
+ {myMarkdownContent.metadata.title}
216
392
  ```
217
393
 
218
394
  </Tab>
219
395
  <Tab label="Angular" value="angular">
220
- Angular utiliza a diretiva `[innerHTML]` para renderizar conteúdo Markdown.
396
+ O Angular usa a diretiva `[innerHTML]` para renderizar conteúdo Markdown.
221
397
 
222
398
  ```typescript fileName="app.component.ts"
223
399
  import { Component } from "@angular/core";
@@ -232,6 +408,8 @@ Quando você acessa conteúdo via `useIntlayer`, os nós Markdown já estão pre
232
408
  }
233
409
  ```
234
410
 
411
+ > Se o provedor IntlayerMarkdown não estiver configurado, o Intlayer renderizará usando o compilador padrão.
412
+
235
413
  Você também pode fornecer substituições locais para nós específicos usando o método `.use()`:
236
414
 
237
415
  ```typescript
@@ -240,16 +418,35 @@ Quando você acessa conteúdo via `useIntlayer`, os nós Markdown já estão pre
240
418
  })
241
419
  ```
242
420
 
421
+ Você pode recuperar o Markdown como string:
422
+
423
+ ```typescript
424
+ content().myMarkdownContent.value
425
+ String(content().myMarkdownContent)
426
+ content().myMarkdownContent.toString()
427
+ ```
428
+
429
+ E você pode acessar os metadados do markdown assim:
430
+
431
+ ```typescript
432
+ content().myMarkdownContent.metadata
433
+ content().myMarkdownContent.metadata.title
434
+ ```
435
+
243
436
  </Tab>
244
437
  </Tabs>
245
438
 
246
- ### 2. Renderização Manual e Ferramentas Avançadas
439
+ ### 2. Utilitários auxiliares (Somente Strings Markdown)
247
440
 
248
- Se precisar renderizar strings Markdown brutas ou tiver mais controlo sobre o processo de renderização, use as seguintes ferramentas.
441
+ Estes utilitários renderizam **apenas strings Markdown brutas** e são independentes do `useIntlayer`. Use-os quando precisar renderizar Markdown de fontes além de seus dicionários.
249
442
 
250
443
  <Tabs group="framework">
251
444
  <Tab label="React / Next.js" value="react">
252
445
 
446
+ #### Componente `<MarkdownRenderer />`
447
+
448
+ Renderiza uma string Markdown com opções específicas.
449
+
253
450
  ```tsx
254
451
  import { MarkdownRenderer } from "react-intlayer/markdown";
255
452
 
@@ -260,7 +457,7 @@ Se precisar renderizar strings Markdown brutas ou tiver mais controlo sobre o pr
260
457
 
261
458
  #### Hook `useMarkdownRenderer()`
262
459
 
263
- Obtenha uma função de renderização pré-configurada.
460
+ Obtém uma função de renderização pré-configurada.
264
461
 
265
462
  ```tsx
266
463
  import { useMarkdownRenderer } from "react-intlayer/markdown";
@@ -274,7 +471,7 @@ Se precisar renderizar strings Markdown brutas ou tiver mais controlo sobre o pr
274
471
  ```
275
472
 
276
473
  #### Utilitário `renderMarkdown()`
277
- Utilitário independente para renderização fora de componentes.
474
+ Utilitário autônomo para renderização fora dos componentes.
278
475
 
279
476
  ```tsx
280
477
  import { renderMarkdown } from "react-intlayer/markdown";
@@ -394,7 +591,7 @@ Se precisar renderizar strings Markdown brutas ou tiver mais controlo sobre o pr
394
591
  </Tab>
395
592
  <Tab label="Angular" value="angular">
396
593
  #### Serviço `IntlayerMarkdownService`
397
- Renderize uma string Markdown utilizando o serviço.
594
+ Renderiza uma string Markdown usando o serviço.
398
595
 
399
596
  ```typescript
400
597
  import { IntlayerMarkdownService } from "angular-intlayer/markdown";
@@ -415,7 +612,7 @@ Se precisar renderizar strings Markdown brutas ou tiver mais controlo sobre o pr
415
612
 
416
613
  ## Configuração Global com `MarkdownProvider`
417
614
 
418
- Você pode configurar a renderização de Markdown globalmente para toda a sua aplicação. Isso evita passar as mesmas props para cada renderer.
615
+ O `MarkdownProvider` (ou o seu equivalente do framework) configura o pipeline de renderização Markdown para toda a sua aplicação. Aplica-se tanto para a renderização automática do `useIntlayer` quanto para os utilitários auxiliares. Opções definidas aqui são os padrões — o `.use()` substitui-os em nível de nó.
419
616
 
420
617
  <Tabs group="framework">
421
618
  <Tab label="React / Next.js" value="react">
@@ -426,8 +623,9 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
426
623
  export const AppProvider = ({ children }) => (
427
624
  <MarkdownProvider
428
625
  components={{
429
- h1: ({ children }) => <h1 className="text-2xl font-bold">{children}</h1>,
430
- a: ({ href, children }) => <Link to={href}>{children}</Link>,
626
+ h1: (props) => <h1 style={{color: 'green'}} {...props} />,
627
+ a: ({ href, ...props }) => <a style={{color: 'red'}} {...props} />,
628
+ MyCustomJSXComponent: (props) => <span style={{color: 'red'}} {...props} />,
431
629
  }}
432
630
  >
433
631
  {children}
@@ -435,7 +633,9 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
435
633
  );
436
634
  ```
437
635
 
438
- Você também pode usar o seu próprio renderizador de Markdown:
636
+ > O MDX é suportado qualquer nome de componente usado dentro do seu Markdown (ex: `<MyCustomJSXComponent />`) é resolvido com base no mapa de `components`.
637
+
638
+ Você também pode usar seu próprio renderizador de markdown:
439
639
 
440
640
  ```tsx fileName="AppProvider.tsx"
441
641
  import { MarkdownProvider } from "react-intlayer/markdown";
@@ -443,8 +643,9 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
443
643
  export const AppProvider = ({ children }) => (
444
644
  <MarkdownProvider
445
645
  renderMarkdown={async (md) => {
446
- const { compileMarkdown } = await import('react-intlayer/markdown');
447
- return compileMarkdown(md);
646
+ // Use dynamic import to reduce the bundle size of your application
647
+ const { renderMarkdown } = await import('react-intlayer/markdown');
648
+ return renderMarkdown(md);
448
649
  }}
449
650
  >
450
651
  {children}
@@ -452,7 +653,7 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
452
653
  );
453
654
  ```
454
655
 
455
- > Importar dinamicamente o seu renderizador de Markdown é uma boa maneira de reduzir o tamanho do pacote da sua aplicação.
656
+ > Importar dinamicamente o seu renderizador de Markdown é uma ótima maneira de reduzir o tamanho do pacote da sua aplicação.
456
657
 
457
658
  </Tab>
458
659
  <Tab label="Vue" value="vue">
@@ -479,7 +680,7 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
479
680
  app.mount("#app");
480
681
  ```
481
682
 
482
- Você também pode usar o seu próprio renderizador de Markdown:
683
+ Você também pode usar seu próprio renderizador de markdown:
483
684
 
484
685
  ```typescript fileName="main.ts"
485
686
  import { createApp } from "vue";
@@ -492,15 +693,15 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
492
693
  app.use(intlayer);
493
694
  app.use(intlayerMarkdown, {
494
695
  renderMarkdown: async (md) => {
495
- const { compileMarkdown } = await import('vue-intlayer/markdown');
496
- return compileMarkdown(md);
696
+ const { renderMarkdown } = await import('vue-intlayer/markdown');
697
+ return renderMarkdown(md);
497
698
  },
498
699
  });
499
700
 
500
701
  app.mount("#app");
501
702
  ```
502
703
 
503
- > Importar dinamicamente o seu renderizador de Markdown é uma boa maneira de reduzir o tamanho do pacote da sua aplicação.
704
+ > Importar dinamicamente o seu renderizador de Markdown é uma ótima maneira de reduzir o tamanho do pacote da sua aplicação.
504
705
 
505
706
  </Tab>
506
707
  <Tab label="Svelte" value="svelte">
@@ -520,7 +721,7 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
520
721
  </MarkdownProvider>
521
722
  ```
522
723
 
523
- Você também pode usar o seu próprio renderizador de Markdown:
724
+ Você também pode usar seu próprio renderizador de markdown:
524
725
 
525
726
  ```svelte fileName="App.svelte"
526
727
  <script lang="ts">
@@ -529,15 +730,15 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
529
730
 
530
731
  <MarkdownProvider
531
732
  renderMarkdown={async (md) => {
532
- const { compileMarkdown } = await import('svelte-intlayer/markdown');
533
- return compileMarkdown(md);
733
+ const { renderMarkdown } = await import('svelte-intlayer/markdown');
734
+ return renderMarkdown(md);
534
735
  }}
535
736
  >
536
737
  <slot />
537
738
  </MarkdownProvider>
538
739
  ```
539
740
 
540
- > Importar dinamicamente o seu renderizador de Markdown é uma boa maneira de reduzir o tamanho do pacote da sua aplicação.
741
+ > Importar dinamicamente o seu renderizador de Markdown é uma ótima maneira de reduzir o tamanho do pacote da sua aplicação.
541
742
 
542
743
  </Tab>
543
744
  <Tab label="Preact" value="preact">
@@ -556,7 +757,7 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
556
757
  );
557
758
  ```
558
759
 
559
- Você também pode usar o seu próprio renderizador de Markdown:
760
+ Você também pode usar seu próprio renderizador de markdown:
560
761
 
561
762
  ```tsx fileName="AppProvider.tsx"
562
763
  import { MarkdownProvider } from "preact-intlayer/markdown";
@@ -564,8 +765,8 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
564
765
  export const AppProvider = ({ children }) => (
565
766
  <MarkdownProvider
566
767
  renderMarkdown={async (md) => {
567
- const { compileMarkdown } = await import('preact-intlayer/markdown');
568
- return compileMarkdown(md);
768
+ const { renderMarkdown } = await import('preact-intlayer/markdown');
769
+ return renderMarkdown(md);
569
770
  }}
570
771
  >
571
772
  {children}
@@ -573,7 +774,7 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
573
774
  );
574
775
  ```
575
776
 
576
- > Importar dinamicamente o seu renderizador de Markdown é uma boa maneira de reduzir o tamanho do pacote da sua aplicação.
777
+ > Importar dinamicamente o seu renderizador de Markdown é uma ótima maneira de reduzir o tamanho do pacote da sua aplicação.
577
778
 
578
779
  </Tab>
579
780
  <Tab label="Solid" value="solid">
@@ -592,7 +793,7 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
592
793
  );
593
794
  ```
594
795
 
595
- Você também pode usar o seu próprio renderizador de Markdown:
796
+ Você também pode usar seu próprio renderizador de markdown:
596
797
 
597
798
  ```tsx fileName="AppProvider.tsx"
598
799
  import { MarkdownProvider } from "solid-intlayer/markdown";
@@ -600,8 +801,8 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
600
801
  export const AppProvider = (props) => (
601
802
  <MarkdownProvider
602
803
  renderMarkdown={async (md) => {
603
- const { compileMarkdown } = await import('solid-intlayer/markdown');
604
- return compileMarkdown(md);
804
+ const { renderMarkdown } = await import('solid-intlayer/markdown');
805
+ return renderMarkdown(md);
605
806
  }}
606
807
  >
607
808
  {props.children}
@@ -609,59 +810,29 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
609
810
  );
610
811
  ```
611
812
 
612
- > Importar dinamicamente o seu renderizador de Markdown é uma boa maneira de reduzir o tamanho do pacote da sua aplicação.
813
+ > Importar dinamicamente o seu renderizador de Markdown é uma ótima maneira de reduzir o tamanho do pacote da sua aplicação.
613
814
 
614
815
  </Tab>
615
816
  <Tab label="Angular" value="angular">
616
817
 
617
- ```typescript fileName="app.config.ts"
618
- import { createIntlayerMarkdownProvider } from "angular-intlayer/markdown";
619
-
620
- export const appConfig: ApplicationConfig = {
621
- providers: [
622
- createIntlayerMarkdownProvider({
623
- components: {
624
- h1: { class: "text-2xl font-bold" },
625
- },
626
- }),
627
- ],
628
- };
629
- ```
630
-
631
- Você também pode usar o seu próprio renderizador de Markdown:
818
+ ```typescript fileName="app.module.ts"
819
+ import { NgModule } from '@angular/core';
820
+ import { IntlayerMarkdownModule } from 'angular-intlayer/markdown';
632
821
 
633
- ```typescript fileName="app.config.ts"
634
- import { createIntlayerMarkdownProvider } from "angular-intlayer/markdown";
635
-
636
- export const appConfig: ApplicationConfig = {
637
- providers: [
638
- createIntlayerMarkdownProvider({
822
+ @NgModule({
823
+ imports: [
824
+ IntlayerMarkdownModule.forRoot({
639
825
  renderMarkdown: async (md) => {
640
- const { compileMarkdown } = await import('angular-intlayer/markdown');
641
- return compileMarkdown(md);
642
- },
643
- }),
644
- ],
645
- };
826
+ const { renderMarkdown } = await import('angular-intlayer/markdown');
827
+ return renderMarkdown(md);
828
+ }
829
+ })
830
+ ]
831
+ })
832
+ export class AppModule {}
646
833
  ```
647
834
 
648
- > Importar dinamicamente o seu renderizador de Markdown é uma boa maneira de reduzir o tamanho do pacote da sua aplicação.
835
+ > Importar dinamicamente o seu renderizador de Markdown é uma ótima maneira de reduzir o tamanho do pacote da sua aplicação.
649
836
 
650
837
  </Tab>
651
838
  </Tabs>
652
-
653
- ---
654
-
655
- ## Referência de Opções
656
-
657
- Essas opções podem ser passadas para `MarkdownProvider`, `MarkdownRenderer`, `useMarkdownRenderer` e `renderMarkdown`.
658
-
659
- | Opção | Tipo | Padrão | Descrição |
660
- | :-------------------- | :---------- | :------ | :--------------------------------------------------------------------------------------------------- |
661
- | `forceBlock` | `boolean` | `false` | Força a saída a ser envolvida em um elemento de nível de bloco (ex: `<div>`). |
662
- | `forceInline` | `boolean` | `false` | Força a saída a ser envolvida em um elemento inline (ex: `<span>`). |
663
- | `tagfilter` | `boolean` | `true` | Ativa o Filtro de Tags do GitHub para melhorar a segurança ao remover tags HTML perigosas. |
664
- | `preserveFrontmatter` | `boolean` | `false` | Se `true`, o frontmatter no início da string Markdown não será removido. |
665
- | `components` | `Overrides` | `{}` | Um mapa de tags HTML para componentes personalizados (ex: `{ h1: MyHeading }`). |
666
- | `wrapper` | `Component` | `null` | Um componente personalizado para envolver o Markdown renderizado. |
667
- | `renderMarkdown` | `Function` | `null` | Uma função de renderização personalizada para substituir completamente o compilador Markdown padrão. |