अपने प्रश्न को पूछें और दस्तावेज़ का सारांश प्राप्त करें, इस पृष्ठ और आपके चुने हुए AI प्रदाता का उपयोग करके
संस्करण इतिहास
- "SSR / हाइड्रेशन के लिए मार्कडाउन एएसटी के पूर्व-पार्सिंग की अनुमति दें"v8.11.028/5/2026
- "`.content.md` फ़ाइलों के लिए समर्थन जोड़ा गया"v8.10.019/5/2026
- "`intlayerMarkdown` प्लगइन ऑब्जेक्ट जोड़ा गया; `app.use(installIntlayerMarkdown)` के बजाय `app.use(intlayerMarkdown)` का उपयोग करें"v8.5.024/3/2026
- "आयात को `{{framework}}-intlayer` से `{{framework}}-intlayer/markdown` में ले जाया गया"v8.5.024/3/2026
- "MarkdownRenderer / useMarkdownRenderer / renderMarkdown उपयोगिता और forceInline विकल्प जोड़ा गया"v8.0.022/1/2026
- "मार्कडाउन सामग्री, MDX और SSR समर्थन की स्वचालित सजावट"v8.0.018/1/2026
- "प्रारंभिक इतिहास"v5.5.1029/6/2025
इस पृष्ठ की सामग्री एक AI द्वारा अनुवादित की गई है।
अंग्रेजी में मूल सामग्री के अंतिम संस्करण देखेंअगर आपके पास इस दस्तावेज़ को सुधारने के लिए कोई विचार है, तो कृपया GitHub पर एक पुल अनुरोध सबमिट करके योगदान देने में संकोच न करें।
दस्तावेज़ के लिए GitHub लिंकदस्तावेज़ का Markdown को क्लिपबोर्ड पर कॉपी करें
Markdown / रिच टेक्स्ट सामग्री
Intlayer Markdown सिंटैक्स का उपयोग करके परिभाषित रिच टेक्स्ट सामग्री का समर्थन करता है। यह आपको ब्लॉग, लेख आदि जैसी समृद्ध-स्वरूपित सामग्री को आसानी से लिखने और बनाए रखने की अनुमति देता है।
Markdown सामग्री घोषित करना
आप md फ़ंक्शन का उपयोग करके या केवल एक स्ट्रिंग के रूप में (यदि इसमें Markdown सिंटैक्स है) Markdown सामग्री घोषित कर सकते हैं।
संस्करण 8.10.0 से, आप सीधे .content.md फ़ाइलों में Markdown सामग्री घोषित कर सकते हैं। Intlayer स्वचालित रूप से Markdown सामग्री का पता लगाएगा और उसे पार्स करेगा।
कोड को क्लिपबोर्ड पर कॉपी करें
locale फ्रंट-मैटर फ़ील्ड वह फ़ील्ड है जो सामग्री स्थानीय (locale) को परिभाषित करता है। यह वैकल्पिक है। यदि प्रदान नहीं किया जाता है, तो Intlayer डिफ़ॉल्ट स्थानीय का उपयोग करेगा, जिसे विशिष्ट स्थानीय के लिए कोई अनुवाद उपलब्ध नहीं होने पर फ़ॉलबैक स्थानीय के रूप में भी उपयोग किया जाता है।
फ़ाइल संरचना उदाहरण:
कोड को क्लिपबोर्ड पर कॉपी करें
आप फ्रंट-मैटर में डिक्शनरी परिभाषा में परिभाषित कोई भी गुण जोड़ सकते हैं
Markdown सामग्री को स्पष्ट रूप से घोषित करने के लिए md फ़ंक्शन का उपयोग करें। यह तब उपयोगी होता है जब आप यह सुनिश्चित करना चाहते हैं कि किसी स्ट्रिंग को Markdown के रूप में माना जाए, भले ही उसमें स्पष्ट सिंटैक्स न हो।
कोड को क्लिपबोर्ड पर कॉपी करें
file फ़ंक्शन का उपयोग करके सीधे .md फ़ाइलें आयात करें।
कोड को क्लिपबोर्ड पर कॉपी करें
यदि स्ट्रिंग में सामान्य Markdown संकेतक (जैसे हेडिंग, लिस्ट, लिंक आदि) हैं, तो Intlayer स्वचालित रूप से इसे बदल देगा।
कोड को क्लिपबोर्ड पर कॉपी करें
Markdown रेंडरिंग
Intlayer Markdown रेंडर करने के दो स्वतंत्र तरीके प्रदान करता है:
useIntlayerके माध्यम से Intlayer स्वचालित रूप सेmdनोड को फ्रेमवर्क के मूल आउटपुट (JSX, VNode, HTML स्ट्रिंग) में बदल देता है।- फ्रंटमैटर को पार्स किया जाता है और
.metadataके रूप में उजागर किया जाता है। आप रेंडरिंग को दो स्तरों पर ओवरराइड कर सकते हैं, विश्व स्तर परMarkdownProvider(या फ्रेमवर्क समतुल्य) के साथ और स्थानीय स्तर पर प्रति नोड.use()के साथ। दोनों को जोड़ा जा सकता है;.use(),MarkdownProviderपर पूर्वता लेता है, जो डिफ़ॉल्ट पर पूर्वता लेता है।
- फ्रंटमैटर को पार्स किया जाता है और
हेल्पर यूटिलिटीज:
<MarkdownRenderer />,useMarkdownRenderer(), औरrenderMarkdown()स्टैंडअलोन टूल हैं जो केवल कच्चे Markdown स्ट्रिंग्स को स्वीकार करते हैं। वेuseIntlayerसे स्वतंत्र हैं और इसके द्वारा लौटाए गए सजाए गए नोड्स के साथ काम नहीं करते हैं।
Markdown रेंडरिंग MDX का समर्थन करता है, अपने Markdown के अंदर सीधे नाम से किसी भी JSX/फ्रेमवर्क घटक का उपयोग करें।
1. स्वचालित रेंडरिंग (useIntlayer के माध्यम से)
Markdown नोड्स को सीधे JSX के रूप में रेंडर किया जा सकता है।
कोड को क्लिपबोर्ड पर कॉपी करें
यदि MarkdownProvider मौजूद नहीं है, तो Intlayer डिफ़ॉल्ट Markdown से JSX पार्सर का उपयोग करके मार्कडाउन को रेंडर करेगा।
आप .use() विधि का उपयोग करके विशिष्ट नोड्स के लिए स्थानीय ओवरराइड भी प्रदान कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
आप Markdown को एक स्ट्रिंग के रूप में प्राप्त कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
और आप अपने मार्कडाउन मेटाडेटा तक इस प्रकार पहुँच सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
Markdown नोड्स को सीधे JSX के रूप में रेंडर किया जा सकता है।
कोड को क्लिपबोर्ड पर कॉपी करें
यदि MarkdownProvider मौजूद नहीं है, तो Intlayer डिफ़ॉल्ट Markdown से JSX पार्सर का उपयोग करके मार्कडाउन को रेंडर करेगा।
आप .use() विधि का उपयोग करके विशिष्ट नोड्स के लिए स्थानीय ओवरराइड भी प्रदान कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
आप Markdown को एक स्ट्रिंग के रूप में प्राप्त कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
और आप अपने मार्कडाउन मेटाडेटा तक इस प्रकार पहुँच सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
Vue में, Markdown सामग्री को अंतर्निहित component टैग का उपयोग करके या सीधे एक नोड के रूप में रेंडर किया जा सकता है।
कोड को क्लिपबोर्ड पर कॉपी करें
intlayerMarkdown प्लगइन के माध्यम से विश्व स्तर पर कॉन्फ़िगर करें (MDX कस्टम घटकों का समर्थन करता है):
कोड को क्लिपबोर्ड पर कॉपी करें
यदि intlayerMarkdown प्लगइन स्थापित नहीं है, तो Intlayer डिफ़ॉल्ट कंपाइलर का उपयोग करके रेंडर करेगा।
आप .use() विधि का उपयोग करके विशिष्ट नोड्स के लिए स्थानीय ओवरराइड भी प्रदान कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
आप Markdown को एक स्ट्रिंग के रूप में प्राप्त कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
और आप अपने मार्कडाउन मेटाडेटा तक इस प्रकार पहुँच सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
Svelte डिफ़ॉल्ट रूप से Markdown को एक HTML स्ट्रिंग के रूप में रेंडर करता है। इसे रेंडर करने के लिए {@html} का उपयोग करें।
कोड को क्लिपबोर्ड पर कॉपी करें
यदि MarkdownProvider मौजूद नहीं है, तो Intlayer डिफ़ॉल्ट कंपाइलर का उपयोग करके मार्कडाउन को रेंडर करेगा।
आप .use() विधि का उपयोग करके विशिष्ट नोड्स के लिए स्थानीय ओवरराइड भी प्रदान कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
आप Markdown को एक स्ट्रिंग के रूप में प्राप्त कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
और आप अपने मार्कडाउन मेटाडेटा तक इस प्रकार पहुँच सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
Preact, JSX में सीधे Markdown नोड्स का समर्थन करता है।
कोड को क्लिपबोर्ड पर कॉपी करें
यदि MarkdownProvider मौजूद नहीं है, तो Intlayer डिफ़ॉल्ट Markdown से JSX पार्सर का उपयोग करके मार्कडाउन को रेंडर करेगा।
आप .use() विधि का उपयोग करके विशिष्ट नोड्स के लिए स्थानीय ओवरराइड भी प्रदान कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
आप Markdown को एक स्ट्रिंग के रूप में प्राप्त कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
और आप अपने मार्कडाउन मेटाडेटा तक इस प्रकार पहुँच सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
Solid, JSX में सीधे Markdown नोड्स का समर्थन करता है।
कोड को क्लिपबोर्ड पर कॉपी करें
यदि MarkdownProvider मौजूद नहीं है, तो Intlayer डिफ़ॉल्ट Markdown से JSX पार्सर का उपयोग करके मार्कडाउन को रेंडर करेगा।
आप .use() विधि का उपयोग करके विशिष्ट नोड्स के लिए स्थानीय ओवरराइड भी प्रदान कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
आप Markdown को एक स्ट्रिंग के रूप में प्राप्त कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
और आप अपने मार्कडाउन मेटाडेटा तक इस प्रकार पहुँच सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
Angular, Markdown सामग्री को रेंडर करने के लिए [innerHTML] निर्देश का उपयोग करता है।
कोड को क्लिपबोर्ड पर कॉपी करें
यदि IntlayerMarkdown प्रदाता कॉन्फ़िगर नहीं किया गया है, तो Intlayer डिफ़ॉल्ट कंपाइलर का उपयोग करके रेंडर करेगा।
आप .use() विधि का उपयोग करके विशिष्ट नोड्स के लिए स्थानीय ओवरराइड भी प्रदान कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
आप Markdown को एक स्ट्रिंग के रूप में प्राप्त कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
और आप अपने मार्कडाउन मेटाडेटा तक इस प्रकार पहुँच सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
Remix 3 में, Markdown नोड्स सर्वर पर एक HTML स्ट्रिंग में रेंडर होते हैं। इसे Remix JSX के innerHTML प्रॉप के साथ, या html-template दृश्य में html.raw के साथ इंजेक्ट करें।
कोड को क्लिपबोर्ड पर कॉपी करें
कोड को क्लिपबोर्ड पर कॉपी करें
Remix डिफ़ॉल्ट रूप से इंटरपोलेटेड मानों को एस्केप करता है।innerHTMLऔरhtml.rawदो ऑप्ट-आउट हैं, जो एक रेंडर किए गए Markdown स्ट्रिंग की आवश्यकता है।
आप .use() विधि का उपयोग करके विशिष्ट टैग के लिए स्थानीय ओवरराइड भी प्रदान कर सकते हैं। ओवरराइड ऐसे फ़ंक्शन हैं जो एक HTML स्ट्रिंग लौटाते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
.value रेंडर किया गया HTML स्ट्रिंग है, जबकि String() / .toString() कच्चा Markdown स्रोत वापस देते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
और आप अपने markdown मेटाडेटा को इस तरह एक्सेस कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
Astro में, Markdown नोड्स एक HTML स्ट्रिंग में रेंडर होते हैं। इसे टेम्पलेट में set:html निर्देश के साथ, या क्लाइंट <script> में innerHTML के साथ इंजेक्ट करें।
कोड को क्लिपबोर्ड पर कॉपी करें
कोड को क्लिपबोर्ड पर कॉपी करें
Astro डिफ़ॉल्ट रूप से{अभिव्यक्तियों}को एस्केप करता है।set:htmlऑप्ट-आउट है, जो एक रेंडर किए गए Markdown स्ट्रिंग की आवश्यकता है।
आप .use() विधि का उपयोग करके विशिष्ट टैग के लिए स्थानीय ओवरराइड भी प्रदान कर सकते हैं। ओवरराइड ऐसे फ़ंक्शन हैं जो एक HTML स्ट्रिंग लौटाते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
.value रेंडर किया गया HTML स्ट्रिंग है, जबकि String() / .toString() कच्चा Markdown स्रोत वापस देते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
और आप अपने markdown मेटाडेटा को इस तरह एक्सेस कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
2. हेल्पर यूटिलिटीज (केवल Markdown स्ट्रिंग्स)
ये यूटिलिटीज केवल कच्चे Markdown स्ट्रिंग्स को रेंडर करती हैं और useIntlayer से स्वतंत्र हैं। जब आपको अपने डिक्शनरी के अलावा अन्य स्रोतों से Markdown रेंडर करने की आवश्यकता हो, तो इनका उपयोग करें।
<MarkdownRenderer /> घटक
विशिष्ट विकल्पों के साथ एक Markdown स्ट्रिंग रेंडर करता है।
कोड को क्लिपबोर्ड पर कॉपी करें
useMarkdownRenderer() हुक
पूर्व-कॉन्फ़िगर रेंडरर फ़ंक्शन प्राप्त करें।
कोड को क्लिपबोर्ड पर कॉपी करें
renderMarkdown() उपयोगिता
घटकों के बाहर रेंडरिंग के लिए स्टैंडअलोन उपयोगिता।
कोड को क्लिपबोर्ड पर कॉपी करें
<MarkdownRenderer /> घटक
विशिष्ट विकल्पों के साथ एक Markdown स्ट्रिंग रेंडर करता है।
कोड को क्लिपबोर्ड पर कॉपी करें
useMarkdownRenderer() हुक
पूर्व-कॉन्फ़िगर रेंडरर फ़ंक्शन प्राप्त करें।
कोड को क्लिपबोर्ड पर कॉपी करें
renderMarkdown() उपयोगिता
घटकों के बाहर रेंडरिंग के लिए स्टैंडअलोन उपयोगिता।
कोड को क्लिपबोर्ड पर कॉपी करें
<MarkdownRenderer /> घटक
कोड को क्लिपबोर्ड पर कॉपी करें
<MarkdownRenderer /> घटक
कोड को क्लिपबोर्ड पर कॉपी करें
useMarkdownRenderer() हुक
कोड को क्लिपबोर्ड पर कॉपी करें
renderMarkdown() उपयोगिता
कोड को क्लिपबोर्ड पर कॉपी करें
<MarkdownRenderer /> घटक
कोड को क्लिपबोर्ड पर कॉपी करें
useMarkdownRenderer() हुक
कोड को क्लिपबोर्ड पर कॉपी करें
renderMarkdown() उपयोगिता
कोड को क्लिपबोर्ड पर कॉपी करें
<MarkdownRenderer /> घटक
कोड को क्लिपबोर्ड पर कॉपी करें
useMarkdownRenderer() हुक
कोड को क्लिपबोर्ड पर कॉपी करें
renderMarkdown() उपयोगिता
कोड को क्लिपबोर्ड पर कॉपी करें
IntlayerMarkdownService सेवा
सेवा का उपयोग करके एक Markdown स्ट्रिंग रेंडर करता है।
कोड को क्लिपबोर्ड पर कॉपी करें
useMarkdownRenderer() हुक
installIntlayerMarkdown() द्वारा पूर्व-कॉन्फ़िगर किया गया रेंडरर फ़ंक्शन प्राप्त करें। यह एक HTML स्ट्रिंग लौटाता है।
कोड को क्लिपबोर्ड पर कॉपी करें
renderMarkdown() यूटिलिटी
स्टैंडअलोन यूटिलिटी जो वैश्विक कॉन्फ़िगरेशन को अनदेखा करती है।
कोड को क्लिपबोर्ड पर कॉपी करें
useMarkdownRenderer() हुक
installIntlayerMarkdown() द्वारा पूर्व-कॉन्फ़िगर किया गया रेंडरर फ़ंक्शन प्राप्त करें। यह एक HTML स्ट्रिंग लौटाता है।
कोड को क्लिपबोर्ड पर कॉपी करें
renderMarkdown() यूटिलिटी
स्टैंडअलोन यूटिलिटी जो वैश्विक कॉन्फ़िगरेशन को अनदेखा करती है।
कोड को क्लिपबोर्ड पर कॉपी करें
MarkdownProvider के साथ ग्लोबल कॉन्फ़िगरेशन
MarkdownProvider (या इसके फ्रेमवर्क समतुल्य) आपके संपूर्ण एप्लिकेशन के लिए Markdown रेंडरिंग पाइपलाइन को कॉन्फ़िगर करता है। यह स्वचालित useIntlayer रेंडरिंग और हेल्पर यूटिलिटीज दोनों पर लागू होता है। यहाँ सेट किए गए विकल्प डिफ़ॉल्ट हैं, .use() उन्हें नोड स्तर पर ओवरराइड करता है।
कोड को क्लिपबोर्ड पर कॉपी करें
MDX समर्थित है, आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा.<MyCustomJSXComponent />) कोcomponentsमानचित्र के विरुद्ध हल किया जाता है।
आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
अपने Markdown रेंडरर को गतिशील रूप से आयात करना आपके एप्लिकेशन के बंडल आकार को कम करने का एक शानदार तरीका है।
कोड को क्लिपबोर्ड पर कॉपी करें
MDX समर्थित है, आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा.<MyCustomJSXComponent />) कोcomponentsमानचित्र के विरुद्ध हल किया जाता है।
आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
अपने Markdown रेंडरर को गतिशील रूप से आयात करना आपके एप्लिकेशन के बंडल आकार को कम करने का एक शानदार तरीका है।
कोड को क्लिपबोर्ड पर कॉपी करें
MDX समर्थित है, आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा.<MyCustomJSXComponent />) कोcomponentsमानचित्र के विरुद्ध हल किया जाता है।
आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
अपने Markdown रेंडरर को गतिशील रूप से आयात करना आपके एप्लिकेशन के बंडल आकार को कम करने का एक शानदार तरीका है।
कोड को क्लिपबोर्ड पर कॉपी करें
MDX समर्थित है, आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा.<MyCustomJSXComponent />) कोcomponentsमानचित्र के विरुद्ध हल किया जाता है।
आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
अपने Markdown रेंडरर को गतिशील रूप से आयात करना आपके एप्लिकेशन के बंडल आकार को कम करने का एक शानदार तरीका है।
कोड को क्लिपबोर्ड पर कॉपी करें
MDX समर्थित है, आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा.<MyCustomJSXComponent />) कोcomponentsमानचित्र के विरुद्ध हल किया जाता है।
आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
अपने Markdown रेंडरर को गतिशील रूप से आयात करना आपके एप्लिकेशन के बंडल आकार को कम करने का एक शानदार तरीका है।
कोड को क्लिपबोर्ड पर कॉपी करें
MDX समर्थित है, आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा.<MyCustomJSXComponent />) कोcomponentsमानचित्र के विरुद्ध हल किया जाता है।
आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
अपने Markdown रेंडरर को गतिशील रूप से आयात करना आपके एप्लिकेशन के बंडल आकार को कम करने का एक शानदार तरीका है।
कोड को क्लिपबोर्ड पर कॉपी करें
MDX समर्थित है, आपके Markdown के अंदर उपयोग किए गए किसी भी घटक नाम (उदा.<MyCustomJSXComponent />) कोcomponentsमानचित्र के विरुद्ध हल किया जाता है।
आप अपने स्वयं के मार्कडाउन रेंडरर का भी उपयोग कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
अपने Markdown रेंडरर को गतिशील रूप से आयात करना आपके एप्लिकेशन के बंडल आकार को कम करने का एक शानदार तरीका है।
Remix में प्रोवाइडर रखने के लिए कोई कंपोनेंट ट्री नहीं है, इसलिए सर्वर प्रारंभ होने पर कॉन्फ़िगरेशन एक सिंगलटन के रूप में एक बार स्थापित होता है। यह useMarkdownRenderer() द्वारा लौटाए गए रेंडरर को कॉन्फ़िगर करता है। useIntlayer द्वारा लौटाए गए md नोड्स डिफ़ॉल्ट कंपाइलर के साथ रेंडर किए जाते हैं; प्रति नोड उनके टैग को .use() के साथ ओवरराइड करें।
कोड को क्लिपबोर्ड पर कॉपी करें
आप अपने स्वयं के markdown रेंडरर का भी उपयोग कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
रेंडरर को लेज़ी लोड करने के लिए installIntlayerMarkdownDynamic(async () => …) का उपयोग करें; लोडर केवल पहले कॉल पर चलता है।
Astro में प्रोवाइडर रखने के लिए कोई कंपोनेंट ट्री नहीं है, इसलिए कॉन्फ़िगरेशन मिडलवेयर (सर्वर) और क्लाइंट <script> (ब्राउज़र) में सिंगलटन के रूप में एक बार स्थापित होता है। यह useMarkdownRenderer() द्वारा लौटाए गए रेंडरर को कॉन्फ़िगर करता है। useIntlayer द्वारा लौटाए गए md नोड्स डिफ़ॉल्ट कंपाइलर के साथ रेंडर किए जाते हैं; प्रति नोड उनके टैग को .use() के साथ ओवरराइड करें।
कोड को क्लिपबोर्ड पर कॉपी करें
आप अपने स्वयं के markdown रेंडरर का भी उपयोग कर सकते हैं:
कोड को क्लिपबोर्ड पर कॉपी करें
रेंडरर को लेज़ी लोड करने के लिए installIntlayerMarkdownDynamic(async () => …) का उपयोग करें; लोडर केवल पहले कॉल पर चलता है।
सस्पेंस (Suspense)
Intlayer Markdown रेंडरर गतिशील रूप से लोड किया गया है। अनुकूलित होने के बावजूद, अंतर्निहित पार्सर चंक लगभग 55kb है। इसे सिंक्रोनस रूप से लोड करने से प्रारंभिक पृष्ठ रेंडरिंग में देरी होती है और First Contentful Paint (FCP) कम हो जाता है।
UI को ब्लॉक होने से रोकने के लिए, Intlayer React के Suspense API के साथ एकीकृत होता है। यह पार्सर को पृष्ठभूमि में लाता है और डाउनलोड के दौरान एक Promise थ्रो करता है।
Intlayer Markdown रेंडर करने वाले किसी भी घटक को <Suspense> बाउंड्री में लपेटें। यह चंक डाउनलोड होने के दौरान एक स्थानीयकृत फ़ॉलबैक स्थिति प्रदर्शित करता है, जिससे आपके शेष DOM को तुरंत रेंडर करने की अनुमति मिलती है।
चेतावनी: यदि आप <Suspense> बाउंड्री प्रदान नहीं करते हैं, तो 55kb चंक पूरी तरह से लोड होने तक React रूट स्तर पर निलंबित हो जाएगा या पूरे घटक ट्री को रेंडर होने से रोक देगा।
Next.js ऐप राउटर में, आप क्लाइंट घटकों के लिए React Suspense या सर्वर घटकों के लिए loading.tsx फ़ाइल का उपयोग कर सकते हैं।
क्लाइंट घटक:
कोड को क्लिपबोर्ड पर कॉपी करें
loading.tsx के साथ सर्वर घटक:
कोड को क्लिपबोर्ड पर कॉपी करें
कोड को क्लिपबोर्ड पर कॉपी करें
कोड को क्लिपबोर्ड पर कॉपी करें
Vue में एक अंतर्निहित <Suspense> घटक है। Markdown सामग्री रेंडर करने वाले घटक को <Suspense> बाउंड्री में लपेटें।
कोड को क्लिपबोर्ड पर कॉपी करें
Svelte में Suspense API के समकक्ष नहीं है। Markdown सामग्री के एसिंक्रोनस रेंडरिंग को संभालने के लिए {#await} ब्लॉक का उपयोग करें।
कोड को क्लिपबोर्ड पर कॉपी करें
Preact preact/compat के माध्यम से React के Suspense API का समर्थन करता है।
कोड को क्लिपबोर्ड पर कॉपी करें
Solid का अपना <Suspense> घटक solid-js से है।
कोड को क्लिपबोर्ड पर कॉपी करें
Angular में Suspense API नहीं है। लेज़ी-लोडेड Markdown सामग्री (Angular 17+ की आवश्यकता है) को संभालने के लिए Angular के आस्थगित दृश्य (@defer) का उपयोग करें।
कोड को क्लिपबोर्ड पर कॉपी करें
सर्वर-साइड रेंडरिंग (SSR) और हाइड्रेशन
अन्य मार्कडाउन पार्सर जैसे remark / rehype की तुलना में, Intlayer Markdown पूरी तरह से निर्भरता-मुक्त है और क्लाइंट तथा सर्वर दोनों साइड पर चलता है।
लेकिन Intlayer ने सर्वर-साइड रेंडरिंग (SSR) फ्रेमवर्क (जैसे Next.js App Router, React Router, Nuxt, SvelteKit, आदि) के लिए पार्सिंग को अनुकूलित किया है।
क्लाइंट को रॉ मार्कडाउन स्ट्रिंग्स भेजने और ब्राउज़र पर उन्हें पार्स करने के बजाय (जिससे प्रदर्शन प्रभावित होता है), Intlayer आपको सर्वर पर ही मार्कडाउन को एब्सट्रैक्ट सिंटैक्स ट्री (AST) में प्री-पार्स करने की अनुमति देता है।
आप सर्वर साइड पर अपने फ्रेमवर्क के Intlayer पैकेज से parseMarkdown फ़ंक्शन का उपयोग करके एक सीरियलाइज़ेबल AST (ParsedMarkdown ऑब्जेक्ट) बना सकते हैं, और इसे सीधे फ़्रंटएंड पर पास कर सकते हैं। सभी Intlayer रेंडरिंग उपयोगिताएँ (जैसे <MarkdownRenderer>, useMarkdownRenderer, आदि) स्वचालित रूप से इस AST ऑब्जेक्ट को स्वीकार करती हैं और इसे बिना किसी बाधा के रेंडर करती हैं।
सर्वर/क्लाइंट आर्किटेक्चर में उदाहरण
कोड को क्लिपबोर्ड पर कॉपी करें
कोड को क्लिपबोर्ड पर कॉपी करें
कोड को क्लिपबोर्ड पर कॉपी करें
कोड को क्लिपबोर्ड पर कॉपी करें
कोड को क्लिपबोर्ड पर कॉपी करें
कोड को क्लिपबोर्ड पर कॉपी करें
Angular SSR आमतौर पर प्रारंभिक लोड के दौरान सर्वर पर डेटा हल करता है और क्लाइंट पर हाइड्रेट करता है। आप AST पास करने के लिए रिज़ॉल्वर का उपयोग कर सकते हैं।
कोड को क्लिपबोर्ड पर कॉपी करें
कोड को क्लिपबोर्ड पर कॉपी करें
Remix 3 सर्वर पर रेंडर करता है और HTML स्ट्रीम करता है, इसलिए किसी भी AST को क्लाइंट में जाने की आवश्यकता नहीं होती है। एक बार पार्स करें, और पृष्ठ जहां भी बनाया गया है वहां AST रेंडर करें:
कोड को क्लिपबोर्ड पर कॉपी करें
Astro पृष्ठ सर्वर पर रेंडर किए जाते हैं, इसलिए किसी भी AST को क्लाइंट में जाने की आवश्यकता नहीं होती है। फ्रंटमैटर में Markdown को पार्स करें और इसे set:html के साथ रेंडर करें:
कोड को क्लिपबोर्ड पर कॉपी करें
यह पैटर्न यह सुनिश्चित करता है कि मार्कडाउन पार्सिंग लॉजिक पूरी तरह से सर्वर पर निष्पादित हो, जिससे क्लाइंट-साइड निष्पादन समय काफी कम हो जाता है और प्रारंभिक हाइड्रेशन गति में सुधार होता है।
विकल्प संदर्भ
इन विकल्पों को MarkdownProvider, MarkdownRenderer, useMarkdownRenderer और renderMarkdown में पास किया जा सकता है।
सभी डेटा सामग्री को स्पष्ट रूप से देखने के लिए तालिका को मोडल में खोलें
| Option | Type | Default | विवरण |
|---|---|---|---|
forceBlock | boolean | false | आउटपुट को ब्लॉक-स्तरीय तत्व (उदा., <div>) में लपेटने के लिए बाध्य करता है। |
forceInline | boolean | false | आउटपुट को इनलाइन तत्व (उदा., <span>) में लपेटने के लिए बाध्य करता है। |
tagfilter | boolean | true | खतरनाक HTML टैग को हटाकर सुरक्षा में सुधार के लिए GitHub टैग फ़िल्टर को सक्षम करता है। |
preserveFrontmatter | boolean | false | यदि true है, तो Markdown स्ट्रिंग के प्रारंभ में फ्रंटमैटर को नहीं हटाया जाएगा। |
components | Overrides | {} | कस्टम घटकों के लिए HTML टैग का मानचित्र (उदा., { h1: MyHeading })। |
wrapper | Component | null | रेंडर किए गए Markdown को लपेटने के लिए एक कस्टम घटक। |
renderMarkdown | Function | null | डिफ़ॉल्ट Markdown कंपाइलर को पूरी तरह से बदलने के लिए एक कस्टम रेंडरिंग फ़ंक्शन। |
