@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: Dowiedz się, jak deklarować i używać zawartości Markdown na swojej wielojęzycznej stronie internetowej z Intlayer. Postępuj zgodnie z krokami w tej dokumentacji online, aby bezproblemowo zintegrować Markdown z Twoim projektem.
5
+ description: Dowiedz się, jak deklarować i używać treści Markdown na swojej wielojęzycznej stronie internetowej za pomocą Intlayer. Postępuj zgodnie z instrukcjami w tej dokumentacji online, aby bezproblemowo zintegrować Markdown ze swoim projektem.
6
6
  keywords:
7
7
  - Markdown
8
8
  - Internacjonalizacja
@@ -22,46 +22,46 @@ history:
22
22
  changes: "Dodano obsługę plików `.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: "Dodano obiekt wtyczki `intlayerMarkdown`; użyj `app.use(intlayerMarkdown)` zamiast `app.use(installIntlayerMarkdown)`"
26
26
  - version: 8.5.0
27
27
  date: 2026-03-24
28
- changes: "przeniesienie importu z {{framework}}-intlayer do {{framework}}-intlayer/markdown"
28
+ changes: "Przeniesiono import z `{{framework}}-intlayer` do `{{framework}}-intlayer/markdown`"
29
29
  - version: 8.0.0
30
30
  date: 2026-01-22
31
- changes: "Dodano MarkdownRenderer / useMarkdownRenderer / renderMarkdown i opcję forceInline"
31
+ changes: "Dodano narzędzie MarkdownRenderer / useMarkdownRenderer / renderMarkdown i opcję forceInline"
32
32
  - version: 8.0.0
33
33
  date: 2026-01-18
34
34
  changes: "Automatyczna dekoracja treści markdown, obsługa MDX i SSR"
35
35
  - version: 5.5.10
36
36
  date: 2025-06-29
37
- changes: "Inicjalizacja historii"
37
+ changes: "Zainicjowano historię"
38
38
  ---
39
39
 
40
- # Markdown / Zawartość Tekstu Sformatowanego
40
+ # Markdown / Treść w postaci tekstu sformatowanego
41
41
 
42
- Intlayer obsługuje zawartość tekstu sformatowanego zdefiniowaną za pomocą składni Markdown. Pozwala to na łatwe pisanie i utrzymywanie treści z bogatym formatowaniem, takich jak blogi, artykuły i inne.
42
+ Intlayer obsługuje treści w postaci tekstu sformatowanego (Rich Text) definiowane za pomocą składni Markdown. Pozwala to na łatwe pisanie i utrzymywanie bogato sformatowanych treści, takich jak blogi, artykuły i inne.
43
43
 
44
44
  ## Deklarowanie treści Markdown
45
45
 
46
- Możesz zadeklarować treść Markdown, używając funkcji `md` lub po prostu jako łańcuch znaków (jeśli zawiera składnię Markdown).
46
+ Możesz zadeklarować treść Markdown używając funkcji `md` lub po prostu jako ciąg znaków (jeśli zawiera składnię Markdown).
47
47
 
48
48
  <Tabs>
49
49
  <Tab label=".content.md" value=".content.md">
50
- Od wersji `8.10.0` możesz deklarować zawartość Markdown bezpośrednio w plikach `.content.md`. Intlayer automatycznie wykryje i sparsuje zawartość Markdown.
50
+ Począwszy od wersji `8.10.0`, możesz deklarować treść Markdown bezpośrednio w plikach `.content.md`. Intlayer automatycznie wykryje i przetworzy treść Markdown.
51
51
 
52
- ```md fileName="markdown-file.pl.content.md"
52
+ ```md fileName="markdown-file.en.content.md"
53
53
  ---
54
- key: moja-zawartosc-markdown
55
- description: Moja zawartość
56
- locale: pl
54
+ key: my-markdown-content
55
+ description: Moja treść
56
+ locale: en
57
57
  ---
58
58
 
59
- # Moja zawartość
59
+ # Moja treść
60
60
 
