@intlayer/docs 8.10.0-canary.1 → 8.10.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.
- package/docs/ar/dictionary/markdown.md +349 -19
- package/docs/ar/interest_of_intlayer.md +1 -1
- package/docs/bn/interest_of_intlayer.md +1 -1
- package/docs/cs/interest_of_intlayer.md +1 -1
- package/docs/de/dictionary/markdown.md +349 -19
- package/docs/de/interest_of_intlayer.md +1 -1
- package/docs/en/dictionary/markdown.md +338 -20
- package/docs/en/interest_of_intlayer.md +1 -1
- package/docs/en-GB/dictionary/markdown.md +349 -19
- package/docs/en-GB/interest_of_intlayer.md +1 -1
- package/docs/es/dictionary/markdown.md +349 -19
- package/docs/es/interest_of_intlayer.md +1 -1
- package/docs/fr/dictionary/markdown.md +349 -19
- package/docs/fr/interest_of_intlayer.md +1 -1
- package/docs/hi/dictionary/markdown.md +349 -19
- package/docs/hi/interest_of_intlayer.md +1 -1
- package/docs/id/dictionary/markdown.md +349 -19
- package/docs/id/interest_of_intlayer.md +1 -1
- package/docs/it/dictionary/markdown.md +349 -19
- package/docs/it/interest_of_intlayer.md +1 -1
- package/docs/ja/interest_of_intlayer.md +1 -1
- package/docs/ko/dictionary/markdown.md +349 -19
- package/docs/ko/interest_of_intlayer.md +1 -1
- package/docs/nl/interest_of_intlayer.md +1 -1
- package/docs/pl/dictionary/markdown.md +349 -19
- package/docs/pl/interest_of_intlayer.md +1 -1
- package/docs/pt/benchmark/solid.md +1 -1
- package/docs/pt/benchmark/svelte.md +1 -1
- package/docs/pt/dictionary/markdown.md +349 -19
- package/docs/pt/interest_of_intlayer.md +1 -1
- package/docs/ru/dictionary/markdown.md +458 -16
- package/docs/ru/interest_of_intlayer.md +1 -1
- package/docs/tr/dictionary/markdown.md +349 -19
- package/docs/tr/interest_of_intlayer.md +1 -1
- package/docs/uk/dictionary/markdown.md +349 -19
- package/docs/uk/interest_of_intlayer.md +1 -1
- package/docs/ur/interest_of_intlayer.md +1 -1
- package/docs/vi/dictionary/markdown.md +349 -19
- package/docs/vi/interest_of_intlayer.md +1 -1
- package/docs/zh/dictionary/markdown.md +349 -19
- package/docs/zh/interest_of_intlayer.md +1 -1
- package/docs/zh-TW/interest_of_intlayer.md +1 -1
- package/package.json +7 -7
|
@@ -95,34 +95,34 @@ Intlayer Markdown सिंटैक्स का उपयोग करके
|
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
</Tab>
|
|
98
|
-
<Tab label="
|
|
99
|
-
|
|
98
|
+
<Tab label="बाहरी फ़ाइलें" value="external-files">
|
|
99
|
+
`file` फ़ंक्शन का उपयोग करके सीधे `.md` फ़ाइलें आयात करें।
|
|
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, // Markdown सामग्री की स्वचालित पहचान सक्षम करें - intlayer.config.ts में विश्व स्तर पर सेट किया जा सकता है
|
|
105
106
|
content: {
|
|
106
|
-
|
|
107
|
+
content: t({
|
|
108
|
+
en: md(file("./myMarkdown.en.md")),
|
|
109
|
+
hi: md(file("./myMarkdown.hi.md")),
|
|
110
|
+
}),
|
|
107
111
|
},
|
|
108
112
|
};
|
|
109
113
|
```
|
|
110
114
|
|
|
111
115
|
</Tab>
|
|
112
116
|
|
|
113
|
-
<Tab label="
|
|
114
|
-
|
|
117
|
+
<Tab label="स्वचालित पहचान" value="automatic-detection">
|
|
118
|
+
यदि स्ट्रिंग में सामान्य Markdown संकेतक (जैसे हेडिंग, लिस्ट, लिंक आदि) हैं, तो Intlayer स्वचालित रूप से इसे बदल देगा।
|
|
115
119
|
|
|
116
120
|
```typescript fileName="markdownDictionary.content.ts"
|
|
117
|
-
import { md, file, t } from "intlayer";
|
|
118
|
-
|
|
119
121
|
export default {
|
|
120
122
|
key: "app",
|
|
123
|
+
contentAutoTransformation: true, // Markdown सामग्री की स्वचालित पहचान सक्षम करें - intlayer.config.ts में विश्व स्तर पर सेट किया जा सकता है
|
|
121
124
|
content: {
|
|
122
|
-
|
|
123
|
-
en: md(file("./myMarkdown.en.md")),
|
|
124
|
-
hi: md(file("./myMarkdown.hi.md")),
|
|
125
|
-
}),
|
|
125
|
+
myMarkdownContent: "## मेरा शीर्षक \n\nLorem Ipsum",
|
|
126
126
|
},
|
|
127
127
|
};
|
|
128
128
|
```
|
|
@@ -130,8 +130,6 @@ Intlayer Markdown सिंटैक्स का उपयोग करके
|
|
|
130
130
|
</Tab>
|
|
131
131
|
</Tabs>
|
|
132
132
|
|
|
133
|
-
---
|
|
134
|
-
|
|
135
133
|
## Markdown रेंडरिंग
|
|
136
134
|
|
|
137
135
|
Intlayer Markdown रेंडर करने के दो स्वतंत्र तरीके प्रदान करता है:
|
|
@@ -147,7 +145,7 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
|
|
|
147
145
|
### 1. स्वचालित रेंडरिंग (`useIntlayer` के माध्यम से)
|
|
148
146
|
|
|
149
147
|
<Tabs group="framework">
|
|
150
|
-
<Tab label="React
|
|
148
|
+
<Tab label="React" value="react">
|
|
151
149
|
Markdown नोड्स को सीधे JSX के रूप में रेंडर किया जा सकता है।
|
|
152
150
|
|
|
153
151
|
```tsx fileName="App.tsx"
|
|
@@ -197,6 +195,57 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
|
|
|
197
195
|
{myMarkdownContent.metadata.title}
|
|
198
196
|
```
|
|
199
197
|
|
|
198
|
+
</Tab>
|
|
199
|
+
<Tab label="Next.js" value="nextjs">
|
|
200
|
+
Markdown नोड्स को सीधे JSX के रूप में रेंडर किया जा सकता है।
|
|
201
|
+
|
|
202
|
+
```tsx fileName="App.tsx"
|
|
203
|
+
import { useIntlayer } from "next-intlayer";
|
|
204
|
+
import { MarkdownProvider } from "next-intlayer/markdown";
|
|
205
|
+
|
|
206
|
+
const AppContent = () => {
|
|
207
|
+
const { myMarkdownContent } = useIntlayer("app");
|
|
208
|
+
|
|
209
|
+
return <div>{myMarkdownContent}</div>;
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
const App = () => (
|
|
213
|
+
<MarkdownProvider
|
|
214
|
+
components={{
|
|
215
|
+
h1: ({ children }) => <h1 style={{ color: "red" }}>{children}</h1>,
|
|
216
|
+
MyButton: (props) => <button {...props} />, // MDX घटक
|
|
217
|
+
}}
|
|
218
|
+
>
|
|
219
|
+
<AppContent />
|
|
220
|
+
</MarkdownProvider>
|
|
221
|
+
);
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
> यदि `MarkdownProvider` मौजूद नहीं है, तो Intlayer डिफ़ॉल्ट Markdown से JSX पार्सर का उपयोग करके मार्कडाउन को रेंडर करेगा।
|
|
225
|
+
|
|
226
|
+
आप `.use()` विधि का उपयोग करके विशिष्ट नोड्स के लिए स्थानीय ओवरराइड भी प्रदान कर सकते हैं:
|
|
227
|
+
|
|
228
|
+
```tsx
|
|
229
|
+
{myMarkdownContent.use({
|
|
230
|
+
h1: ({ children }) => <h1 style={{ color: "red" }}>{children}</h1>,
|
|
231
|
+
})}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
आप Markdown को एक स्ट्रिंग के रूप में प्राप्त कर सकते हैं:
|
|
235
|
+
|
|
236
|
+
```tsx
|
|
237
|
+
{myMarkdownContent.value}
|
|
238
|
+
{String(myMarkdownContent)}
|
|
239
|
+
{myMarkdownContent.toString()}
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
और आप अपने मार्कडाउन मेटाडेटा तक इस प्रकार पहुँच सकते हैं:
|
|
243
|
+
|
|
244
|
+
```tsx
|
|
245
|
+
{myMarkdownContent.metadata}
|
|
246
|
+
{myMarkdownContent.metadata.title}
|
|
247
|
+
```
|
|
248
|
+
|
|
200
249
|
</Tab>
|
|
201
250
|
<Tab label="Vue" value="vue">
|
|
202
251
|
Vue में, Markdown सामग्री को अंतर्निहित `component` टैग का उपयोग करके या सीधे एक नोड के रूप में रेंडर किया जा सकता है।
|
|
@@ -441,7 +490,7 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
|
|
|
441
490
|
ये यूटिलिटीज **केवल कच्चे Markdown स्ट्रिंग्स** को रेंडर करती हैं और `useIntlayer` से स्वतंत्र हैं। जब आपको अपने डिक्शनरी के अलावा अन्य स्रोतों से Markdown रेंडर करने की आवश्यकता हो, तो इनका उपयोग करें।
|
|
442
491
|
|
|
443
492
|
<Tabs group="framework">
|
|
444
|
-
<Tab label="React
|
|
493
|
+
<Tab label="React" value="react">
|
|
445
494
|
|
|
446
495
|
#### `<MarkdownRenderer />` घटक
|
|
447
496
|
|
|
@@ -479,6 +528,45 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
|
|
|
479
528
|
const jsx = renderMarkdown("# मेरा शीर्षक", { forceBlock: true });
|
|
480
529
|
```
|
|
481
530
|
|
|
531
|
+
</Tab>
|
|
532
|
+
<Tab label="Next.js" value="nextjs">
|
|
533
|
+
|
|
534
|
+
#### `<MarkdownRenderer />` घटक
|
|
535
|
+
|
|
536
|
+
विशिष्ट विकल्पों के साथ एक Markdown स्ट्रिंग रेंडर करता है।
|
|
537
|
+
|
|
538
|
+
```tsx
|
|
539
|
+
import { MarkdownRenderer } from "next-intlayer/markdown";
|
|
540
|
+
|
|
541
|
+
<MarkdownRenderer forceBlock={true} tagfilter={true}>
|
|
542
|
+
{"# मेरा शीर्षक"}
|
|
543
|
+
</MarkdownRenderer>
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
#### `useMarkdownRenderer()` हुक
|
|
547
|
+
|
|
548
|
+
पूर्व-कॉन्फ़िगर रेंडरर फ़ंक्शन प्राप्त करें।
|
|
549
|
+
|
|
550
|
+
```tsx
|
|
551
|
+
import { useMarkdownRenderer } from "next-intlayer/markdown";
|
|
552
|
+
|
|
553
|
+
const renderMarkdown = useMarkdownRenderer({
|
|
554
|
+
forceBlock: true,
|
|
555
|
+
components: { h1: (props) => <h1 {...props} className="custom" /> }
|
|
556
|
+
});
|
|
557
|
+
|
|
558
|
+
return renderMarkdown("# मेरा शीर्षक");
|
|
559
|
+
```
|
|
560
|
+
|
|
561
|
+
#### `renderMarkdown()` उपयोगिता
|
|
562
|
+
घटकों के बाहर रेंडरिंग के लिए स्टैंडअलोन उपयोगिता।
|
|
563
|
+
|
|
564
|
+
```tsx
|
|
565
|
+
import { renderMarkdown } from "next-intlayer/markdown";
|
|
566
|
+
|
|
567
|
+
const jsx = renderMarkdown("# मेरा शीर्षक", { forceBlock: true });
|
|
568
|
+
```
|
|
569
|
+
|
|
482
570
|
</Tab>
|
|
483
571
|
<Tab label="Vue" value="vue">
|
|
484
572
|
|
|
@@ -608,14 +696,12 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
|
|
|
608
696
|
</Tab>
|
|
609
697
|
</Tabs>
|
|
610
698
|
|
|
611
|
-
---
|
|
612
|
-
|
|
613
699
|
## `MarkdownProvider` के साथ ग्लोबल कॉन्फ़िगरेशन
|
|
614
700
|
|
|
615
701
|
`MarkdownProvider` (या इसके फ्रेमवर्क समतुल्य) आपके संपूर्ण एप्लिकेशन के लिए Markdown रेंडरिंग पाइपलाइन को कॉन्फ़िगर करता है। यह स्वचालित `useIntlayer` रेंडरिंग और हेल्पर यूटिलिटीज दोनों पर लागू होता है। यहाँ सेट किए गए विकल्प डिफ़ॉल्ट हैं — `.use()` उन्हें नोड स्तर पर ओवरराइड करता है।
|
|
616
702
|
|
|
617
703
|
<Tabs group="framework">
|
|
618
|
-
<Tab label="React
|
|
704
|
+
<Tab label="React" value="react">
|
|
619
705
|
|
|
620
706
|
```tsx fileName="AppProvider.tsx"
|
|
621
707
|
import { MarkdownProvider } from "react-intlayer/markdown";
|
|
@@ -633,6 +719,7 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
|
|
|
633
719
|
);
|
|
634
720
|
```
|
|
635
721
|
|
|
722
|
+
|
|
636
723
|
> MDX समर्थित है — आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा. `<MyCustomJSXComponent />`) को `components` मानचित्र के विरुद्ध हल किया जाता है।
|
|
637
724
|
|
|
638
725
|
आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
|
|
@@ -643,6 +730,7 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
|
|
|
643
730
|
export const AppProvider = ({ children }) => (
|
|
644
731
|
<MarkdownProvider
|
|
645
732
|
renderMarkdown={async (md) => {
|
|
733
|
+
// Use dynamic import to reduce the bundle size of your application
|
|
646
734
|
const { renderMarkdown } = await import('react-intlayer/markdown');
|
|
647
735
|
return renderMarkdown(md);
|
|
648
736
|
}}
|
|
@@ -654,6 +742,48 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
|
|
|
654
742
|
|
|
655
743
|
> अपने Markdown रेंडरर को गतिशील रूप से आयात करना आपके एप्लिकेशन के बंडल आकार को कम करने का एक शानदार तरीका है।
|
|
656
744
|
|
|
745
|
+
</Tab>
|
|
746
|
+
<Tab label="Next.js" value="nextjs">
|
|
747
|
+
|
|
748
|
+
```tsx fileName="AppProvider.tsx"
|
|
749
|
+
import { MarkdownProvider } from "next-intlayer/markdown";
|
|
750
|
+
|
|
751
|
+
export const AppProvider = ({ children }) => (
|
|
752
|
+
<MarkdownProvider
|
|
753
|
+
components={{
|
|
754
|
+
h1: (props) => <h1 style={{color: 'green'}} {...props} />,
|
|
755
|
+
a: ({ href, ...props }) => <a style={{color: 'red'}} {...props} />,
|
|
756
|
+
MyCustomJSXComponent: (props) => <span style={{color: 'red'}} {...props} />,
|
|
757
|
+
}}
|
|
758
|
+
>
|
|
759
|
+
{children}
|
|
760
|
+
</MarkdownProvider>
|
|
761
|
+
);
|
|
762
|
+
```
|
|
763
|
+
|
|
764
|
+
|
|
765
|
+
> MDX समर्थित है — आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा. `<MyCustomJSXComponent />`) को `components` मानचित्र के विरुद्ध हल किया जाता है।
|
|
766
|
+
|
|
767
|
+
आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
|
|
768
|
+
|
|
769
|
+
```tsx fileName="AppProvider.tsx"
|
|
770
|
+
import { MarkdownProvider } from "next-intlayer/markdown";
|
|
771
|
+
|
|
772
|
+
export const AppProvider = ({ children }) => (
|
|
773
|
+
<MarkdownProvider
|
|
774
|
+
renderMarkdown={async (md) => {
|
|
775
|
+
// Use dynamic import to reduce the bundle size of your application
|
|
776
|
+
const { renderMarkdown } = await import('next-intlayer/markdown');
|
|
777
|
+
return renderMarkdown(md);
|
|
778
|
+
}}
|
|
779
|
+
>
|
|
780
|
+
{children}
|
|
781
|
+
</MarkdownProvider>
|
|
782
|
+
);
|
|
783
|
+
```
|
|
784
|
+
|
|
785
|
+
> अपने Markdown रेंडरर को गतिशील रूप से आयात करना आपके एप्लिकेशन के बंडल आकार को कम करने का एक शानदार तरीका है।
|
|
786
|
+
|
|
657
787
|
</Tab>
|
|
658
788
|
<Tab label="Vue" value="vue">
|
|
659
789
|
|
|
@@ -679,6 +809,9 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
|
|
|
679
809
|
app.mount("#app");
|
|
680
810
|
```
|
|
681
811
|
|
|
812
|
+
|
|
813
|
+
> MDX समर्थित है — आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा. `<MyCustomJSXComponent />`) को `components` मानचित्र के विरुद्ध हल किया जाता है।
|
|
814
|
+
|
|
682
815
|
आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
|
|
683
816
|
|
|
684
817
|
```typescript fileName="main.ts"
|
|
@@ -720,6 +853,9 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
|
|
|
720
853
|
</MarkdownProvider>
|
|
721
854
|
```
|
|
722
855
|
|
|
856
|
+
|
|
857
|
+
> MDX समर्थित है — आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा. `<MyCustomJSXComponent />`) को `components` मानचित्र के विरुद्ध हल किया जाता है।
|
|
858
|
+
|
|
723
859
|
आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
|
|
724
860
|
|
|
725
861
|
```svelte fileName="App.svelte"
|
|
@@ -756,6 +892,9 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
|
|
|
756
892
|
);
|
|
757
893
|
```
|
|
758
894
|
|
|
895
|
+
|
|
896
|
+
> MDX समर्थित है — आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा. `<MyCustomJSXComponent />`) को `components` मानचित्र के विरुद्ध हल किया जाता है।
|
|
897
|
+
|
|
759
898
|
आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
|
|
760
899
|
|
|
761
900
|
```tsx fileName="AppProvider.tsx"
|
|
@@ -792,6 +931,9 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
|
|
|
792
931
|
);
|
|
793
932
|
```
|
|
794
933
|
|
|
934
|
+
|
|
935
|
+
> MDX समर्थित है — आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा. `<MyCustomJSXComponent />`) को `components` मानचित्र के विरुद्ध हल किया जाता है।
|
|
936
|
+
|
|
795
937
|
आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
|
|
796
938
|
|
|
797
939
|
```tsx fileName="AppProvider.tsx"
|
|
@@ -835,3 +977,191 @@ Markdown रेंडरिंग **MDX** का समर्थन करता
|
|
|
835
977
|
|
|
836
978
|
</Tab>
|
|
837
979
|
</Tabs>
|
|
980
|
+
|
|
981
|
+
## सस्पेंस (Suspense)
|
|
982
|
+
|
|
983
|
+
Intlayer Markdown रेंडरर गतिशील रूप से लोड किया गया है। अनुकूलित होने के बावजूद, अंतर्निहित पार्सर चंक लगभग 55kb है। इसे सिंक्रोनस रूप से लोड करने से प्रारंभिक पृष्ठ रेंडरिंग में देरी होती है और First Contentful Paint (FCP) कम हो जाता है।
|
|
984
|
+
|
|
985
|
+
UI को ब्लॉक होने से रोकने के लिए, Intlayer React के Suspense API के साथ एकीकृत होता है। यह पार्सर को पृष्ठभूमि में लाता है और डाउनलोड के दौरान एक Promise थ्रो करता है।
|
|
986
|
+
|
|
987
|
+
Intlayer Markdown रेंडर करने वाले किसी भी घटक को `<Suspense>` बाउंड्री में लपेटें। यह चंक डाउनलोड होने के दौरान एक स्थानीयकृत फ़ॉलबैक स्थिति प्रदर्शित करता है, जिससे आपके शेष DOM को तुरंत रेंडर करने की अनुमति मिलती है।
|
|
988
|
+
|
|
989
|
+
चेतावनी: यदि आप `<Suspense>` बाउंड्री प्रदान नहीं करते हैं, तो 55kb चंक पूरी तरह से लोड होने तक React रूट स्तर पर निलंबित हो जाएगा या पूरे घटक ट्री को रेंडर होने से रोक देगा।
|
|
990
|
+
|
|
991
|
+
<Tabs>
|
|
992
|
+
<Tab label="Next.js" value="nextjs">
|
|
993
|
+
|
|
994
|
+
Next.js ऐप राउटर में, आप क्लाइंट घटकों के लिए React `Suspense` या सर्वर घटकों के लिए `loading.tsx` फ़ाइल का उपयोग कर सकते हैं।
|
|
995
|
+
|
|
996
|
+
**क्लाइंट घटक:**
|
|
997
|
+
|
|
998
|
+
```tsx fileName="components/MyComponent.tsx"
|
|
999
|
+
"use client";
|
|
1000
|
+
import { useIntlayer } from "next-intlayer";
|
|
1001
|
+
import { Suspense } from "react";
|
|
1002
|
+
|
|
1003
|
+
const MyComponent = () => {
|
|
1004
|
+
const markdownContent = useIntlayer("my-markdown");
|
|
1005
|
+
|
|
1006
|
+
return (
|
|
1007
|
+
<Suspense fallback={<div>Loading...</div>}>{markdownContent}</Suspense>
|
|
1008
|
+
);
|
|
1009
|
+
};
|
|
1010
|
+
```
|
|
1011
|
+
|
|
1012
|
+
**`loading.tsx` के साथ सर्वर घटक:**
|
|
1013
|
+
|
|
1014
|
+
```tsx fileName="app/loading.tsx"
|
|
1015
|
+
export default function Loading() {
|
|
1016
|
+
return <div>Loading...</div>;
|
|
1017
|
+
}
|
|
1018
|
+
```
|
|
1019
|
+
|
|
1020
|
+
```tsx fileName="app/page.tsx"
|
|
1021
|
+
import { useIntlayer } from "next-intlayer/server";
|
|
1022
|
+
|
|
1023
|
+
const MyPage = () => {
|
|
1024
|
+
const markdownContent = useIntlayer("my-markdown");
|
|
1025
|
+
return <div>{markdownContent}</div>;
|
|
1026
|
+
};
|
|
1027
|
+
|
|
1028
|
+
export default MyPage;
|
|
1029
|
+
```
|
|
1030
|
+
|
|
1031
|
+
</Tab>
|
|
1032
|
+
|
|
1033
|
+
<Tab label="React" value="react">
|
|
1034
|
+
|
|
1035
|
+
```tsx
|
|
1036
|
+
import { useIntlayer } from "react-intlayer";
|
|
1037
|
+
import { Suspense } from "react";
|
|
1038
|
+
|
|
1039
|
+
const MyComponent = () => {
|
|
1040
|
+
const markdownContent = useIntlayer("my-markdown");
|
|
1041
|
+
|
|
1042
|
+
return (
|
|
1043
|
+
<Suspense fallback={<div>Loading...</div>}>{markdownContent}</Suspense>
|
|
1044
|
+
);
|
|
1045
|
+
};
|
|
1046
|
+
```
|
|
1047
|
+
|
|
1048
|
+
</Tab>
|
|
1049
|
+
|
|
1050
|
+
<Tab label="Vue" value="vue">
|
|
1051
|
+
|
|
1052
|
+
Vue में एक अंतर्निहित `<Suspense>` घटक है। Markdown सामग्री रेंडर करने वाले घटक को `<Suspense>` बाउंड्री में लपेटें।
|
|
1053
|
+
|
|
1054
|
+
```vue fileName="MyComponent.vue"
|
|
1055
|
+
<script setup>
|
|
1056
|
+
import { useIntlayer } from "vue-intlayer";
|
|
1057
|
+
|
|
1058
|
+
const { markdownContent } = useIntlayer("my-markdown");
|
|
1059
|
+
</script>
|
|
1060
|
+
|
|
1061
|
+
<template>
|
|
1062
|
+
<Suspense>
|
|
1063
|
+
<component :is="markdownContent" />
|
|
1064
|
+
<template #fallback>
|
|
1065
|
+
<div>Loading...</div>
|
|
1066
|
+
</template>
|
|
1067
|
+
</Suspense>
|
|
1068
|
+
</template>
|
|
1069
|
+
```
|
|
1070
|
+
|
|
1071
|
+
</Tab>
|
|
1072
|
+
<Tab label="Svelte" value="svelte">
|
|
1073
|
+
|
|
1074
|
+
Svelte में Suspense API के समकक्ष नहीं है। Markdown सामग्री के एसिंक्रोनस रेंडरिंग को संभालने के लिए `{#await}` ब्लॉक का उपयोग करें।
|
|
1075
|
+
|
|
1076
|
+
```svelte fileName="MyComponent.svelte"
|
|
1077
|
+
<script lang="ts">
|
|
1078
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
1079
|
+
|
|
1080
|
+
const content = useIntlayer("my-markdown");
|
|
1081
|
+
</script>
|
|
1082
|
+
|
|
1083
|
+
{#await $content.markdownContent}
|
|
1084
|
+
<div>Loading...</div>
|
|
1085
|
+
{:then rendered}
|
|
1086
|
+
{@html rendered}
|
|
1087
|
+
{/await}
|
|
1088
|
+
```
|
|
1089
|
+
|
|
1090
|
+
</Tab>
|
|
1091
|
+
<Tab label="Preact" value="preact">
|
|
1092
|
+
|
|
1093
|
+
Preact `preact/compat` के माध्यम से React के Suspense API का समर्थन करता है।
|
|
1094
|
+
|
|
1095
|
+
```tsx fileName="MyComponent.tsx"
|
|
1096
|
+
import { useIntlayer } from "preact-intlayer";
|
|
1097
|
+
import { Suspense } from "preact/compat";
|
|
1098
|
+
|
|
1099
|
+
const MyComponent = () => {
|
|
1100
|
+
const markdownContent = useIntlayer("my-markdown");
|
|
1101
|
+
|
|
1102
|
+
return (
|
|
1103
|
+
<Suspense fallback={<div>Loading...</div>}>{markdownContent}</Suspense>
|
|
1104
|
+
);
|
|
1105
|
+
};
|
|
1106
|
+
```
|
|
1107
|
+
|
|
1108
|
+
</Tab>
|
|
1109
|
+
<Tab label="Solid" value="solid">
|
|
1110
|
+
|
|
1111
|
+
Solid का अपना `<Suspense>` घटक `solid-js` से है।
|
|
1112
|
+
|
|
1113
|
+
```tsx fileName="MyComponent.tsx"
|
|
1114
|
+
import { useIntlayer } from "solid-intlayer";
|
|
1115
|
+
import { Suspense } from "solid-js";
|
|
1116
|
+
|
|
1117
|
+
const MyComponent = () => {
|
|
1118
|
+
const { markdownContent } = useIntlayer("my-markdown");
|
|
1119
|
+
|
|
1120
|
+
return (
|
|
1121
|
+
<Suspense fallback={<div>Loading...</div>}>{markdownContent}</Suspense>
|
|
1122
|
+
);
|
|
1123
|
+
};
|
|
1124
|
+
```
|
|
1125
|
+
|
|
1126
|
+
</Tab>
|
|
1127
|
+
<Tab label="Angular" value="angular">
|
|
1128
|
+
|
|
1129
|
+
Angular में Suspense API नहीं है। लेज़ी-लोडेड Markdown सामग्री (Angular 17+ की आवश्यकता है) को संभालने के लिए Angular के आस्थगित दृश्य (`@defer`) का उपयोग करें।
|
|
1130
|
+
|
|
1131
|
+
```typescript fileName="my.component.ts"
|
|
1132
|
+
import { Component } from "@angular/core";
|
|
1133
|
+
import { useIntlayer } from "angular-intlayer";
|
|
1134
|
+
|
|
1135
|
+
@Component({
|
|
1136
|
+
selector: "app-my",
|
|
1137
|
+
template: `
|
|
1138
|
+
@defer {
|
|
1139
|
+
<div [innerHTML]="content().markdownContent"></div>
|
|
1140
|
+
} @loading {
|
|
1141
|
+
<div>Loading...</div>
|
|
1142
|
+
}
|
|
1143
|
+
`,
|
|
1144
|
+
})
|
|
1145
|
+
export class MyComponent {
|
|
1146
|
+
content = useIntlayer("my-markdown");
|
|
1147
|
+
}
|
|
1148
|
+
```
|
|
1149
|
+
|
|
1150
|
+
</Tab>
|
|
1151
|
+
</Tabs>
|
|
1152
|
+
|
|
1153
|
+
---
|
|
1154
|
+
|
|
1155
|
+
## विकल्प संदर्भ
|
|
1156
|
+
|
|
1157
|
+
इन विकल्पों को `MarkdownProvider`, `MarkdownRenderer`, `useMarkdownRenderer` और `renderMarkdown` में पास किया जा सकता है।
|
|
1158
|
+
|
|
1159
|
+
| Option | Type | Default | विवरण |
|
|
1160
|
+
| :-------------------- | :---------- | :------ | :------------------------------------------------------------------------------------- |
|
|
1161
|
+
| `forceBlock` | `boolean` | `false` | आउटपुट को ब्लॉक-स्तरीय तत्व (उदा., `<div>`) में लपेटने के लिए बाध्य करता है। |
|
|
1162
|
+
| `forceInline` | `boolean` | `false` | आउटपुट को इनलाइन तत्व (उदा., `<span>`) में लपेटने के लिए बाध्य करता है। |
|
|
1163
|
+
| `tagfilter` | `boolean` | `true` | खतरनाक HTML टैग को हटाकर सुरक्षा में सुधार के लिए GitHub टैग फ़िल्टर को सक्षम करता है। |
|
|
1164
|
+
| `preserveFrontmatter` | `boolean` | `false` | यदि `true` है, तो Markdown स्ट्रिंग के प्रारंभ में फ्रंटमैटर को नहीं हटाया जाएगा। |
|
|
1165
|
+
| `components` | `Overrides` | `{}` | कस्टम घटकों के लिए HTML टैग का मानचित्र (उदा., `{ h1: MyHeading }`)। |
|
|
1166
|
+
| `wrapper` | `Component` | `null` | रेंडर किए गए Markdown को लपेटने के लिए एक कस्टम घटक। |
|
|
1167
|
+
| `renderMarkdown` | `Function` | `null` | डिफ़ॉल्ट Markdown कंपाइलर को पूरी तरह से बदलने के लिए एक कस्टम रेंडरिंग फ़ंक्शन। |
|
|
@@ -224,7 +224,7 @@ export const ComponentExample = () => {
|
|
|
224
224
|
|
|
225
225
|
GitHub सितारे किसी प्रोजेक्ट की लोकप्रियता, सामुदायिक विश्वास और दीर्घकालिक प्रासंगिकता का एक मजबूत संकेतक हैं। हालांकि यह तकनीकी गुणवत्ता का प्रत्यक्ष माप नहीं है, वे दर्शाते हैं कि कितने डेवलपर्स प्रोजेक्ट को उपयोगी पाते हैं, इसकी प्रगति का पालन करते हैं, और इसे अपनाने की संभावना रखते हैं। किसी प्रोजेक्ट के मूल्य का अनुमान लगाने के लिए, सितारे विकल्पों के बीच कर्षण की तुलना करने में मदद करते हैं और पारिस्थितिकी तंत्र के विकास में अंतर्दृष्टि प्रदान करते हैं।
|
|
226
226
|
|
|
227
|
-
[](https://www.star-history.com/#aymericzip/intlayer&formatjs/formatjs&i18next/react-i18next&i18next/i18next&i18next/next-i18next&lingui/js-lingui&amannn/next-intl&intlify/vue-i18n&codingcommons/typesafe-i18n&opral/paraglide-js)
|
|
228
228
|
|
|
229
229
|
---
|
|
230
230
|
|