SaaS बिल्डर के लिए
संपादक + पृष्ठ + भंडारण + टेम्पलेट
SaaS आर्किटेक्चर गाइडअपने उपयोगकर्ताओं को नेत्रहीन पृष्ठ बनाने दें, जबकि आपकी विकास टीम संपादक, घटकों, डिज़ाइन प्रणाली, डेटा, अनुमतियों और प्रकाशन वर्कफ़्लो को नियंत्रित करती है। आप उत्पाद का निर्माण करते हैं। GrapesJS इसके अंदर संपादन इंजन है।
लेयरिंग
होम पेज — ड्राफ्ट
सेटिंग
यह GrapesJS ही है, इस पृष्ठ पर आपके ब्राउज़र में बूट किया गया है - स्क्रीनशॉट नहीं और वीडियो नहीं। एक ब्लॉक को खींचें, एक तत्व का चयन करें, इसे फिर से स्टाइल करें। कैनवास पर सब कुछ सादा HTML और CSS है, जो वास्तव में आपके उपयोगकर्ता उत्पादन करेंगे।
आप पेज बिल्डर स्थापित नहीं कर रहे हैं। आप अपने पास पहले से मौजूद उत्पाद में नो-कोड संपादन सुविधा जोड़ रहे हैं - अपने उपयोगकर्ताओं, आपकी अनुमतियों, आपके डेटा और आपके प्रकाशन के साथ। विज़ुअल एडिटर उसकी एक परत है, और यह वह परत है जिसे आपको लिखना नहीं है।
श्रृंखला, अंत से अंत तक
इंजन के ऊपर और नीचे की हर परत आपका उत्पाद है। यही वह जगह है जहां आपका भेदभाव रहता है - और यह वह जगह है जहां आपका इंजीनियरिंग समय जाना चाहिए।
कोई भी कोड लिखने से पहले निपटाने के लिए सबसे उपयोगी चीज: कौन सा सबसिस्टम आपके एप्लिकेशन से संबंधित है, कौन सा संपादक के साथ आता है, और जिसे आप शेल्फ से खरीद सकते हैं। जो कुछ भी सर्वर की आवश्यकता होती है वह बाईं ओर है।
सर्वर की आवश्यकता के लिए कुछ भी GrapesJS के अंतर्गत सूचीबद्ध नहीं है। संपादक ब्राउज़र में चलता है; इसमें कोई धारणा नहीं है कि किसने साइन इन किया है।
एक विज़ुअल एडिटर एक ड्रैग-एंड-ड्रॉप डेमो की तरह दिखता है जब तक कि आप एक शिप नहीं करते। ये ऐसे सबसिस्टम हैं जो अनिवार्य हो जाते हैं, मोटे तौर पर उस क्रम में जब तक उपयोगकर्ता का इशारा उनके माध्यम से यात्रा करता है - और प्रत्येक को काम करते रहना पड़ता है जबकि अन्य सभी बदलते हैं।
इनमें से कोई भी आपका उत्पाद नहीं है। मौजूदा संपादक इंजन के आसपास उत्पाद का निर्माण संपादक इंजन के निर्माण से एक मौलिक रूप से अलग परियोजना है - पहला एक सुविधा भेजता है, दूसरा एक संपादक को हमेशा के लिए बनाए रखने के लिए एक टीम को प्रतिबद्ध करता है।
GrapesJS एक ओपन-सोर्स विज़ुअल एडिटर फ्रेमवर्क है जिसे आप स्व-होस्ट और एम्बेड करते हैं। यह आपको संपादन परत देता है - कैनवास, घटक, स्टाइलिंग, पैनल, कमांड - प्रलेखित मॉड्यूल के रूप में जिन्हें आप कॉन्फ़िगर करते हैं, विस्तारित करते हैं या प्रतिस्थापित करते हैं। नीचे दिया गया प्रत्येक मॉड्यूल अपने स्वयं के दस्तावेज़ीकरण से लिंक करता है, इसलिए आप प्रतिबद्ध होने से पहले प्रत्येक दावे की जांच कर सकते हैं।
संस्करण 0.23.6, लाइसेंस प्राप्त BSD-3-Clause; आधिकारिक React आवरण @grapesjs/react MIT है। दोनों व्यावसायिक उपयोग की अनुमति देते हैं। GrapesJS जो शिप नहीं करता है वह भी उतना ही महत्वपूर्ण है: कोई बैकएंड नहीं, कोई उपयोगकर्ता नहीं, कोई अनुमति नहीं और कोई प्रकाशन पाइपलाइन नहीं - ऊपर जिम्मेदारी की सीमा देखें।
एक पेशेवर नो-कोड बिल्डर कभी भी पूरे संपादक को हर उपयोगकर्ता के सामने उजागर नहीं करता है। यह एक खिलौने और एक उत्पाद सुविधा के बीच का अंतर है। आपकी टीम तय करती है - प्रति भूमिका, प्रति टेम्पलेट, प्रति घटक - किसी दिए गए व्यक्ति तक कितने संपादक तक पहुंच सकता है।
दस निर्णय जो आपके बने रहेंगे
const editor = grapesjs.init({
container: '#editor',
// 1. The user only ever sees blocks you registered.
blockManager: { blocks: approvedBlocks(user.role) },
// 2. The Style Manager only offers properties you allow.
styleManager: { sectors: allowedSectors(user.role) },
// 3. Devices are your breakpoints, not arbitrary widths.
deviceManager: { devices: BRAND_BREAKPOINTS },
});
// 4. Lock the chrome: a marketer never edits the header or the footer.
editor.on('component:add', (component) => {
if (LOCKED_TYPES.includes(component.get('type'))) {
component.set({
editable: false,
draggable: false,
removable: false,
copyable: false,
});
}
});
// 5. Hide panels this role has no business seeing.
if (!user.can('edit_code')) {
editor.Panels.removeButton('options', 'export-template');
}
// Every line above is a RENDERING decision. The server still checks
// user.can('publish') before it accepts the payload.ऊपर दी गई हर चीज़ एक रेंडरिंग फ़ैसला है. पैनल छिपाना कोई अनुमति नहीं है — एक दृढ़ उपयोगकर्ता अभी भी कंसोल से संपादक के API को कॉल कर सकता है. आपके बैकएंड को सेव या प्रकाशन स्वीकार करने से पहले उन्हीं नियमों की फिर से जांच करनी होगी. नीचे भूमिकाएँ अनुभाग देखें.
तीन प्रकार के उपयोगकर्ता की सेवा के लिए आपको तीन संपादकों की आवश्यकता नहीं है। एक GrapesJS इंस्टेंस, साइन-इन उपयोगकर्ता की भूमिका से कॉन्फ़िगर किया गया, तीन वास्तव में अलग-अलग उत्पादों का उत्पादन करता है। नीचे दिए गए प्रत्येक कॉलम में सूचीबद्ध किया गया है कि यह इससे पहले वाले कॉलम में क्या जोड़ता है।
उन लोगों के लिए जिन्होंने कभी डिज़ाइन टूल नहीं खोला है और उन्हें कभी ऐसा नहीं करना चाहिए।
वह सब कुछ जोड़ता है जो एक अभियान स्वामी को डेवलपर के बिना शिप करने के लिए आवश्यक है.
उन नियंत्रणों को जोड़ता है जिनकी अपेक्षा एक इन-हाउस डिज़ाइनर या एजेंसी ऑपरेटर करता है।
कॉन्फ़िगरेशन डेटा है, कोड नहीं। जिसका अर्थ है कि आपकी Starter योजना और आपकी एंटरप्राइज़ योजना के बीच का अंतर एक तालिका में एक पंक्ति हो सकता है।
विज़ुअल एडिटर को सुरक्षित बनाने का सबसे तेज़ तरीका यह है कि इसे पेश करने के लिए कुछ भी असुरक्षित न दिया जाए। अपने टोकन को Style Manager में और अपने घटकों को Block Manager में फीड करें, और "ऑफ-ब्रांड" एक समीक्षा समस्या बनना बंद हो जाता है - यह पहुंच से बाहर हो जाता है।
रंग
प्रकार और पैमाना
रिक्ति
संपादक में उपलब्ध है
पहुंच योग्य नहीं
उपयोगकर्ता ब्रांड स्थिरता को तोड़ने में सक्षम हुए बिना वास्तविक सामग्री बनाते हैं - और आपकी डिज़ाइन टीम एक-एक करके पृष्ठों की समीक्षा करना बंद कर देती है। यदि आप पहले से ही एक घटक लाइब्रेरी शिप करते हैं, तो वे घटक ब्लॉक बन जाते हैं।
एक खाली कैनवास स्वतंत्रता नहीं है, यह एक खाली घूरना है। गैर-तकनीकी उपयोगकर्ता आपके बिल्डर में सफल होते हैं या नहीं, इसका सबसे बड़ा चालक यह है कि क्या पहली चीज जो वे देखते हैं वह उन वर्गों का एक क्यूरेटेड सेट है जो पहले से ही आपके उत्पाद की तरह दिखते हैं।
शीर्षक, उप-पंक्ति, कार्रवाई के लिए एक कॉल।
दो से चार कॉलम फीचर ग्रिड।
अपने स्वयं के योजना डेटा से जुड़े कार्ड की योजना बनाएं।
उद्धरण, एट्रिब्यूशन, वैकल्पिक लोगो।
प्रश्न और उत्तर जोड़े।
एक संदेश, एक बटन।
अपने समापन बिंदु पर पोस्ट करने वाले फ़ील्ड बनाएं।
आमतौर पर बंद, हमेशा मौजूद।
ब्लॉक जवाब देते हैं "मैं क्या जोड़ सकता हूं"। टेम्प्लेट जवाब देते हैं "मैं कहां से शुरू करूं"। एक छोटा, विचारशील सेट शिप करें - एक पृष्ठ प्रकार जो आपके उपयोगकर्ता वास्तव में बनाते हैं, न कि एक गैलरी।
शिपिंग के लायक टेम्पलेट प्रकार
टेम्प्लेट सामान्य सहेजे गए प्रोजेक्ट हैं जिन पर एक ध्वज होता है। उन्हें संग्रहीत करना आपके एप्लिकेशन का काम है, जिसका अर्थ है कि उनका संस्करण बनाना भी ऐसा ही है।
सबसे अच्छा नो-कोड अनुभव उपयोगकर्ताओं को शून्य से सब कुछ डिजाइन करने के लिए मजबूर नहीं करता है।
आपके डेटाबेस में, आपके समापन बिंदुओं पर, आपकी स्कीमा के तहत। GrapesJS का Storage Manager एक लोड URL और एक स्टोर URL के साथ एक HTTP क्लाइंट है - यह एक होस्टिंग सेवा नहीं है, और GJS.Market आपके ग्राहकों के पेज नहीं रखता है।
सेव पर वास्तव में क्या होता है
grapesjs.init({
container: '#editor',
storageManager: {
type: 'remote',
autosave: true,
autosaveIntervalMs: 10_000, // debounce: one write, not one per keystroke
stepsBeforeSave: 20,
options: {
remote: {
urlLoad: `/api/pages/${pageId}`,
urlStore: `/api/pages/${pageId}`,
headers: { Authorization: `Bearer ${token}` },
},
},
},
});
// The editor sends you project JSON. What that JSON is allowed to
// become — a draft, a revision, a published page — is your API's call.GrapesJS संपादन परत प्रदान करता है। आपका एप्लिकेशन नियंत्रित करता है कि परियोजनाओं को कैसे संग्रहीत और प्रकाशित किया जाता है - यही कारण है कि ड्राफ्ट, संशोधन और रोलबैक आपके डिजाइन करने के लिए हैं। ऑटोसेव एक डिबाउंस पर है; प्रति कीस्ट्रोक सेव आपके स्वयं API पर एक इनकार-ऑफ-सर्विस हमला है।
दो कलाकृतियाँ, दो नौकरियाँ
घटक वृक्ष, शैलियों और संपत्तियों संपादक को पृष्ठ को ठीक उसी तरह फिर से खोलने की आवश्यकता होती है जैसे वह था। संस्करणित, विस्थापित, आगंतुकों को कभी नहीं परोसा गया। यह एक संशोधन है।
क्या 'editor.getHtml()' और 'editor.getCss()' का उत्पादन: एक स्थिर पृष्ठ जिसे आप सैनिटाइज़ करते हैं, स्टोर करते हैं और सेवा करते हैं। एक विज़िटर को कभी भी editor रनटाइम लोड नहीं करना चाहिए।
संपादन और प्रकाशन अलग-अलग जोखिम प्रोफाइल के साथ अलग-अलग क्रियाएं हैं, और एक उत्पादन नो-कोड उत्पाद उन्हें अलग करता है। नीचे दिए गए दो गेटेड चरण हैं जहां एक प्राधिकरण जांच होती है - संपादक में नहीं, आपके API में।
बिना किसी लाइव URL वाली प्रोजेक्ट पंक्ति।
स्वतः सहेजा गया प्रोजेक्ट JSON, प्रति सत्र संशोधन।
एक हस्ताक्षरित, अस्थायी URL पर रेंडर किया गया आउटपुट।
एक समीक्षक पूर्वावलोकन देखता है, संपादक नहीं।
एक राज्य आपके API को अधिकृत और रिकॉर्ड बदलता है।
आपके उत्पादन स्थल पर लिखे गए स्वच्छ आउटपुट।
प्राधिकरण की जाँच यहाँ की गई है
अनुमतियाँ, अनुमोदन और प्रकाशन तर्क एप्लिकेशन और उसके बैकएंड से संबंधित हैं। GrapesJS में ड्राफ्ट, अनुमोदन या लाइव यूआरएल की कोई अवधारणा नहीं है - वे राज्य आपके डेटाबेस में रहते हैं, और रोलबैक केवल पहले के संशोधन को प्रकाशित कर रहा है।
चार भूमिकाएँ अधिकांश बिल्डर उत्पादों को कवर करती हैं। प्रत्येक को वास्तव में एक अलग संपादक मिलता है क्योंकि प्रत्येक एक अलग कॉन्फ़िगरेशन लोड करता है - लेकिन उनमें से हर एक को एक ही स्थान पर लागू किया जाता है: आपका बैकएंड।
संपादक, टेम्पलेट्स और भूमिकाओं को कॉन्फ़िगर करता है
संपादन लेआउट और स्टाइल
पूर्वावलोकन और अनुमोदन; संपादित नहीं कर सकते
पाठ और छवियों को संपादित करता है; लेआउट नहीं बदल सकता
एक अनुमति निर्णय कैसे यात्रा करता है
एप्लिकेशन-स्तरीय प्रमाणीकरण और प्राधिकरण आपके बैकएंड द्वारा नियंत्रित किए जाते हैं। संपादक उस श्रृंखला में अंतिम पड़ाव है, कभी भी पहला नहीं: यह आपके सर्वर द्वारा पहले से किए गए निर्णय के परिणामों को प्रस्तुत करता है, और सेव आने पर आपके सर्वर को इसे फिर से बनाना होगा।
एक ही आर्किटेक्चर - आपका उत्पाद, आपके उपयोगकर्ता, संपादन इंजन, आपका API - सात अलग-अलग उत्पादों को वहन करता है। प्रत्येक कार्ड उस गाइड से लिंक होता है जो उस एक को ठीक से कवर करता है।
आपके ग्राहक आपके SaaS के अंदर, आपकी योजनाओं पर, आपके कोटा के विरुद्ध पृष्ठ बनाते हैं।
SaaS आर्किटेक्चर गाइडउपयोगकर्ता शब्दावली के रूप में आपके घटकों के साथ नेत्रहीन रूप से पूर्ण बहु-पृष्ठ वेबसाइटें बनाते हैं।
ड्रैग-एंड-ड्रॉप यांत्रिकीमार्केटिंग टीमें किसी डेवलपर या परिनियोजन पर प्रतीक्षा किए बिना अभियान लॉन्च करती हैं।
लैंडिंग पृष्ठ मार्गदर्शिकासंपादक दृश्य रूप से सामग्री लिखते हैं जबकि CMS सत्य का स्रोत बना रहता है।
हेडलेस CMS गाइडउपयोगकर्ता टेबल-आधारित HTML को छुए बिना ईमेल लेआउट को इकट्ठा करते हैं।
ईमेल बिल्डर गाइडग्राहक आपके द्वारा पूरी तरह से परिभाषित पोर्टल के अंदर नियंत्रित सामग्री को अनुकूलित करते हैं.
एम्बेडिंग गाइडसंपादक को अपने नाम के तहत अपने स्वयं के ब्रांडेड उत्पाद के हिस्से के रूप में पेश करें।
व्हाइट-लेबल गाइडयह तालिका जानबूझकर संकीर्ण है: यह केवल संपादन इंजन की तुलना करती है। "आपका आवेदन" चिह्नित जिम्मेदारी सीमा पर सब कुछ किसी भी तरह से आपका काम है - यही बात है।
| योग्यता | खरोंच से निर्माण करें | GrapesJS |
|---|---|---|
| दृश्य कैनवास | निर्माण | सुलभ |
| अवयव | निर्माण | सुलभ |
| खींचें और छोड़ें | निर्माण | सुलभ |
| ब्लॉक | निर्माण | एक्स्टेंसिबल |
| बिछाना | निर्माण | सुलभ |
| लेयरिंग | निर्माण | सुलभ |
| आदेश | निर्माण | सुलभ |
| भंडारण एकीकरण | निर्माण | कॉन्फ़िगर करने योग्य |
| कस्टम घटक | निर्माण | समर्थित |
| प्लगइन आर्किटेक्चर | निर्माण | समर्थित |
| उत्पाद-विशिष्ट UX | निर्माण | अनुकूलन |
GrapesJS 0.23.6 दस्तावेज़ीकरण के विरुद्ध क्षमताओं की जाँच की गई; कैटलॉग लिस्टिंग और कीमतें सत्यापित 2026-09-03।
संपादक इंजन का निर्माण न करें यदि आपका वास्तविक उत्पाद इसके आसपास का एप्लिकेशन है।
GJS.Market कैटलॉग से वास्तविक लिस्टिंग, कैटलॉग के अपने वर्गीकरण के बजाय आपके द्वारा किए जा रहे काम के आधार पर समूहीकृत की जाती है। कीमतें लाइव कैटलॉग से आती हैं, इसलिए आप यहां जो देखते हैं वह आज एक उत्पाद की कीमत क्या है।
संपादक क्रोम को बदलें या फिर से आकार दें ताकि यह आपके उत्पाद के हिस्से के रूप में पढ़े।
इस श्रेणी को ब्राउज़ करेंएक पैनल-रहित संपादक शेल - सबसे स्पष्ट प्रारंभिक बिंदु जब डिफ़ॉल्ट क्रोम आपका उत्पाद नहीं होता है।
React संपादक के लिए घटक UI, इसलिए पैनल आपके अपने घटक वृक्ष में रहते हैं।
Style Manager को उन गुणों तक फ़िल्टर करें जिन्हें किसी दी गई भूमिका को देखना चाहिए।
कैनवास पर शासक और मार्गदर्शिकाएँ, उन उपयोगकर्ताओं के लिए जो परवाह करते हैं कि चीजें कहाँ पंक्तिबद्ध हैं।
पैलेट और शुरुआती बिंदु जिनसे आपके उपयोगकर्ता वास्तव में काम करते हैं।
इस श्रेणी को ब्राउज़ करेंकिसी भी चयन को पुनः प्रयोज्य ब्लॉक के रूप में सहेजें जो आपकी पूरी टीम खींच सकती है।
एक पर बोल्ट करने के बजाय संपादक के अंदर एक टेम्पलेट लाइब्रेरी प्रबंधित करें।
एक Tailwind-मूल ब्लॉक सेट, यदि आपका डिज़ाइन सिस्टम पहले से ही Tailwind है।
एक Bootstrap 5 ब्लॉक सेट, यदि यह वह ढांचा है जिसका आपका आउटपुट पहले से ही उपयोग करता है।
एडेप्टर जो आपके द्वारा पहले से चलाए जा रहे बैकएंड पर Storage Manager को इंगित करते हैं।
इस श्रेणी को ब्राउज़ करेंप्रोजेक्ट को Directus में स्टोर करें जिसमें लिखने के लिए कोई कस्टम दृढ़ता परत नहीं है।
Firebase पहले से ही Firebase पर टीमों के लिए समर्थित दृढ़ता।
स्थानीय दृढ़ता - ऑफ़लाइन ड्राफ्ट के लिए और आपके API मौजूद होने से पहले प्रोटोटाइप के लिए उपयोगी।
थ्रॉटल करें कि संपादक कितनी बार लिखता है, इसलिए autosave आपके API को बाढ़ नहीं दे सकता है।
बहु-पृष्ठ परियोजनाएं: एक पृष्ठ संपादक और एक साइट बिल्डर के बीच का अंतर।
संपादक के अंदर से सहेजी गई परियोजनाओं के बीच स्विच करें।
पुनः प्रयोज्य उदाहरण जो एक ही बार में हर जगह अपडेट होते हैं - आपके डिज़ाइन सिस्टम के साझा भाग।
वेब-पेज प्रीसेट: साइट बिल्डर शुरू करने के लिए एक समझदार डिफ़ॉल्ट कॉन्फ़िगरेशन।
अपलोडर बनाने के बजाय Asset Manager को Cloudinary पर इंगित करें।
Uppy-संचालित अपलोड पुनः शुरू करने योग्य स्थानान्तरण और अपने स्वयं के भंडारण लक्ष्य के साथ।
ठीक वही फ़ॉन्ट उजागर करें जिनकी आपका ब्रांड अनुमति देता है, और अन्य को नहीं।
उपयोगकर्ताओं को कहीं और भेजने के बजाय संपादक के अंदर छवियों को क्रॉप और समायोजित करें।
निर्यात, तैनाती और निरीक्षण करें कि संपादक ने क्या उत्पादन किया है।
इस श्रेणी को ब्राउज़ करेंउत्पादित HTML, CSS और संपत्तियों को डाउनलोड करने योग्य संग्रह के रूप में निर्यात करें।
उत्पादित आउटपुट को सीधे Netlify साइट पर पुश करें।
इसके लिए पूछने वाले पावर उपयोगकर्ताओं के लिए प्रति-घटक कोड दृश्य।
प्रकाशित समय पर, सर्वर पर संग्रहीत प्रोजेक्ट JSON को HTML और CSS में बदलें।
स्वाइपर-समर्थित स्लाइडर्स आपके उपयोगकर्ता कोड के बिना कॉन्फ़िगर कर सकते हैं।
फ़ील्ड और इनपुट बनाएं, जहां भी आप उन्हें कहें, पोस्ट करें।
एक घटक के रूप में टैब्ड पैनल — याद रखें कि टैब्ड कॉपी क्रॉलर से छिपी हुई है।
दो चीजें जिनकी आपको आवश्यकता होगी, जानबूझकर इन अलमारियों से गायब हैं, क्योंकि कैटलॉग में वे नहीं हैं: एक भूमिकाएं और अनुमतियां प्लगइन, और एक अनुमोदन-वर्कफ़्लो प्लगइन। दोनों वैसे भी आपके आवेदन में हैं - ऊपर दी गई भूमिकाएं और प्रकाशन अनुभाग देखें, या उन्हें हमारी कार्यान्वयन टीम में लाएं।
तीन संयोजन जो उपयोगकर्ताओं के सामने एक काम करने वाले बिल्डर को जल्दी से प्राप्त करते हैं। प्रत्येक एक प्रारंभिक बिंदु है, सामग्री का बिल नहीं - किसी भी पंक्ति को समकक्ष के लिए स्वैप करें जो आपके बैकएंड में फिट बैठता है।
संपादक + पृष्ठ + भंडारण + टेम्पलेट
SaaS आर्किटेक्चर गाइडब्लॉक + टेम्पलेट + संपत्ति
लैंडिंग पृष्ठ मार्गदर्शिकाकस्टम UI + नियंत्रित शैलियाँ + साझा घटक
व्हाइट-लेबल गाइडकीमतें निर्माण समय पर लाइव कैटलॉग से पढ़ी जाती हैं। मुफ्त प्लगइन्स ओपन सोर्स हैं और कोर की तरह सेल्फ-होस्ट किए गए हैं।
व्हाइट-लेबलिंग एक लोगो को छिपा नहीं रहा है। यह संपादक को आपके एप्लिकेशन की एक विशेषता के रूप में पढ़ा जा रहा है, न कि किसी तीसरे पक्ष के टूल के रूप में जो इसमें एम्बेडेड है।
संपादक क्रोम में आपके रंग, प्रकार और आइकनोग्राफी।
अपने उपयोगकर्ताओं के वास्तविक कार्यों के आसपास टूलबार का पुनर्निर्माण करें।
आपके डिज़ाइन सिस्टम के घटकों, जिस तरह से आपकी टीम उन्हें नाम देती है।
यदि आपके उपयोगकर्ता "मॉड्यूल" कहते हैं, तो संपादक को "घटक" नहीं कहना चाहिए।
नियंत्रणों को हटाना सबसे कम उपयोग किया जाने वाला अनुकूलन है।
डिफ़ॉल्ट, खाली स्थिति और ऑनबोर्डिंग जो आपके बाकी उत्पाद से मेल खाते हैं।
GrapesJS ब्रांडिंग को हटाना तुच्छ है और BSD-3-Clause लाइसेंस द्वारा अनुमत है। संपादक को ऐसा महसूस कराना कि आपका उत्पाद एक डिज़ाइन प्रोजेक्ट है - पैनल, शब्दावली, डिफ़ॉल्ट, और वह सब कुछ जो उपयोगकर्ता नहीं देखता है।
GrapesJS एक सादे DOM तत्व में बदल जाता है, इसलिए इसे एकीकृत करना ज्यादातर एक सवाल होता है कि कौन सा जीवनचक्र हुक 'grapesjs.init()' कहता है और इसे कब साफ किया जाता है। विशिष्टताओं के लिए अपना ढांचा चुनें।
एक प्रभाव जो माउंट पर आरंभ होता है और अनमाउंट पर नष्ट हो जाता है। आधिकारिक @grapesjs/react आवरण (MIT) उपलब्ध है यदि आप संपादक के स्वयं के UI को React घटकों के रूप में चाहते हैं।
React एकीकरण देखें'onMounted' से एक कंपोजेबल कॉलिंग और 'onBeforeUnmount' से नष्ट करें। कोई आधिकारिक Vue रैपर नहीं है - आप इसे सीधे API कहते हैं।
Vue एकीकरण देखें'ngAfterViewInit' और 'ngOnDestroy' का उपयोग करने वाला एक घटक, जिसमें संपादक को Angular के परिवर्तन का पता लगाने के बाहर रखा गया है। कोई आधिकारिक Angular आवरण मौजूद नहीं है।
Angular एकीकरण देखेंकेवल क्लाइंट-साइड: संपादक मॉड्यूल स्कोप पर 'विंडो' को छूता है, इसलिए इसे SSR अक्षम के साथ गतिशील आयात के माध्यम से लोड करें।
Next.js एकीकरण देखेंआपका ढांचा एप्लिकेशन को शक्ति प्रदान करता है। GrapesJS दृश्य संपादन परत को शक्ति प्रदान करता है।
"संपादक काम करता है" और "हम ग्राहकों को उस पर रख सकते हैं" के बीच का अंतर मोटे तौर पर यह सूची है। प्रत्येक समूह उस अनुभाग से वापस जुड़ता है जो इसका तर्क देता है।
उपयोगकर्ता किस तक पहुंच सकता है, और क्या नहीं।
प्रति भूमिका ब्लॉक पंजीकृत करें, विश्व स्तर पर एक बार नहीं।
दृढ़ता जिस पर उपयोगकर्ता एक दिन के काम पर भरोसा कर सकता है।
डिबाउंस autosave, प्रति कीस्ट्रोक लिखने के लिए नहीं।
संपादक जो कुछ भी तैयार करता है वह एक उपयोगकर्ता से आया है।
सर्वर पर बाहर निकलते समय सैनिटाइज करें।
गोद लेने और समर्थन कतार के बीच का अंतर।
टेम्प्लेट हर बार एक खाली कैनवास को हरा देते हैं।
संपादन और प्रकाशन में अलग-अलग जोखिम प्रोफ़ाइल होती है।
रोलबैक एक पूर्व संशोधन प्रकाशित कर रहा है।
संपादक अब आपके उत्पाद के अपटाइम का हिस्सा है।
संलग्न प्रोजेक्ट आईडी के साथ लॉग संपादक त्रुटियाँ।
एक नो-कोड बिल्डर, निर्माण द्वारा, एक ऐसी सुविधा है जो उपयोगकर्ताओं को आपके उत्पाद में मनमाना सामग्री डालने देती है। यह जो कुछ भी पैदा करता है उसे अविश्वसनीय इनपुट के रूप में मानें, क्योंकि यह है।
उत्पादित HTML और CSS को संग्रहीत या परोसने से पहले सर्वर पर एक जांचे हुए सैनिटाइज़र के माध्यम से चलाएं।
प्रकार, आकार और आयाम सर्वर-साइड की जाँच करें, और उपयोगकर्ता मीडिया को एक अलग मूल से परोसें।
प्रत्येक सहेजें, स्वीकृत करें और प्रकाशित करें सर्वर पर फिर से अधिकृत हैं, जो भी संपादक ने दिखाया है।
एक छिपा हुआ पैनल एक UI स्थिति है। संपादक का API अभी भी ब्राउज़र कंसोल से पहुंचा जा सकता है।
Project JSON उपयोगकर्ता इनपुट भी है। रेंडरर को वापस फीड करने से पहले इसके आकार को मान्य करें।
यदि आप किसी कस्टम-कोड घटक की अनुमति देते हैं, तो जानबूझकर तय करें कि यह कहाँ चलता है और कौन एक जोड़ सकता है.
उन्हें दर-सीमा दें, उन्हें प्रति प्रोजेक्ट स्कोप करें, और प्रत्येक कॉल को लॉग करें।
GrapesJS एक संपादन लाइब्रेरी है, सुरक्षा सीमा नहीं। यह अपने द्वारा उत्पादित मार्कअप की सुरक्षा के बारे में कोई गारंटी नहीं देता है, और यह नहीं हो सकता: मार्कअप आपके उपयोगकर्ता से आया है। स्वच्छता, सत्यापन और प्राधिकरण आपके आवेदन की जिम्मेदारी है।
संपादक आपके उत्पाद के अंदर रहने वाला एक भारी क्लाइंट-साइड एप्लिकेशन है। अधिकांश जीत इसे लोड न करने से आती है - और इसे दो बार लोड नहीं करने से।
जब कोई उपयोगकर्ता इसे खोलता है तो संपादक को बूट करें, न कि जब मार्ग लोड होता है।
डायनेमिक-आयात प्लगइन्स वर्तमान भूमिका वास्तव में उपयोग कर सकती है।
प्रत्येक पंजीकृत प्लगइन की कीमत बंडल आकार और स्टार्ट-अप समय हमेशा के लिए होती है।
सैकड़ों ब्लॉक पैलेट को धीमा कर देते हैं और उपयोगकर्ता को पंगु बना देते हैं।
अपलोड पर आकार बदलें और फिर से एन्कोड करें - उपयोगकर्ता 8 एमबी फ़ोटो को hero में छोड़ देंगे।
हर कुछ सेकंड में एक लिखता है, प्रति कीस्ट्रोक एक नहीं।
इनलाइन किए गए base64 छवियाँ प्रोजेक्ट पंक्ति को मेगाबाइट में बदल देती हैं। संदर्भ संग्रहीत करें, डेटा नहीं।
प्रकाशित पृष्ठ को कभी भी संपादक को नहीं ले जाना चाहिए। एक आगंतुक HTML और CSS लोड करता है; केवल एक लेखक ही इंजन लोड करता है।
एक पेज बिल्डर में एआई सबसे उपयोगी है, और कम से कम खतरनाक है, जब इसे उसी संपादक के दूसरे उपयोगकर्ता के रूप में माना जाता है - एक जो केवल वही उत्पादन कर सकता है जो एक ही भूमिका में एक मानव का उत्पादन कर सकता है।
अपने पंजीकृत ब्लॉकों से एक अनुभाग इकट्ठा करें, फ्री-फॉर्म मार्कअप से नहीं।
किसी मौजूदा लेआउट के टेक्स्ट नोड्स भरें, जिससे संरचना अछूती रह जाए.
एक घोषित लक्ष्य के लिए अनुमोदित घटकों की व्यवस्था का प्रस्ताव करें।
जगह-जगह लंबाई, टोन या लोकेल के लिए फिर से लिखें।
एक डेवलपर की समीक्षा के लिए एक नई घटक परिभाषा का मसौदा तैयार करें - कभी भी ऑटो-रजिस्टर करने के लिए।
मापने योग्य मानदंडों के विरुद्ध संपादन का सुझाव दें और एक मानव को उन्हें अनुमोदित करने दें।
एआई को मानव उपयोगकर्ताओं के समान घटक और डिज़ाइन-सिस्टम बाधाओं के अंदर काम करना चाहिए। यदि कोई जनरेटर मनमाने ढंग से HTML उत्सर्जित कर सकता है जो आपका ब्लॉक पैलेट कभी पेश नहीं करेगा, तो आपने अपने द्वारा बंद किए गए हर छेद को फिर से खोल दिया है।
ऊपर दी गई क्षमताएं एक पैटर्न का वर्णन करती हैं जिसे आप संपादक के अपने APIs पर बना सकते हैं, न कि शिप की गई GJS.Market सुविधा। कैटलॉग में एक एआई शेल्फ है - थंबनेल जनरेशन, जीपीटी-समर्थित सहायक - और यह ऊपर जुड़ा हुआ है।
कार्यान्वयन
अधिकांश टीमें 'grapesjs.init()' पर नहीं फंसती हैं। वे उन हिस्सों पर फंस जाते हैं जो इस पृष्ठ पर कहते हैं कि वे उनके हैं - अनुमतियाँ, प्रकाशन, भंडारण, और संपादक को अपने उत्पाद की तरह महसूस कराना। हमारी टीम यही करती है।
अपने उपयोगकर्ताओं को अपने उत्पाद पर नियंत्रण छोड़े बिना नेत्रहीन निर्माण करने की स्वतंत्रता दें।
हमें बताएं कि आप क्या बना रहे हैं और अपने उत्पाद के अंदर संपादक के लिए एक स्कोप योजना प्राप्त करें।
GrapesJS के साथ निर्माण शुरू करेंब्लॉक, स्टोरेज एडेप्टर, संपादक यूआई और घटक - वर्तमान कीमतों के साथ वास्तविक लिस्टिंग।
GJS.Market प्लगइन्स का अन्वेषण करेंएकीकरण, कस्टम घटक, अनुमतियाँ और प्रकाशन वर्कफ़्लोज़, आपकी टीम के साथ निर्मित।
किसी विशेषज्ञ से बात करेंआपका उत्पाद। आपके उपयोगकर्ता। आपके नियम। आपका संपादक।