61
- Tutaj przykład zawartości Markdown
61
+ Oto przykład treści markdown
62
62
  ```
63
63
 
64
- Pole frontmatter `locale` to pole definiujące język (ustawienia regionalne) zawartości. Jest ono opcjonalne. Jeśli nie zostanie podane, Intlayer użyje domyślnego języka, który jest również używany jako język rezerwowy (fallback), gdy dla danego języka nie jest dostępna żadna translacja.
64
+ Pole front-matter `locale` to pole, które definiuje język treści. Jest ono opcjonalne. Jeśli nie zostanie podane, Intlayer użyje języka domyślnego, który służy również jako język zastępczy, jeśli nie jest dostępne tłumaczenie dla określonego języka.
65
65
 
66
66
  Przykład struktury plików:
67
67
 
@@ -75,11 +75,11 @@ Możesz zadeklarować treść Markdown, używając funkcji `md` lub po prostu ja
75
75
  └── markdown-file.es.content.md
76
76
  ```
77
77
 
78
- W sekcji front-matter możesz dodać dowolne właściwości zdefiniowane w [definicji Słownika](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/content_file.md)
78
+ Do front-matter można dodać dowolne właściwości zdefiniowane w [Definicji słownika](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/content_file.md)
79
79
 
80
80
  </Tab>
81
- <Tab label="Ręczne opakowanie" value="manual-wrapping">
82
- Użyj funkcji `md`, aby jawnie zadeklarować zawartość Markdown. Jest to przydatne, jeśli chcesz upewnić się, że ciąg zostanie potraktowany jako Markdown, nawet jeśli nie zawiera oczywistej składni.
81
+ <Tab label="Ręczne pakowanie" value="manual-wrapping">
82
+ Użyj funkcji `md`, aby jawnie zadeklarować treść Markdown. Jest to przydatne, jeśli chcesz upewnić się, że ciąg znaków jest traktowany jako Markdown, nawet jeśli nie zawiera wyraźnej składni.
83
83
 
84
84
  ```typescript fileName="markdownDictionary.content.ts"
85
85
  import { md, type Dictionary } from "intlayer";
@@ -96,7 +96,7 @@ Możesz zadeklarować treść Markdown, używając funkcji `md` lub po prostu ja
96
96
 
97
97
  </Tab>
98
98
  <Tab label="Automatyczne wykrywanie" value="automatic-detection">
99
- Jeśli ciąg zawiera typowe wskaźniki Markdown (takie jak nagłówki, listy, linki itp.), Intlayer automatycznie go przekształci.
99
+ Jeśli ciąg znaków zawiera typowe wskaźniki Markdown (takie jak nagłówki, listy, linki itp.), Intlayer automatycznie je przekształci.
100
100
 
101
101
  ```typescript fileName="markdownDictionary.content.ts"
