@intlayer/docs 8.10.0-canary.0 → 8.10.0-canary.1

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";
@@ -96,12 +96,12 @@ Você pode declarar conteúdo Markdown usando a função `md` ou simplesmente co
96
96
 
97
97
  </Tab>
98
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.
99
+ Se a string contiver indicadores Markdown comuns (como cabeçalhos, listas, links, etc.), o Intlayer a transformará automaticamente.
100
100
 
101
101
  ```typescript fileName="markdownDictionary.content.ts"
102
102
  export default {
103
103
  key: "app",
104
- contentAutoTransformation: true, // Ativar a detecção automática de conteúdo Markdown - Pode ser definido globalmente em intlayer.config.ts
104
+ contentAutoTransformation: true, // Ativar detecção automática de conteúdo Markdown - Pode ser definido globalmente em intlayer.config.ts
105
105
  content: {
106
106
  myMarkdownContent: "## Meu título \n\nLorem Ipsum",
107
107
  },
@@ -109,6 +109,7 @@ Você pode declarar conteúdo Markdown usando a função `md` ou simplesmente co
109
109
  ```
110
110
 
111
111
  </Tab>
112
+
112
113
  <Tab label="Arquivos Externos" value="external-files">
113
114
  Importe arquivos `.md` diretamente usando a função `file`.
114
115
 
@@ -120,7 +121,6 @@ Você pode declarar conteúdo Markdown usando a função `md` ou simplesmente co
120
121
  content: {
121
122
  content: t({
122
123
  en: md(file("./myMarkdown.en.md")),
123
- fr: md(file("./myMarkdown.fr.md")),
124
124
  pt: md(file("./myMarkdown.pt.md")),
125
125
  }),
126
126
  },
@@ -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,8 @@ 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
+ const { renderMarkdown } = await import('react-intlayer/markdown');
647
+ return renderMarkdown(md);
448
648
  }}
449
649
  >
450
650
  {children}
@@ -452,7 +652,7 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
452
652
  );
453
653
  ```
454
654
 
455
- > Importar dinamicamente o seu renderizador de Markdown é uma boa maneira de reduzir o tamanho do pacote da sua aplicação.
655
+ > Importar dinamicamente o seu renderizador de Markdown é uma ótima maneira de reduzir o tamanho do pacote da sua aplicação.
456
656
 
457
657
  </Tab>
458
658
  <Tab label="Vue" value="vue">
@@ -479,7 +679,7 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
479
679
  app.mount("#app");
480
680
  ```
481
681
 
482
- Você também pode usar o seu próprio renderizador de Markdown:
682
+ Você também pode usar seu próprio renderizador de markdown:
483
683
 
484
684
  ```typescript fileName="main.ts"
485
685
  import { createApp } from "vue";
@@ -492,15 +692,15 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
492
692
  app.use(intlayer);
493
693
  app.use(intlayerMarkdown, {
494
694
  renderMarkdown: async (md) => {
495
- const { compileMarkdown } = await import('vue-intlayer/markdown');
496
- return compileMarkdown(md);
695
+ const { renderMarkdown } = await import('vue-intlayer/markdown');
696
+ return renderMarkdown(md);
497
697
  },
498
698
  });
499
699
 
500
700
  app.mount("#app");
501
701
  ```
502
702
 
503
- > Importar dinamicamente o seu renderizador de Markdown é uma boa maneira de reduzir o tamanho do pacote da sua aplicação.
703
+ > Importar dinamicamente o seu renderizador de Markdown é uma ótima maneira de reduzir o tamanho do pacote da sua aplicação.
504
704
 
505
705
  </Tab>
506
706
  <Tab label="Svelte" value="svelte">
@@ -520,7 +720,7 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
520
720
  </MarkdownProvider>
521
721
  ```
522
722
 
523
- Você também pode usar o seu próprio renderizador de Markdown:
723
+ Você também pode usar seu próprio renderizador de markdown:
524
724
 
525
725
  ```svelte fileName="App.svelte"
526
726
  <script lang="ts">
@@ -529,15 +729,15 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
529
729
 
530
730
  <MarkdownProvider
531
731
  renderMarkdown={async (md) => {
532
- const { compileMarkdown } = await import('svelte-intlayer/markdown');
533
- return compileMarkdown(md);
732
+ const { renderMarkdown } = await import('svelte-intlayer/markdown');
733
+ return renderMarkdown(md);
534
734
  }}
535
735
  >
536
736
  <slot />
537
737
  </MarkdownProvider>
