@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: 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";
@@ -95,34 +95,34 @@ Możesz zadeklarować treść Markdown, używając funkcji `md` lub po prostu ja
95
95
  ```
96
96
 
97
97
  </Tab>
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.
98
+ <Tab label="Pliki zewnętrzne" value="external-files">
99
+ Importuj pliki `.md` bezpośrednio za pomocą funkcji `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, // Włącz automatyczne wykrywanie treści Markdown - Można ustawić globalnie w intlayer.config.ts
105
106
  content: {
106
- myMarkdownContent: "## Mój tytuł \n\nLorem Ipsum",
107
+ content: t({
108
+ en: md(file("./myMarkdown.en.md")),
109
+ pl: md(file("./myMarkdown.pl.md")),
110
+ }),
107
111
  },
108
112
  };
109
113
  ```
110
114
 
111
115
  </Tab>
112
- <Tab label="Pliki zewnętrzne" value="external-files">
113
- Importuj pliki `.md` bezpośrednio przy użyciu funkcji `file`.
114
116
 
115
- ```typescript fileName="markdownDictionary.content.ts"
116
- import { md, file, t } from "intlayer";
117
+ <Tab label="Automatyczne wykrywanie" value="automatic-detection">
118
+ Jeśli ciąg znaków zawiera typowe wskaźniki Markdown (takie jak nagłówki, listy, linki itp.), Intlayer automatycznie je przekształci.
117
119
 
120
+ ```typescript fileName="markdownDictionary.content.ts"
118
121
  export default {
119
122
  key: "app",
123
+ contentAutoTransformation: true, // Włącz automatyczne wykrywanie treści Markdown - Można ustawić globalnie w intlayer.config.ts
120
124
  content: {
121
- content: t({
122
- en: md(file("./myMarkdown.en.md")),
123
- fr: md(file("./myMarkdown.fr.md")),
124
- pl: md(file("./myMarkdown.pl.md")),
125
- }),
125
+ myMarkdownContent: "## Mój tytuł \n\nLorem Ipsum",
126
126
  },
127
127
  };
128
128
  ```
@@ -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,9 @@ 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
+ // 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,10 +653,10 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
452
653
  );
453
654
  ```
454
655
 
455
- > Dynamiczne importowanie silnika renderującego Markdown to dobry sposób na zmniejszenie rozmiaru paczki (bundle) Twojej aplikacji.
656
+ > Dynamiczne importowanie twojego renderera Markdown to świetny sposób na zmniejszenie rozmiaru pakietu twojej aplikacji.
456
657
 
457
658
  </Tab>
458
- <Tab label="Vue">
659
+ <Tab label="Vue" value="vue">
459
660
 
460
661
  ```typescript fileName="main.ts"
461
662
  import { createApp } from "vue";
@@ -479,7 +680,7 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
479
680
  app.mount("#app");
480
681
  ```
481
682
 
482
- Możesz również użyć własnego silnika renderującego Markdown:
683
+ Możesz również użyć własnego renderera markdown:
483
684
 
484
685
  ```typescript fileName="main.ts"
485
686
  import { createApp } from "vue";
@@ -492,15 +693,15 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
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
- > Dynamiczne importowanie silnika renderującego Markdown to dobry sposób na zmniejszenie rozmiaru paczki (bundle) Twojej aplikacji.
704
+ > Dynamiczne importowanie twojego renderera Markdown to świetny sposób na zmniejszenie rozmiaru pakietu twojej aplikacji.
504
705
 
505
706
  </Tab>
506
707
  <Tab label="Svelte" value="svelte">
@@ -520,7 +721,7 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
520
721
  </MarkdownProvider>
521
722
  ```
522
723
 
523
- Możesz również użyć własnego silnika renderującego Markdown:
724
+ Możesz również użyć własnego renderera markdown:
524
725
 
525
726
  ```svelte fileName="App.svelte"
526
727
  <script lang="ts">
@@ -529,15 +730,15 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
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
- > Dynamiczne importowanie silnika renderującego Markdown to dobry sposób na zmniejszenie rozmiaru paczki (bundle) Twojej aplikacji.
741
+ > Dynamiczne importowanie twojego renderera Markdown to świetny sposób na zmniejszenie rozmiaru pakietu twojej aplikacji.
541
742
 
542
743
  </Tab>
543
744
  <Tab label="Preact" value="preact">
@@ -556,7 +757,7 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
556
757
  );
557
758
  ```
558
759
 
559
- Możesz również użyć własnego silnika renderującego Markdown:
760
+ Możesz również użyć własnego renderera markdown:
560
761
 
561
762
  ```tsx fileName="AppProvider.tsx"
562
763
  import { MarkdownProvider } from "preact-intlayer/markdown";
@@ -564,8 +765,8 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
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 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
573
774
  );
574
775
  ```
575
776
 
576
- > Dynamiczne importowanie silnika renderującego Markdown to dobry sposób na zmniejszenie rozmiaru paczki (bundle) Twojej aplikacji.
777
+ > Dynamiczne importowanie twojego renderera Markdown to świetny sposób na zmniejszenie rozmiaru pakietu twojej aplikacji.
577
778
 
578
779
  </Tab>
579
780
  <Tab label="Solid" value="solid">
@@ -592,7 +793,7 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
592
793
  );
593
794
  ```
594
795
 
595
- Możesz również użyć własnego silnika renderującego Markdown:
796
+ Możesz również użyć własnego renderera markdown:
596
797
 
597
798
  ```tsx fileName="AppProvider.tsx"
598
799
  import { MarkdownProvider } from "solid-intlayer/markdown";
@@ -600,8 +801,8 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
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 @@ Możesz skonfigurować renderowanie Markdown globalnie dla całej aplikacji. To
609
810
  );
610
811
  ```
611
812
 
612
- > Dynamiczne importowanie silnika renderującego Markdown to dobry sposób na zmniejszenie rozmiaru paczki (bundle) Twojej aplikacji.
813
+ > Dynamiczne importowanie twojego renderera Markdown to świetny sposób na zmniejszenie rozmiaru pakietu twojej aplikacji.
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
- Możesz również użyć własnego silnika renderującego 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
- > Dynamiczne importowanie silnika renderującego Markdown to dobry sposób na zmniejszenie rozmiaru paczki (bundle) Twojej aplikacji.
835
+ > Dynamiczne importowanie twojego renderera Markdown to świetny sposób na zmniejszenie rozmiaru pakietu twojej aplikacji.
649
836
 
650
837
  </Tab>
651
838
  </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. |