102
102
  export default {
@@ -109,8 +109,9 @@ Możesz zadeklarować treść Markdown, używając funkcji `md` lub po prostu ja
109
109
  ```
110
110
 
111
111
  </Tab>
112
+
112
113
  <Tab label="Pliki zewnętrzne" value="external-files">
113
- Importuj pliki `.md` bezpośrednio przy użyciu funkcji `file`.
114
+ Importuj pliki `.md` bezpośrednio za pomocą funkcji `file`.
114
115
 
115
116
  ```typescript fileName="markdownDictionary.content.ts"
116
117
  import { md, file, t } from "intlayer";
@@ -120,7 +121,6 @@ Możesz zadeklarować treść Markdown, używając funkcji `md` lub po prostu ja
120
121
  content: {
121
122
  content: t({
122
123
  en: md(file("./myMarkdown.en.md")),
123
- fr: md(file("./myMarkdown.fr.md")),
124
124
  pl: md(file("./myMarkdown.pl.md")),
125
125
  }),
126
126
  },
@@ -134,11 +134,17 @@ Możesz zadeklarować treść Markdown, używając funkcji `md` lub po prostu ja
134
134
 
135
135
  ## Renderowanie Markdown
136
136
 
137
- Renderowaniem można zająć się automatycznie za pomocą systemu treści Intlayer lub ręcznie przy użyciu specjalistycznych narzędzi.
137
+ Intlayer zapewnia dwa niezależne sposoby renderowania Markdown:
138
+
139
+ 1. **Przez `useIntlayer`**
140
+ — Intlayer automatycznie przekształca węzeł `md` w natywny wynik frameworka (JSX, VNode, ciąg znaków HTML).
141
+ - Frontmatter jest analizowany i eksponowany jako `.metadata`. Możesz nadpisać renderowanie na dwóch poziomach — globalnie za pomocą `MarkdownProvider` (lub odpowiednika frameworka) i lokalnie dla węzła za pomocą `.use()`. Oba można łączyć; `.use()` ma pierwszeństwo przed `MarkdownProvider`, który z kolei ma pierwszeństwo przed ustawieniami domyślnymi.
142
+
143
+ 2. **Narzędzia pomocnicze** — `<MarkdownRenderer />`, `useMarkdownRenderer()` i `renderMarkdown()` to samodzielne narzędzia, które akceptują **tylko surowe ciągi znaków Markdown**. Są one niezależne od `useIntlayer` i nie działają ze zwracanymi przez nie udekorowanymi węzłami.
138
144
 
139
- ### 1. Automatyczne renderowanie (z użyciem `useIntlayer`)
145
+ Renderowanie Markdown obsługuje **MDX** użyj dowolnego komponentu JSX/frameworka podając jego nazwę bezpośrednio w swoim Markdown.
140
146
 
141
- Kiedy uzyskujesz dostęp do treści za pomocą `useIntlayer`, węzły Markdown są już przygotowane do renderowania.
147
+ ### 1. Automatyczne renderowanie (przez `useIntlayer`)
142
148
 
143
149
  <Tabs group="framework">
144
150
  <Tab label="React / Next.js" value="react">
@@ -146,24 +152,54 @@ Kiedy uzyskujesz dostęp do treści za pomocą `useIntlayer`, węzły Markdown s
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} />, // Komponent MDX
168
+ }}
169
+ >
170
+ <AppContent />
171
+ </MarkdownProvider>
172
+ );
154
173
  ```
155
174
 
156
- Możesz również dostarczyć lokalne nadpisania dla określonych węzłów przy użyciu metody `.use()`:
175
+ > Jeśli `MarkdownProvider` nie jest obecny, Intlayer użyje domyślnego parsera Markdown do JSX do wyrenderowania markdownu.
176
+
177
+ Możesz również zapewnić lokalne nadpisania dla określonych węzłów za pomocą metody `.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
+ Możesz pobrać Markdown jako ciąg znaków:
186
+
187
+ ```tsx
188
+ {myMarkdownContent.value}
189
+ {String(myMarkdownContent)}
190
+ {myMarkdownContent.toString()}
191
+ ```
192
+
193
+ Możesz uzyskać dostęp do metadanych markdown w ten sposób:
194
+
195
+ ```tsx
196
+ {myMarkdownContent.metadata}
197
+ {myMarkdownContent.metadata.title}
198
+ ```
199
+
164
200
  </Tab>
165
- <Tab label="Vue">
166
- W Vue zawartość Markdown można renderować przy użyciu wbudowanego komponentu `component` lub bezpośrednio jako węzeł.
201
+ <Tab label="Vue" value="vue">
202
+ W Vue, treść Markdown można renderować przy użyciu wbudowanego tagu `component` lub bezpośrednio jako węzeł.
167
203
 
168
204
  ```vue fileName="App.vue"
169
205
  <script setup>
@@ -176,17 +212,83 @@ Kiedy uzyskujesz dostęp do treści za pomocą `useIntlayer`, węzły Markdown s
176
212
  </template>
177
213
  ```
178
214
 