538
738
  ```
539
739
 
540
- > Importar dinamicamente o seu renderizador de Markdown é uma boa maneira de reduzir o tamanho do pacote da sua aplicação.
740
+ > Importar dinamicamente o seu renderizador de Markdown é uma ótima maneira de reduzir o tamanho do pacote da sua aplicação.
541
741
 
542
742
  </Tab>
543
743
  <Tab label="Preact" value="preact">
@@ -556,7 +756,7 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
556
756
  );
557
757
  ```
558
758
 
559
- Você também pode usar o seu próprio renderizador de Markdown:
759
+ Você também pode usar seu próprio renderizador de markdown:
560
760
 
561
761
  ```tsx fileName="AppProvider.tsx"
562
762
  import { MarkdownProvider } from "preact-intlayer/markdown";
@@ -564,8 +764,8 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
564
764
  export const AppProvider = ({ children }) => (
565
765
  <MarkdownProvider
566
766
  renderMarkdown={async (md) => {
567
- const { compileMarkdown } = await import('preact-intlayer/markdown');
568
- return compileMarkdown(md);
767
+ const { renderMarkdown } = await import('preact-intlayer/markdown');
768
+ return renderMarkdown(md);
569
769
  }}
570
770
  >
571
771
  {children}
@@ -573,7 +773,7 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
573
773
  );
574
774
  ```
575
775
 
576
- > Importar dinamicamente o seu renderizador de Markdown é uma boa maneira de reduzir o tamanho do pacote da sua aplicação.
776
+ > Importar dinamicamente o seu renderizador de Markdown é uma ótima maneira de reduzir o tamanho do pacote da sua aplicação.
577
777
 
578
778
  </Tab>
579
779
  <Tab label="Solid" value="solid">
@@ -592,7 +792,7 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
592
792
  );
593
793
  ```
594
794
 
595
- Você também pode usar o seu próprio renderizador de Markdown:
795
+ Você também pode usar seu próprio renderizador de markdown:
596
796
 
597
797
  ```tsx fileName="AppProvider.tsx"
598
798
  import { MarkdownProvider } from "solid-intlayer/markdown";
@@ -600,8 +800,8 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
600
800
  export const AppProvider = (props) => (
601
801
  <MarkdownProvider
602
802
  renderMarkdown={async (md) => {
603
- const { compileMarkdown } = await import('solid-intlayer/markdown');
604
- return compileMarkdown(md);
803
+ const { renderMarkdown } = await import('solid-intlayer/markdown');
804
+ return renderMarkdown(md);
605
805
  }}
606
806
  >
607
807
  {props.children}
@@ -609,59 +809,29 @@ Você pode configurar a renderização de Markdown globalmente para toda a sua a
609
809
  );
610
810
  ```
611
811
 
612
- > Importar dinamicamente o seu renderizador de Markdown é uma boa maneira de reduzir o tamanho do pacote da sua aplicação.
812
+ > Importar dinamicamente o seu renderizador de Markdown é uma ótima maneira de reduzir o tamanho do pacote da sua aplicação.
613
813
 
614
814
  </Tab>
615
815
  <Tab label="Angular" value="angular">
616
816
 
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:
632
-
633
- ```typescript fileName="app.config.ts"
634
- import { createIntlayerMarkdownProvider } from "angular-intlayer/markdown";
817
+ ```typescript fileName="app.module.ts"
818
+ import { NgModule } from '@angular/core';
819
+ import { IntlayerMarkdownModule } from 'angular-intlayer/markdown';
635
820
 
636
- export const appConfig: ApplicationConfig = {
637
- providers: [
638
- createIntlayerMarkdownProvider({
821
+ @NgModule({
822
+ imports: [
823
+ IntlayerMarkdownModule.forRoot({
639
824
  renderMarkdown: async (md) => {
640
- const { compileMarkdown } = await import('angular-intlayer/markdown');
641
- return compileMarkdown(md);
642
- },
643
- }),
644
- ],
645
- };
825
+ const { renderMarkdown } = await import('angular-intlayer/markdown');
826
+ return renderMarkdown(md);
827
+ }
828
+ })
829
+ ]
830
+ })
831
+ export class AppModule {}
646
832
  ```
647
833
 
648
- > Importar dinamicamente o seu renderizador de Markdown é uma boa maneira de reduzir o tamanho do pacote da sua aplicação.
834
+ > Importar dinamicamente o seu renderizador de Markdown é uma ótima maneira de reduzir o tamanho do pacote da sua aplicação.
649
835
 
650
836
  </Tab>
651
837
  </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. |