215
+ Skonfiguruj globalnie za pomocą wtyczki `intlayerMarkdown` (obsługuje komponenty niestandardowe MDX):
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), // Komponent MDX
224
+ },
225
+ });
226
+ ```
227
+
228
+ > Jeśli wtyczka `intlayerMarkdown` nie jest zainstalowana, Intlayer wyrenderuje za pomocą domyślnego kompilatora.
229
+
230
+ Możesz również zapewnić lokalne nadpisania dla określonych węzłów za pomocą metody `.use()`:
231
+
232
+ ```vue
233
+ <component :is="myMarkdownContent.use({
234
+ h1: (props) => h('h1', { style: { color: 'red' } }, props.children),
235
+ })" />
236
+ ```
237
+
238
+ Możesz pobrać Markdown jako ciąg znaków:
239
+
240
+ ```vue
241
+ {{ myMarkdownContent.value }}
242
+ {{ String(myMarkdownContent) }}
243
+ {{ myMarkdownContent.toString() }}
244
+ ```
245
+
246
+ Możesz uzyskać dostęp do metadanych markdown w ten sposób:
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
255
  Svelte domyślnie renderuje Markdown jako ciąg znaków HTML. Użyj `{@html}`, aby go wyrenderować.
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
+ > Jeśli `MarkdownProvider` nie jest obecny, Intlayer wyrenderuje markdown używając domyślnego kompilatora.
272
+
273
+ Możesz również zapewnić lokalne nadpisania dla określonych węzłów za pomocą metody `.use()`:
274
+
275
+ ```svelte
276
+ {@html $content.myMarkdownContent.use({ ... })}
277
+ ```
278
+
279
+ Możesz pobrać Markdown jako ciąg znaków:
280
+
281
+ ```svelte
282
+ {$content.myMarkdownContent.value}
283
+ {String($content.myMarkdownContent)}
284
+ {$content.myMarkdownContent.toString()}
285
+ ```
286
+
287
+ Możesz uzyskać dostęp do metadanych markdown w ten sposób:
288
+
289
+ ```svelte
290
+ {$content.myMarkdownContent.metadata}
291
+ {$content.myMarkdownContent.metadata.title}
190
292
  ```
191
293
 
192
294
  </Tab>
@@ -195,11 +297,48 @@ Kiedy uzyskujesz dostęp do treści za pomocą `useIntlayer`, węzły Markdown s
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} />, // Komponent MDX
312
+ }}
313
+ >
314
+ <AppContent />
315
+ </MarkdownProvider>
316
+ );
317
+ ```
318
+
319
+ > Jeśli `MarkdownProvider` nie jest obecny, Intlayer użyje domyślnego parsera Markdown do JSX do wyrenderowania markdownu.
320
+
321
+ Możesz również zapewnić lokalne nadpisania dla określonych węzłów za pomocą metody `.use()`:
322
+
323
+ ```tsx
324
+ {myMarkdownContent.use({
325
+ h1: ({ children }) => <h1 style={{ color: "red" }}>{children}</h1>,
326
+ })}
327
+ ```
328
+
329
+ Możesz pobrać Markdown jako ciąg znaków:
330
+
331
+ ```tsx
332
+ {myMarkdownContent.value}
333
+ {String(myMarkdownContent)}
334
+ {myMarkdownContent.toString()}
335
+ ```
336
+
337
+ Możesz uzyskać dostęp do metadanych markdown w ten sposób:
338
+
339
+ ```tsx
340
+ {myMarkdownContent.metadata}
341
+ {myMarkdownContent.metadata.title}
203
342
  ```
204
343
 
205
344
  </Tab>
@@ -208,16 +347,53 @@ Kiedy uzyskujesz dostęp do treści za pomocą `useIntlayer`, węzły Markdown s
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} />, // Komponent MDX
362
+ }}
363
+ >
364
+ <AppContent />
365
+ </MarkdownProvider>
366
+ );
367
+ ```
368
+
369
+ > Jeśli `MarkdownProvider` nie jest obecny, Intlayer użyje domyślnego parsera Markdown do JSX do wyrenderowania markdownu.
370
+
371
+ Możesz również zapewnić lokalne nadpisania dla określonych węzłów za pomocą metody `.use()`:
372
+
373
+ ```tsx
374
+ {myMarkdownContent.use({
375
+ h1: (props) => <h1 style={{ color: "red" }}>{props.children}</h1>,
376
+ })}
377
+ ```
378
+
379
+ Możesz pobrać Markdown jako ciąg znaków:
380
+
381
+ ```tsx
382
+ {myMarkdownContent.value}
383
+ {String(myMarkdownContent)}
384
+ {myMarkdownContent.toString()}
385
+ ```
386
+
387
+ Możesz uzyskać dostęp do metadanych markdown w ten sposób:
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 wykorzystuje dyrektywę `[innerHTML]` do renderowania zawartości Markdown.
396
+ Angular używa dyrektywy `[innerHTML]` do renderowania treści Markdown.
221
397
 
222
398
  ```typescript fileName="app.component.ts"
223
399
  import { Component } from "@angular/core";
@@ -232,7 +408,9 @@ Kiedy uzyskujesz dostęp do treści za pomocą `useIntlayer`, węzły Markdown s
232
408
  }
233
409
  ```
234
410
 
235
- Możesz również dostarczyć lokalne nadpisania dla określonych węzłów przy użyciu metody `.use()`:
411
+ > Jeśli dostawca IntlayerMarkdown nie jest skonfigurowany, Intlayer wyrenderuje za pomocą domyślnego kompilatora.
412
+
413
+ Możesz również zapewnić lokalne nadpisania dla określonych węzłów za pomocą metody `.use()`:
236
414
 
237
415
  ```typescript
238
416
  content().myMarkdownContent.use({
@@ -240,16 +418,35 @@ Kiedy uzyskujesz dostęp do treści za pomocą `useIntlayer`, węzły Markdown s
240
418
  })
241
419
  ```
242
420
 
421
+ Możesz pobrać Markdown jako ciąg znaków:
422
+
423
+ ```typescript
424
+ content().myMarkdownContent.value
425
+ String(content().myMarkdownContent)
426
+ content().myMarkdownContent.toString()
427
+ ```
428
+
429
+ Możesz uzyskać dostęp do metadanych markdown w ten sposób:
430
+
431
+ ```typescript
432
+ content().myMarkdownContent.metadata
433
+ content().myMarkdownContent.metadata.title
434
+ ```
435
+
243
436
  </Tab>
244
437
  </Tabs>
245
438
 
246
- ### 2. Ręczne renderowanie i zaawansowane narzędzia
439
+ ### 2. Narzędzia pomocnicze (tylko ciągi znaków Markdown)
247
440
 
248
- Jeśli musisz renderować surowe łańcuchy Markdown lub potrzebujesz większej kontroli nad procesem renderowania, użyj poniższych narzędzi.
441
+ Te narzędzia renderują **tylko surowe ciągi znaków Markdown** i niezależne od `useIntlayer`. Używaj ich, gdy musisz wyrenderować Markdown ze źródeł innych niż słowniki.
249
442
 
250
443
  <Tabs group="framework">
251
444
  <Tab label="React / Next.js" value="react">
252
445
 
446
+ #### Komponent `<MarkdownRenderer />`
447
+
448
+ Renderuje ciąg znaków Markdown z określonymi opcjami.
449
+
253
450
  ```tsx
254
451
  import { MarkdownRenderer } from "react-intlayer/markdown";
255
452
 
@@ -260,7 +457,7 @@ Jeśli musisz renderować surowe łańcuchy Markdown lub potrzebujesz większej
260
457
 
261
458
  #### Hook `useMarkdownRenderer()`
262
459
 
263
- Uzyskaj wstępnie skonfigurowaną funkcję renderującą.
460
+ Pobierz wstępnie skonfigurowaną funkcję renderowania.
264
461
 
265
462
  ```tsx
266
463
  import { useMarkdownRenderer } from "react-intlayer/markdown";
@@ -283,7 +480,7 @@ Jeśli musisz renderować surowe łańcuchy Markdown lub potrzebujesz większej
283
480
  ```
284
481
 
285
482
  </Tab>
286
- <Tab label="Vue">
483
+ <Tab label="Vue" value="vue">
287
484
 
288
485
  #### Komponent `<MarkdownRenderer />`
289
486
 
@@ -394,7 +591,7 @@ Jeśli musisz renderować surowe łańcuchy Markdown lub potrzebujesz większej
394
591
  </Tab>
395
592
  <Tab label="Angular" value="angular">
396
593
  #### Usługa `IntlayerMarkdownService`
397
- Renderuje ciąg Markdown przy użyciu usługi.
594
+ Renderuje ciąg znaków Markdown przy użyciu usługi.
398
595
 
399
596
  ```typescript
400
597
  import { IntlayerMarkdownService } from "angular-intlayer/markdown";
@@ -415,7 +612,7 @@ Jeśli musisz renderować surowe łańcuchy Markdown lub potrzebujesz większej
415
612
 
416
613
  ## Konfiguracja globalna z `MarkdownProvider`
417
614
 
418
- Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To pozwala uniknąć przekazywania tych samych prop do każdego renderera.
615
+ `MarkdownProvider` (lub jego odpowiednik we frameworku) konfiguruje potok renderowania Markdown dla całej aplikacji. Dotyczy to zarówno automatycznego renderowania `useIntlayer`, jak i narzędzi pomocniczych. Ustawione tutaj opcje są ustawieniami domyślnymi — `.use()` nadpisuje je na poziomie węzła.
419
616
 
420
617
  <Tabs group="framework">
421
618
  <Tab label="React / Next.js" value="react">
@@ -426,8 +623,9 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
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 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
435
633
  );
436
634
  ```
437
635
 
438
- Możesz również użyć własnego silnika renderującego Markdown:
636
+ > MDX jest obsługiwany każda nazwa komponentu użyta wewnątrz twojego Markdown (np. `<MyCustomJSXComponent />`) jest rozwiązywana względem mapy `components`.
637
+
638
+ Możesz również użyć własnego renderera markdown:
439
639
 
440
640
  ```tsx fileName="AppProvider.tsx"
441
641
  import { MarkdownProvider } from "react-intlayer/markdown";
@@ -443,8 +643,8 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
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,10 +652,10 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
452
652
  );
453
653
  ```
454
654
 
455
- > Dynamiczne importowanie silnika renderującego Markdown to dobry sposób na zmniejszenie rozmiaru paczki (bundle) Twojej aplikacji.
655
+ > Dynamiczne importowanie twojego renderera Markdown to świetny sposób na zmniejszenie rozmiaru pakietu twojej aplikacji.
456
656
 
457
657
  </Tab>
458
- <Tab label="Vue">
658
+ <Tab label="Vue" value="vue">
459
659
 
460
660
  ```typescript fileName="main.ts"
461
661
  import { createApp } from "vue";
@@ -479,7 +679,7 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
479
679
  app.mount("#app");
480
680
  ```
481
681
 
482
- Możesz również użyć własnego silnika renderującego Markdown:
682
+ Możesz również użyć własnego renderera markdown:
483
683
 
484
684
  ```typescript fileName="main.ts"
485
685
  import { createApp } from "vue";
@@ -492,15 +692,15 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
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
- > Dynamiczne importowanie silnika renderującego Markdown to dobry sposób na zmniejszenie rozmiaru paczki (bundle) Twojej aplikacji.
703
+ > Dynamiczne importowanie twojego renderera Markdown to świetny sposób na zmniejszenie rozmiaru pakietu twojej aplikacji.
504
704
 
505
705
  </Tab>
506
706
  <Tab label="Svelte" value="svelte">
@@ -520,7 +720,7 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
520
720
  </MarkdownProvider>
521
721
  ```
522
722
 
523
- Możesz również użyć własnego silnika renderującego Markdown:
723
+ Możesz również użyć własnego renderera markdown:
524
724
 
525
725
  ```svelte fileName="App.svelte"
526
726
  <script lang="ts">
@@ -529,15 +729,15 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
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
- > Dynamiczne importowanie silnika renderującego Markdown to dobry sposób na zmniejszenie rozmiaru paczki (bundle) Twojej aplikacji.
740
+ > Dynamiczne importowanie twojego renderera Markdown to świetny sposób na zmniejszenie rozmiaru pakietu twojej aplikacji.
541
741
 
542
742
  </Tab>
543
743
  <Tab label="Preact" value="preact">
@@ -556,7 +756,7 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
556
756
  );
557
757
  ```
558
758
 
559
- Możesz również użyć własnego silnika renderującego Markdown:
759
+ Możesz również użyć własnego renderera markdown:
560
760
 
561
761
  ```tsx fileName="AppProvider.tsx"
562
762
  import { MarkdownProvider } from "preact-intlayer/markdown";
@@ -564,8 +764,8 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
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 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
573
773
  );
574
774
  ```
575
775
 
576
- > Dynamiczne importowanie silnika renderującego Markdown to dobry sposób na zmniejszenie rozmiaru paczki (bundle) Twojej aplikacji.
776
+ > Dynamiczne importowanie twojego renderera Markdown to świetny sposób na zmniejszenie rozmiaru pakietu twojej aplikacji.
577
777
 
578
778
  </Tab>
579
779
  <Tab label="Solid" value="solid">
@@ -592,7 +792,7 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
592
792
  );
593
793
  ```
594
794
 
595
- Możesz również użyć własnego silnika renderującego Markdown:
795
+ Możesz również użyć własnego renderera markdown:
596
796
 
597
797
  ```tsx fileName="AppProvider.tsx"
598
798
  import { MarkdownProvider } from "solid-intlayer/markdown";
@@ -600,8 +800,8 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
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 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
609
809
  );
610
810
  ```
611
811
 
612
- > Dynamiczne importowanie silnika renderującego Markdown to dobry sposób na zmniejszenie rozmiaru paczki (bundle) Twojej aplikacji.
812
+ > Dynamiczne importowanie twojego renderera Markdown to świetny sposób na zmniejszenie rozmiaru pakietu twojej aplikacji.
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
- Możesz również użyć własnego silnika renderującego 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
- > Dynamiczne importowanie silnika renderującego Markdown to dobry sposób na zmniejszenie rozmiaru paczki (bundle) Twojej aplikacji.
834
+ > Dynamiczne importowanie twojego renderera Markdown to świetny sposób na zmniejszenie rozmiaru pakietu twojej aplikacji.
649
835
 
650
836
  </Tab>
651
837
  </Tabs>
652
-
653
- ---
654
-
655
- ## Referencja opcji
656
-
657
- Te opcje mogą być przekazane do `MarkdownProvider`, `MarkdownRenderer`, `useMarkdownRenderer` i `renderMarkdown`.
658
-
659
- | Opcja | Typ | Domyślnie | Opis |
660
- | :-------------------- | :---------- | :-------- | :--------------------------------------------------------------------------------------------------- |
661
- | `forceBlock` | `boolean` | `false` | Wymusza zawinięcie danych wyjściowych w element poziomu bloku (np. `<div>`). |
662
- | `forceInline` | `boolean` | `false` | Wymusza zawinięcie danych wyjściowych w element liniowy (np. `<span>`). |
663
- | `tagfilter` | `boolean` | `true` | Włącza filtr tagów GitHub w celu poprawy bezpieczeństwa poprzez usuwanie niebezpiecznych tagów HTML. |
664
- | `preserveFrontmatter` | `boolean` | `false` | Jeśli `true`, frontmatter na początku ciągu Markdown nie zostanie usunięty. |
665
- | `components` | `Overrides` | `{}` | Mapa tagów HTML do niestandardowych komponentów (np. `{ h1: MyHeading }`). |
666
- | `wrapper` | `Component` | `null` | Niestandardowy komponent do opakowania wyrenderowanego Markdowna. |
667
- | `renderMarkdown` | `Function` | `null` | Niestandardowa funkcja renderująca, która całkowicie zastąpi domyślny kompilator Markdown. |