संपादक तुलना

GrapesJS बनाम Editor.js: आपके उत्पाद के लिए कौन सा विज़ुअल एडिटर सही है?

संरचित सामग्री, दृश्य पृष्ठ निर्माण, HTML/CSS संपादन, JSON डेटा, घटक, एक्स्टेंसिबिलिटी, SaaS अनुप्रयोग और CMS एकीकरण के लिए GrapesJS और Editor.js की तुलना करें।Editor.js को संरचित सामग्री ब्लॉकों के आसपास डिज़ाइन किया गया है। GrapesJS को दृश्य संपादन और पृष्ठ-निर्माण वर्कफ़्लो के आसपास डिज़ाइन किया गया है।

दोनों ओपन सोर्स हैंदोनों ब्लॉक आधारित हैंविभिन्न संपादक मॉडल
संक्षिप्त उत्तर

GrapesJS बनाम Editor.js: संक्षिप्त उत्तर

यदि आप केवल एक अनुभाग पढ़ते हैं, तो इसे पढ़ें। नीचे दी गई दो सूचियाँ रैंकिंग नहीं हैं - वे दो अलग-अलग नौकरियाँ हैं, और अधिकांश उत्पादों को स्पष्ट रूप से उनमें से एक की आवश्यकता होती है।

यदि आपको आवश्यकता हो तो Editor.js चुनें

  • लेख संपादन
  • समृद्ध पाठ
  • संरचित सामग्री
  • JSON-पहली सामग्री
  • प्रलेखन
  • ब्लॉग
  • ज्ञान के आधार
  • CMS सामग्री
  • कस्टम सामग्री ब्लॉक
Editor.js दस्तावेज़ पढ़ें

यदि आपको आवश्यकता हो तो GrapesJS चुनें

  • दृश्य पृष्ठ निर्माण
  • ड्रैग-एंड-ड्रॉप लेआउट
  • HTML/CSS संपादन
  • उत्तरदायी डिजाइन नियंत्रण
  • पुनः प्रयोज्य घटक
  • दृश्य टेम्पलेट्स
  • संपत्ति प्रबंधन
  • SaaS पेज बिल्डर्स
  • एम्बेड करने योग्य संपादक
  • व्हाइट-लेबल संपादक
विज़ुअल एडिटर आज़माएं

ये उपकरण ब्लॉक-आधारित संपादन में ओवरलैप होते हैं, लेकिन वे विभिन्न संपादक मॉडल के आसपास डिज़ाइन किए गए हैं।

दो अलग-अलग समस्याएं

Editor.js और GrapesJS विभिन्न समस्याओं का समाधान करते हैं

Editor.js संरचित सामग्री निर्माण पर केंद्रित है

इसका ब्लॉक-आधारित मॉडल लेखों, दस्तावेज़ों और CMS सामग्री के लिए उपयुक्त है जहां एप्लिकेशन संरचित डेटा को संग्रहीत और संसाधित करता है। एक लेखक टाइप किए गए ब्लॉकों का एक क्रम बनाता है; संपादक डेटा के आकार की गारंटी देता है और जानबूझकर चुप रहता है कि यह कैसा दिखेगा। वह चुप्पी ही विशेषता है - एक ही दस्तावेज़ को एक वेबसाइट, एक मोबाइल ऐप, एक न्यूज़लेटर या एक खोज सूचकांक द्वारा प्रस्तुत किया जा सकता है, प्रत्येक अपनी शर्तों पर।

GrapesJS दृश्य संपादन पर केंद्रित है

इसका कैनवास, घटक मॉडल, ब्लॉक, स्टाइल सिस्टम, संपत्ति और भंडारण क्षमताएं इसे पेज बिल्डरों और अन्य दृश्य संपादन उत्पादों के लिए उपयुक्त बनाती हैं। एक लेखक घटकों के एक नेस्टेड पेड़ की व्यवस्था करता है और स्टाइल करता है और परिणाम देखता है क्योंकि वे काम करते हैं। इसलिए संपादक को लेआउट, ब्रेकपॉइंट, चयनकर्ताओं और संपत्तियों के बारे में राय की आवश्यकता होती है - एक सामग्री संपादक के पास राय रखने का कोई कारण नहीं है।

ऊपर दिया गया कोई भी विवरण कोई सीमा नहीं है। वे डिज़ाइन निर्णय हैं, और हर कोई कुछ ऐसा खरीदता है जो दूसरा छोड़ देता है: Editor.js कहीं भी प्रस्तुत करने वाली सामग्री के लिए लेआउट नियंत्रण का व्यापार करता है, और GrapesJS तैयार पृष्ठ के प्रत्यक्ष नियंत्रण के लिए ट्रेड प्रारूप पोर्टेबिलिटी करता है।

वास्तुशिल्प अंतर

वास्तुशिल्प अंतर

दोनों संपादक पुस्तकालय हैं जिन्हें आप अपने स्वयं के एप्लिकेशन के अंदर माउंट करते हैं, और दोनों तरफ आपका एप्लिकेशन भंडारण, प्रमाणीकरण, अनुमतियों और अंतिम प्रतिपादन का मालिक है। बीच में बैंड क्या अलग है: संपादक स्वयं किसके लिए जिम्मेदार है, और यह क्या वापस करता है।

Editor.js वास्तुकला

एक संरचित दस्तावेज़ पर एक संलेखन परत।

  1. लेखक सामग्री लिखता हैआपका आवेदन
  2. Editor.jsसंपादक पुस्तकालय
  3. Blocks और Toolsसंपादक पुस्तकालय
  4. संरचित JSONहैंडऑफ़ प्रारूप
  5. डेटाबेस या CMSआपका आवेदन
  6. फ्रंटएंड रेंडररआपका आवेदन

Editor.js सामग्री संपादन को प्रस्तुति से अलग करता है और संरचित ब्लॉक डेटा तैयार करता है। आपका एप्लिकेशन यह तय करता है कि प्रत्येक ब्लॉक प्रकार कैसा दिखता है जब इसे प्रस्तुत किया जाता है, यही कारण है कि वही सामग्री बिना दोबारा लिखे एक वेब पेज, एक मोबाइल ऐप, एक ईमेल डाइजेस्ट या API प्रतिक्रिया पर जा सकती है।

GrapesJS वास्तुकला

एक घटक वृक्ष पर एक दृश्य संपादन परत।

  1. लेखक एक पृष्ठ बनाता हैआपका आवेदन
  2. GrapesJSसंपादक पुस्तकालय
  3. कैंवससंपादक पुस्तकालय
    • Components
    • Blocks
    • शैलियों
    • संपत्ति
    • Commands
    • प्लगइन्स
  4. परियोजना डेटाहैंडऑफ़ प्रारूप
  5. HTML/CSS/प्रकाशन पाइपलाइनआपका आवेदन

GrapesJS दृश्य संपादन परत प्रदान करता है - कैनवास, घटक, ब्लॉक, शैलियाँ, संपत्ति, कमांड और प्लगइन्स - और आसपास के एप्लिकेशन को भंडारण, प्रकाशन और व्यावसायिक तर्क को नियंत्रित करने की अनुमति देता है। लेखक कैनवास पर जो व्यवस्था करता है वह पृष्ठ कैसा दिखेगा, इसलिए संपादक को लेआउट के बारे में एक राय की आवश्यकता होती है जो एक सामग्री संपादक नहीं करता है।

बक्से से पहले स्वामित्व चिप्स पढ़ें। न तो संपादक एक मंच है: कोई होस्टिंग नहीं है, कोई उपयोगकर्ता प्रबंधन नहीं है, कोई प्रकाशन पाइपलाइन नहीं है और दोनों तरफ कोई CDN नहीं है। इस आरेख का उत्तर यह नहीं है कि कौन सी लाइब्रेरी अधिक करती है, बल्कि आपके एप्लिकेशन को उस प्रकार का डेटा सौंपती है जिसे आपके उत्पाद को वास्तव में संग्रहीत करने की आवश्यकता होती है।

Editor.js

Editor.js एक संरचित सामग्री है Editor

एक Editor.js दस्तावेज़ टाइप किए गए ब्लॉकों का एक क्रमबद्ध क्रम है। कोई कैनवास नहीं है और कोई लेआउट ट्री नहीं है, क्योंकि एक दस्तावेज़ को एक की आवश्यकता नहीं है - गद्य रैखिक है, और एक प्रारूप जो रैखिक रहता है वह एक प्रारूप है जो हर जगह लगातार प्रस्तुत करता है इसे भेजा जाता है।

एक Editor.js दस्तावेज़
  • आर्टिकल
  • शीर्षक
  • अनुच्‍छेद
  • छवि
  • उद्धरण
  • तालिका
  • जड़ना

एक फ्लैट अनुक्रम एक लेख के लिए सही आकार है। क्योंकि संरचना में कोई लेआउट नहीं है, एक संग्रहीत दस्तावेज़ एक वेब पेज, एक मूल ऐप स्क्रीन, एक आरएसएस आइटम और एक सादा-पाठ डाइजेस्ट को परिवर्तित किए बिना चला सकता है।

यह मॉडल सूट करता है

  • ब्लॉग
  • आर्टिकल्स
  • प्रलेखन
  • ज्ञान के आधार
  • CMS सामग्री
  • संरचित सामग्री पाइपलाइन

Editor.js एक्स्टेंसिबल है

Editor.js को कस्टम Tools और ब्लॉक के साथ बढ़ाया जा सकता है। A Tool अपने स्वयं के मार्कअप को नियंत्रित करता है: यह DOM में render() तत्व बनाता है, ब्लॉक के डेटा को save() से लौटाता है, उस डेटा को मान्य कर सकता है, पेस्ट हैंडलिंग और सैनिटाइजेशन नियमों को परिभाषित कर सकता है, और ब्लॉक सेटिंग्स पैनल में अपने स्वयं के नियंत्रण जोड़ सकता है। Block Tunes आगे बढ़ें और ब्लॉक के साथ अपनी स्थिति बनाए रखें। कुछ भी आप ब्लॉक प्रकार के रूप में व्यक्त कर सकते हैं, आप बना सकते हैं।

कोर में
अनुच्‍छेदधुनों को ब्लॉक करेंइनलाइन टूलबारकेवल-पढ़ने के लिए मोडi18n APIसैनिटाइजर
अलग टूल पैकेज
@editorjs/header@editorjs/list@editorjs/image@editorjs/quote@editorjs/table@editorjs/embed@editorjs/code@editorjs/attaches

निष्पक्ष तुलना के लिए ध्यान देने योग्य: स्टॉक Editor.js टूलबॉक्स एक ब्लॉक प्रकार प्रदान करता है, और GrapesJS कोर कोई ब्लॉक नहीं भेजता है। दोनों परियोजनाओं ने उद्देश्य पर अपने सामग्री प्रकारों को पैकेज में निकाला, और न तो तथ्य आलोचना है - इसका मतलब है कि दोनों संपादक कॉन्फ़िगर किए गए हैं, अपनाए नहीं गए हैं। आधिकारिक टूल सूट यहां रहता है github.com/editor-js

GrapesJS

GrapesJS एक दृश्य संपादन ढांचा है

एक GrapesJS पृष्ठ एक घटक वृक्ष है, जो लेआउट की आवश्यकता के रूप में गहराई से नेस्टेड है। एक बटन एक hero के अंदर रहता है, जो एक पृष्ठ के अंदर रहता है - और उस पेड़ के हर स्तर को चुना जा सकता है, फिर से स्टाइल किया जा सकता है, पुनः व्यवस्थित किया जा सकता है, डुप्लिकेट किया जा सकता है या पुनः प्रयोज्य ब्लॉक में बदल दिया जा सकता है।

एक GrapesJS पृष्ठ
  • पृष्ठ
  • हैडर
  • Hero
  • शीर्षक
  • टेक्स्ट
  • घुंडी
  • सुविधाऐं
  • मूल्य निर्धारण
  • पाद लेख

नेस्टिंग वह है जो लेआउट को संपादन योग्य बनाता है। क्योंकि एक घटक अपने माता-पिता और उसके बच्चों को जानता है, संपादक प्रति-तत्व स्टाइलिंग, प्रति-ब्रेकपॉइंट ओवरराइड और पुनः प्रयोज्य संरचनाओं की पेशकश कर सकता है - जिनमें से कोई भी एक फ्लैट अनुक्रम को स्टोर करने के लिए कहीं भी नहीं है।

संपादन मॉडल क्या प्रदान करता है

  • ड्रैग-एंड-ड्रॉप
  • दृश्य कैनवास
  • Components
  • Blocks
  • शैलियों
  • उत्तरदायी उपकरण
  • संपत्ति
  • पुनः प्रयोज्य संरचनाएं
  • टेम्पलेट्स
  • परियोजना भंडारण
  • वर्कफ़्लोज़ प्रकाशित करना और निर्यात करना

मुख्य अंतर यह है कि GrapesJS दृश्य लेआउट को प्रथम श्रेणी के संपादन अनुभव के रूप में मानता है।

यदि आप वर्णन के बजाय खरोंच से इकट्ठे टुकड़ों को देखना चाहते हैं, तो बारह-चरणीय निर्माण में है GrapesJS ट्यूटोरियल.

डेटा मॉडल

Editor.js JSON बनाम GrapesJS प्रोजेक्ट डेटा

"दोनों उत्पादन JSON" सबसे भ्रामक सत्य कथन है जो कोई भी इन दो संपादकों के बारे में बना सकता है। नीचे दिए गए दोनों नमूने वास्तविक आउटपुट हैं, प्रलेखन से कॉपी किए जाने के बजाय एक चल रहे संपादक से पढ़े जाते हैं - और उनके आकार के बारे में कुछ भी नहीं है।

Editor.js आउटपुट

await editor.save()

शीर्ष-स्तरीय कुंजियाँ

  • time
  • blocks
  • version
editorjs-output.jsonjson
{
  "time": 1788452414107,
  "blocks": [
    {
      "id": "zRvYGn6Hw8",
      "type": "header",
      "data": { "text": "Build faster", "level": 2 }
    },
    {
      "id": "bziKUc-t8d",
      "type": "paragraph",
      "data": { "text": "Editable copy." }
    }
  ],
  "version": "2.31.6"
}

एक दस्तावेज़: एक टाइमस्टैम्प, टाइप किए गए ब्लॉकों की एक क्रमबद्ध सरणी, और संपादक संस्करण जिसने इसे लिखा है। प्रत्येक ब्लॉक में एक प्रकार और एक डेटा ऑब्जेक्ट होता है जिसका आकार इसके Tool द्वारा परिभाषित किया जाता है। यहां कुछ भी लेआउट या स्टाइल का वर्णन नहीं करता है, और यही वही है जो प्रारूप को पोर्टेबल बनाता है।

GrapesJS परियोजना डेटा

editor.getProjectData()

शीर्ष-स्तरीय कुंजियाँ

  • pages
  • styles
  • assets
  • symbols
  • dataSources
grapesjs-project.jsonjson
{
  "dataSources": [],
  "assets": [],
  "styles": [
    { "selectors": ["hero"], "style": { "padding-top": "40px", "…": "…" } },
    { "selectors": ["btn"],  "style": { "background-color": "rgb(75, 91, 191)", "…": "…" } }
  ],
  "pages": [
    {
      "id": "SjtXdsYjpE8EJUpL",
      "frames": [
        {
          "id": "6THykH6fmgO6bc7i",
          "component": {
            "type": "wrapper",
            "components": [
              { "tagName": "section", "classes": ["hero"], "components": [
                { "tagName": "h2", "type": "text", "components": [
                  { "type": "textnode", "content": "Build faster" }
                ]},
                { "type": "link", "classes": ["btn"], "attributes": { "href": "#" },
                  "components": [ { "type": "textnode", "content": "Get started" } ] }
              ]}
            ]
          }
        }
      ]
    }
  ],
  "symbols": []
}

एक संपादन योग्य परियोजना: पृष्ठ, प्रत्येक फ्रेम के साथ एक नेस्टेड घटक वृक्ष, साथ ही शैली नियम, संपत्ति और कोई भी प्रतीक। यह वह स्थिति है जिसे आप संग्रहीत करते हैं ताकि लेखक अपने काम को फिर से खोल सके - न कि वह पृष्ठ जिसे आप आगंतुकों को प्रदान करते हैं।

प्रोजेक्ट डेटा प्रकाशित पृष्ठ नहीं है

GrapesJS संपादन योग्य परियोजना संरचना का प्रतिनिधित्व करने वाले प्रोजेक्ट डेटा को संग्रहीत करता है, जबकि वर्कफ़्लो को प्रकाशित करने और निर्यात करने के लिए HTML और CSS उत्पन्न किया जा सकता है। दो चीजें अपने पहले निर्यात पर सभी को आश्चर्यचकित करती हैं, और दोनों नीचे दिखाई दे रही हैं: getHtml() शरीर के तत्व में लिपटे कैनवास को लौटाता है, और getCss() शॉर्टहैंड गुणों को लॉन्गहैंड में विस्तारित करता है।

editor.getHtml()html
<body><section class="hero"><h2>Build faster</h2><p>Editable copy.</p><a href="#" class="btn">Get started</a></section></body>
editor.getCss({ avoidProtected: true })css
.hero{padding-top:40px;padding-right:40px;padding-bottom:40px;padding-left:40px;text-align:center;}
.hero h2{margin-bottom:8px;font-size:28px;}
.btn{display:inline-block;border-top-left-radius:8px;background-color:rgb(75, 91, 191);color:rgb(255, 255, 255);}

उसी कैनवास से मापा गया आउटपुट जिसने ऊपर प्रोजेक्ट डेटा का उत्पादन किया था। संपादक के स्वयं के कैनवास रीसेट को छोड़ने के लिए avoidProtected पास करें, जो आपके पृष्ठ के हिस्से के बजाय संपादक क्रोम है।

दोनों प्रारूप विनिमेय नहीं हैं

कोई साझा सबसेट नहीं है। एक Editor.js ब्लॉक कहता है "इस पाठ के साथ स्तर 2 शीर्षक"; एक GrapesJS घटक कहता है "इन वर्गों के साथ एक H2 तत्व, इस खंड के अंदर, इन नियमों द्वारा स्टाइल किया गया है"। एक तरह से जाने पर आपको मार्कअप और लेआउट का आविष्कार करना होगा जो कभी संग्रहीत नहीं किया गया था; दूसरे पर जा रहे हैं आपको उन्हें त्यागना होगा।

यदि आप Editor.js से माइग्रेट कर रहे हैं, तो आपको इसे एक साधारण JSON रूपांतरण के बजाय एक सामग्री-मॉडल और संपादक-मॉडल माइग्रेशन के रूप में मानना चाहिए।

देखें कि माइग्रेशन में क्या शामिल है
फ़ीचर तुलना

GrapesJS बनाम Editor.js फ़ीचर तुलना

नीचे दिए गए प्रत्येक सेल में एक तंत्र का नाम है, स्कोर नहीं। कोई टिक-एंड-क्रॉस कॉलम नहीं है, क्योंकि उत्तरदायी लेआउट संपादन के लिए Editor.js के खिलाफ एक क्रॉस गलत होगा - एक कस्टम Tool यह कर सकता है - और एक टिक भ्रामक होगा। "कस्टम" ईमानदार उत्तर है, और यह वही है जो काम का आकलन करने वाला इंजीनियर वास्तव में चाहता है।

इस तालिका को कैसे पढ़ें

अंतर्निहित
पुस्तकालय इसे अपने मूल में भेजता है।
पैकेज
प्रथम-पक्ष ऐड-ऑन पैकेजों द्वारा प्रदान किया गया।
रिवाज
आप इसे लाइब्रेरी के APIs के शीर्ष पर लागू करते हैं।
आपका ऐप
इस तरफ आसपास के एप्लिकेशन का काम।
एकीकरण
आउटपुट को किसी अन्य सिस्टम को सौंपने से होता है।
मजबूत फिट
पुस्तकालय का उपयोग आमतौर पर ठीक इसी के लिए किया जाता है।
  • रिच टेक्स्ट एडिटिंग

    Editor.js

    अंतर्निहित

    GrapesJS

    अंतर्निहित

    Editor.js के कोर में एक इनलाइन टूलबार है; GrapesJS में एक अंतर्निहित समृद्ध टेक्स्ट एडिटर है जिसे एक प्लगइन के माध्यम से CKEditor, TinyMCE, Froala या Quill से बदला जा सकता है।

  • Block-आधारित सामग्री

    Editor.js

    अंतर्निहित

    GrapesJS

    अंतर्निहित

    दोनों ब्लॉक-आधारित हैं। Editor.js ब्लॉक एक क्रम में सामग्री प्रकार हैं; GrapesJS ब्लॉक draggable प्रीसेट हैं जो घटकों को एक पेड़ में डालते हैं।

  • संरचित JSON आउटपुट

    Editor.js

    अंतर्निहित

    GrapesJS

    अंतर्निहित

    Editor.js एक दस्तावेज़ लौटाता है; GrapesJS प्रोजेक्ट डेटा लौटाता है। दोनों सादे JSON हैं, और वे अलग-अलग चीजों का वर्णन करते हैं।

  • दृश्य कैनवास

    Editor.js

    रिवाज

    GrapesJS

    अंतर्निहित

    Editor.js सामग्री क्षेत्र को जगह में संपादित करता है; डिवाइस की चौड़ाई और प्रति-तत्व चयन के साथ कोई अलग कैनवास सतह नहीं है।

  • ड्रैग-एंड-ड्रॉप

    Editor.js

    पैकेज

    GrapesJS

    अंतर्निहित

    Editor.js कोर मूव-अप/मूव-डाउन धुनों और blocks.move() API के साथ ब्लॉक को स्थानांतरित करता है; पॉइंटर ड्रैगिंग एक सामुदायिक प्लगइन है। GrapesJS घटकों को कैनवास पर खींचता है।

  • HTML/CSS संपादन

    Editor.js

    रिवाज

    GrapesJS

    अंतर्निहित

    GrapesJS चयनकर्ताओं और घोषणाओं को सीधे संपादित करता है और HTML और CSS निर्यात करता है। Editor.js में यह आपके द्वारा लिखा गया Tool होगा।

  • उत्तरदायी लेआउट संपादन

    Editor.js

    रिवाज

    GrapesJS

    अंतर्निहित

    GrapesJS डिवाइस की चौड़ाई और प्रति-ब्रेकपॉइंट शैली ओवरराइड करता है। एक Editor.js Tool उत्तरदायी डेटा रख सकता है, लेकिन आप UI और शब्दार्थ दोनों को परिभाषित करते हैं।

  • कस्टम ब्लॉक

    Editor.js

    अंतर्निहित

    GrapesJS

    अंतर्निहित

    दोनों वास्तव में एक्स्टेंसिबल हैं। Editor.js कस्टम Tools अपने मार्कअप, डेटा और सेटिंग्स पैनल के मालिक हैं; GrapesJS कस्टम घटक प्रकार अपने मॉडल, दृश्य और traits के मालिक हैं।

  • Component मॉडल

    Editor.js

    अंतर्निहित

    GrapesJS

    अंतर्निहित

    Editor.js Tools का एक अनुक्रम मॉडल करता है; GrapesJS माता-पिता, बच्चों और traits के साथ एक नेस्टेड घटक पेड़ का मॉडल बनाता है।

  • शैली प्रबंधक

    Editor.js

    रिवाज

    GrapesJS

    अंतर्निहित

    GrapesJS में चयन और सक्रिय ब्रेकपॉइंट के लिए Style Manager बंधा हुआ है। Editor.js में स्टाइलिंग वह है जो आपका रेंडरर तय करता है।

  • संपत्ति प्रबंधन

    Editor.js

    आपका ऐप

    GrapesJS

    अंतर्निहित

    GrapesJS में Asset Manager है; अपलोड अभी भी आपका समापन बिंदु हैं। Editor.js छवि प्रबंधन एक आधिकारिक Tool है जो आपके अपलोड समापन बिंदु पर इंगित किया गया है।

  • पुनः प्रयोज्य लेआउट

    Editor.js

    रिवाज

    GrapesJS

    अंतर्निहित

    GrapesJS में पुनः उपयोग के लिए प्रतीक और ब्लॉक हैं। Editor.js में पुनः प्रयोज्य सामग्री को आमतौर पर एप्लिकेशन में संपादक के ऊपर नियंत्रित किया जाता है।

  • बहु-पृष्ठ परियोजनाएं

    Editor.js

    रिवाज

    GrapesJS

    अंतर्निहित

    GrapesJS प्रोजेक्ट डेटा में पृष्ठों की एक श्रृंखला होती है। Editor.js प्रति उदाहरण एक दस्तावेज़ है; एकाधिक दस्तावेज़ आपके एप्लिकेशन के मॉडल हैं।

  • भंडार

    Editor.js

    आपका ऐप

    GrapesJS

    अंतर्निहित

    GrapesJS में एक Storage Manager है जिसमें एक रिमोट एडाप्टर है जिसे आप अपने API पर इंगित करते हैं। Editor.js आपको save() देता है और आप परिणाम जारी रखते हैं। किसी भी तरह से डेटाबेस आपका है।

  • वर्कफ़्लो प्रकाशित करना

    Editor.js

    आपका ऐप

    GrapesJS

    एकीकरण

    न तो कुछ प्रकाशित करता है। GrapesJS निर्यात HTML और CSS आप अपनी पाइपलाइन को सौंपते हैं; Editor.js आपका रेंडरर आपको JSON देता है।

  • केवल-पढ़ने के लिए मोड

    Editor.js

    अंतर्निहित

    GrapesJS

    अंतर्निहित

    Editor.js में 2.19 से केवल-पढ़ने के लिए मोड है। GrapesJS घटकों को लॉक कर सकता है और संपादन को अक्षम कर सकता है।

  • Editor UI अनुवाद

    Editor.js

    अंतर्निहित

    GrapesJS

    अंतर्निहित

    दोनों अपने स्वयं के इंटरफ़ेस का अनुवाद कर सकते हैं। Editor.js में i18n API है; GrapesJS में एक स्थान/संदेश कॉन्फ़िगरेशन है।

  • SaaS पेज बिल्डर

    Editor.js

    रिवाज

    GrapesJS

    मजबूत फिट

    GrapesJS का व्यापक रूप से पेज-बिल्डर उत्पादों के अंदर संपादक के रूप में उपयोग किया जाता है। सामग्री संपादक पर एक ही उत्पाद बनाने का अर्थ है लेआउट संपादक को स्वयं लिखना।

  • एम्बेड करने योग्य विज़ुअल एडिटर

    Editor.js

    रिवाज

    GrapesJS

    मजबूत फिट

    GrapesJS एक DOM तत्व में माउंट होता है और आमतौर पर अन्य लोगों के उत्पादों में एम्बेडेड होता है। Editor.js उतनी ही आसानी से एम्बेड करता है, लेकिन एक सामग्री संपादक को एम्बेड करता है।

  • व्हाइट-लेबल संपादक

    Editor.js

    रिवाज

    GrapesJS

    मजबूत फिट

    GrapesJS पैनल, आइकन और CSS को थोक में बदला जा सकता है। Editor.js UI को भी फिर से स्टाइल किया जा सकता है; रीब्रांड करने के लिए कम क्रोम है।

  • CMS एकीकरण

    Editor.js

    अंतर्निहित

    GrapesJS

    अंतर्निहित

    दोनों CMS के साथ एकीकृत होते हैं। सवाल यह है कि क्या CMS संरचित सामग्री या दृश्य लेआउट संग्रहीत करता है।

  • TypeScript प्रकार

    Editor.js

    अंतर्निहित

    GrapesJS

    अंतर्निहित

    प्रकाशित पैकेज में दोनों जहाज प्रकार की घोषणाएं। सटीक क्षेत्रों के लिए नीचे दी गई तालिका देखें।

  • Plugin पारिस्थितिकी तंत्र

    Editor.js

    पैकेज

    GrapesJS

    पैकेज

    Editor.js में आधिकारिक टूल पैकेज और एक सामुदायिक पारिस्थितिकी तंत्र है; GrapesJS में एक प्लगइन API और एक बाज़ार है।

  • ओपन-सोर्स लाइसेंस

    Editor.js

    अंतर्निहित

    GrapesJS

    अंतर्निहित

    Editor.js Apache-2.0 है। GrapesJS कोर BSD-3-Clause है। दोनों वाणिज्यिक और बंद-स्रोत उपयोग की अनुमति देते हैं।

पंक्तियाँ जहाँ दोनों स्तंभ समान पढ़ते हैं, वे पंक्तियाँ हैं जहाँ दो संपादक वास्तव में एक ही काम करते हैं। यदि आप किसी निर्णय के लिए स्कैन कर रहे हैं, तो जो पंक्तियाँ मायने रखती हैं, वे वे हैं जहाँ एक पक्ष "बिल्ट-इन" कहता है और दूसरा "कस्टम" कहता है: वह अंतर वह काम है जो आपकी टीम करेगी।

पैकेज तथ्य
पैकेजविवरणलाइसेंसप्रकार घोषणाएँ
@editorjs/editorjs2.31.6Apache-2.0types/index.d.ts
grapesjs0.23.6BSD-3-Clausedist/index.d.ts

npm रजिस्ट्री से 2026-09-03 पर पढ़ें। संस्करण चलते हैं; लाइसेंस और शिप किए गए प्रकार की घोषणाएं यहां टिकाऊ तथ्य हैं। ध्यान दें कि BSD-3-Clause GrapesJS कोर पर लागू होता है - अलग React रैपर पैकेज MIT है।

व्यावहारिक परिदृश्य

आपको कौन सा Editor उपयोग करना चाहिए?

चौदह ठोस उत्पाद, प्रत्येक एक सिफारिश के साथ। उनमें से चार Editor.js और दो बिंदु दोनों पर इंगित करते हैं - यदि एक तुलना पृष्ठ हर परिदृश्य को अपने स्वयं के उत्पाद पर इंगित करता है, तो आप उस पर भरोसा नहीं करना सही होगा।

ब्लॉग या लेख संपादक

Editor.js

लेखक गद्य लिखते हैं। मान स्वच्छ संरचित सामग्री में है जो हर चैनल में समान रूप से प्रस्तुत होता है, न कि प्रति-पोस्ट लेआउट नियंत्रण में।

प्रलेखन संपादक

Editor.js

दस्तावेज़ीकरण एक सुसंगत टेम्पलेट और विवश ब्लॉक प्रकार चाहता है। प्रत्येक पृष्ठ लेखक को अपना लेआउट देना आमतौर पर एक समस्या है, एक सुविधा नहीं।

ज्ञान का आधार

Editor.js

खोज, संस्करण और पुनः उपयोग सभी तब आसान हो जाते हैं जब लेख मार्कअप के बजाय संरचित डेटा होते हैं।

संरचित CMS सामग्री

Editor.js

यदि आपका API कई फ्रंट एंड पर सामग्री परोसता है, तो पोर्टेबल दस्तावेज़ को संग्रहीत करना एक चैनल के लेआउट को संग्रहीत करना धड़कता है।

लैंडिंग पेज बिल्डर

GrapesJS

विशिष्ट दिखने के लिए मार्केटिंग पेज मौजूद हैं। लेआउट, रिक्ति और ब्रेकपॉइंट काम हैं, और उन्हें बिना तैनाती के संपादन योग्य होने की आवश्यकता है।

गाइड पढ़ें

वेबसाइट बिल्डर

GrapesJS

एकाधिक पृष्ठ, साझा शीर्ष लेख और पाद लेख, प्रति-पृष्ठ लेआउट - पृष्ठ सरणी के साथ एक घटक ट्री समस्या का आकार है।

गाइड पढ़ें

SaaS पेज बिल्डर

GrapesJS

आपके उपयोगकर्ता उस कलाकृति का निर्माण कर रहे हैं जिसके लिए वे भुगतान कर रहे हैं। इसे बनाते समय उन्हें इसे देखने की जरूरत है।

गाइड पढ़ें

व्हाइट-लेबल विज़ुअल एडिटर

GrapesJS

पैनल, आइकन और स्टाइल को बदला जा सकता है ताकि संपादक आपके उत्पाद के अंदर अतिथि के बजाय उसके हिस्से के रूप में पढ़े।

गाइड पढ़ें

एम्बेड करने योग्य पेज बिल्डर

GrapesJS

किसी और के एप्लिकेशन के अंदर DOM तत्व में माउंट होता है, भंडारण और प्रकाशन उनके बैकएंड पर वायर्ड होता है।

गाइड पढ़ें

HTML/CSS दृश्य संपादक

GrapesJS

चयनकर्ता, घोषणाएं और निर्यात योग्य मार्कअप वितरण योग्य हैं। एक सामग्री संपादक जानबूझकर तीनों को छुपाता है।

गाइड पढ़ें

CMS दृश्य संपादन परत

GrapesJS

जब संपादकों को लेखक फ़ील्ड के बजाय अंतिम लेआउट को नियंत्रित करने की आवश्यकता होती है, तो CMS को एक दृश्य संपादन परत की आवश्यकता होती है।

गाइड पढ़ें

ईमेल टेम्पलेट बिल्डर

GrapesJS

ईमेल टेम्पलेट शत्रुतापूर्ण बाधाओं के तहत लेआउट हैं - टेबल, इनलाइन शैलियाँ, क्लाइंट विचित्रताएँ - जो लेआउट संपादन है, सामग्री संपादन नहीं।

गाइड पढ़ें

ब्लॉग के साथ मार्केटिंग साइट

या तो, या दोनों

पृष्ठों के लिए दृश्य संपादन, पोस्ट के लिए संरचित सामग्री। दो संलेखन सतहें, दो संपादक, एक एप्लिकेशन।

देखें कि उन्हें कैसे परत किया जाए

कस्टम लैंडिंग पृष्ठों के साथ दस्तावेज़ साइट

या तो, या दोनों

स्वयं दस्तावेज़ों के लिए विवश संरचित सामग्री, उनके आस-पास के विपणन पृष्ठों के लिए दृश्य संपादन।

मिश्रित परिदृश्यों के लिए, दोनों इस बात पर निर्भर करते हुए उपयुक्त हो सकते हैं कि प्राथमिक आवश्यकता संरचित सामग्री या दृश्य लेआउट संपादन है या नहीं। यह तय करने लायक है कि आपके उत्पाद का कोर लूप वास्तव में दोनों में से कौन सा है, इससे पहले कि आप यह तय करें कि कौन सा संपादक स्थापित करना है।

SaaS उत्पाद

SaaS Editor का निर्माण?

क्या आपके उपयोगकर्ता मुख्य रूप से सामग्री लिख रहे हैं, या नेत्रहीन रूप से उस चीज़ का निर्माण कर रहे हैं जो वे बना रहे हैं?

यह एक प्रश्न किसी भी फीचर टेबल से अधिक निर्णय लेता है। उन दो वर्कफ़्लो की तुलना करें जिन्हें आपके उपयोगकर्ता वास्तव में सप्ताह में दर्जनों बार दोहराएंगे, और उस संपादक को चुनें जिसका लूप इससे मेल खाता है।

Editor.js लूप

  1. सामग्री लिखें
  2. ब्लॉक व्यवस्थित करें
  3. JSON बचाएं
  4. सामग्री प्रस्तुत करें
चार चरण, और आखिरी वाला आपके रेंडरर का है। संक्षिप्त, पूर्वानुमानित, और परिणाम कैसा दिखता है, इसके प्रति पूरी तरह से उदासीन।

GrapesJS लूप

  1. लेआउट बनाएं
  2. घटकों को खींचें
  3. शैलियों को अनुकूलित करें
  4. पूर्वसमीक्षा
  5. प्रोजेक्ट सहेजें
  6. प्रकाशित करना
छह चरण, क्योंकि उनमें से दो - स्टाइलिंग और पूर्वावलोकन - वह हिस्सा है जिसके लिए आपके उपयोगकर्ता भुगतान कर रहे हैं जब कलाकृति एक पृष्ठ है।

SaaS उत्पादों के लिए जहां उपयोगकर्ताओं को पृष्ठों, टेम्पलेट्स या लेआउट को नेत्रहीन रूप से बनाने की आवश्यकता होती है, GrapesJS अक्सर एक अधिक प्राकृतिक प्रारंभिक बिंदु होता है - ऊपर दिया गया लूप उत्पाद है, और इसे सामग्री संपादक पर बनाने का अर्थ है लेआउट संपादक को स्वयं लिखना। यदि आपके उपयोगकर्ता रचना करने के बजाय लिख रहे हैं, तो छोटा लूप सही है और Editor.js आपको वहां तेजी से पहुंचाता है।

CMS वास्तुकला

CMS का निर्माण?

CMS संपादक बनाने के दो ईमानदार तरीके हैं, और चुनाव आपके द्वारा स्थापित संपादक के अपस्ट्रीम है। नीचे दिए गए दोनों मॉडल कहीं न कहीं उत्पादन में हैं, और दोनों उन उत्पादों के लिए सही हैं जिन्होंने उन्हें चुना है।

संरचित CMS

  1. CMS
  2. Editor.js
  3. JSON
  4. फ्रंटएंड
CMS सामग्री मॉडल का मालिक है। फ्रंटएंड प्रेजेंटेशन का मालिक है, और एक भी संग्रहीत दस्तावेज़ को छुए बिना इसे बदल सकता है।

दृश्य CMS

  1. CMS/बैकएंड
  2. GrapesJS
  3. दृश्य संपादन
  4. HTML/CSS/प्रोजेक्ट डेटा
  5. फ्रंटएंड
CMS संपादन सतह का मालिक है। संपादक तैयार लेआउट को नियंत्रित करते हैं, और प्रस्तुति परिवर्तन सामग्री परिवर्तन हैं।

चुनाव इस बात पर निर्भर करता है कि आपके उपयोगकर्ताओं को संरचित सामग्री लिखने की आवश्यकता है या अंतिम लेआउट को नेत्रहीन रूप से नियंत्रित करने की आवश्यकता है। यदि कुछ को प्रत्येक की आवश्यकता है, तो यह एक वास्तविक उत्तर भी है - दोनों को और नीचे चलाने पर अनुभाग देखें।

लाइव संपादक

GrapesJS विज़ुअल एडिटर

अंतर को समझने का सबसे आसान तरीका संपादक का उपयोग करना है। पैनल से एक ब्लॉक को खींचें, किसी भी तत्व पर क्लिक करें, इसे फिर से स्टाइल करें, कैनवास को टैबलेट या मोबाइल पर स्विच करें, एसेट मैनेजर खोलें - और नीचे दिए गए पैनल को प्रिंट करें जहां आपका चयन घटक ट्री में बैठता है।

प्रवास

क्या मैं Editor.js से GrapesJS में माइग्रेट कर सकता हूँ?

हां, लेकिन माइग्रेशन आमतौर पर प्रत्यक्ष निर्यात/आयात ऑपरेशन के बजाय एक सामग्री-मॉडल और संपादक-आर्किटेक्चर माइग्रेशन है। ऐसा कोई कनवर्टर नहीं है जो Editor.js दस्तावेज़ पढ़ता हो और GrapesJS प्रोजेक्ट तैयार करता हो, क्योंकि विज़ुअल एडिटर को जिस लेआउट और मार्कअप की आवश्यकता होती है, वह शुरू करने के लिए दस्तावेज़ में कभी नहीं थे। किसी को उन्हें तय करना होगा, एक बार प्रति सामग्री प्रकार - और यह निर्णय वही है जो नीचे दिए गए दस चरणों को व्यवस्थित करता है।

  1. 1
    मूल्‍यांकन करना

    अपने Tools का ऑडिट करें

    उपयोग में आने वाले प्रत्येक Tool की सूची बनाएं, जिसमें केवल कुछ मुट्ठी भर पुराने दस्तावेज़ ही शामिल हैं। लंबी पूंछ वह जगह है जहां माइग्रेशन खत्म हो जाता है।

  2. 2
    मूल्‍यांकन करना

    सामग्री प्रकारों की पहचान करें

    उन Tools को आपके उत्पाद की सामग्री प्रकारों में समूहित करें। कई Tools अक्सर विविधताओं के साथ एक प्रकार के होते हैं।

  3. 3
    मूल्‍यांकन करना

    मानचित्र ब्लॉक डेटा

    प्रत्येक प्रकार के लिए, लिखें कि इसके डेटा ऑब्जेक्ट में क्या है और एक दृश्य समकक्ष की क्या आवश्यकता होगी जिसमें डेटा शामिल नहीं है।

  4. 4
    को गढ़ना

    GrapesJS घटक बनाएं

    प्रति सामग्री प्रकार के लिए एक घटक प्रकार को परिभाषित करें, मार्कअप और संरचना के साथ विज़ुअल संपादक प्रस्तुत और संपादित करेगा।

  5. 5
    को गढ़ना

    traits और गुण बनाएं

    उन फ़ील्ड को उजागर करें जिन्हें लेखकों को traits के रूप में संपादित करने की आवश्यकता होती है, इसलिए सेटिंग्स पैनल वही नियंत्रण प्रदान करता है जो पुराने Tool ने किया था।

  6. 6
    को गढ़ना

    विज़ुअल ब्लॉक बनाएं

    प्रति घटक प्रकार एक draggable ब्लॉक जोड़ें ताकि लेखक उन्हें सम्मिलित कर सकें, जो Editor.js टूलबॉक्स का दृश्य समकक्ष है।

  7. 7
    को गढ़ना

    मानचित्र शैलियाँ और लेआउट

    तय करें कि घटक में कौन सी स्टाइल तय की गई है और जिसे लेखक बदल सकता है, फिर मिलान करने के लिए Style Manager को कॉन्फ़िगर करें।

  8. 8
    ले जाएँ

    टेम्पलेट और सामग्री माइग्रेट करें

    संग्रहीत दस्तावेज़ों को प्रति सामग्री प्रकार की स्क्रिप्ट के साथ परिवर्तित करें. एक नमूने की हाथ से जांच करने की अपेक्षा करें — स्वचालित आउटपुट के लिए निर्णय की आवश्यकता होगी.

  9. 9
    ले जाएँ

    फ्रंटएंड को फिर से काम करना

    आपके रेंडरर ने एक ब्लॉक सरणी का उपभोग किया। यह अब निर्यात किए गए HTML और CSS, या प्रोजेक्ट डेटा की खपत करता है, जो एक अलग एकीकरण है।

  10. 10
    ले जाएँ

    रेंडरिंग सत्यापित करें

    वास्तविक दस्तावेज़ों के लिए पुराने और नए आउटपुट की तुलना करें, फिक्स्चर के लिए नहीं, और पुरानी पाइपलाइन को तब तक पठनीय रखें जब तक आपके पास न हो।

वास्तव में लागत क्या निर्धारित करता है

  • कस्टम Editor.js Tools
  • सामग्री स्कीमा
  • फ्रंटएंड रेंडरिंग
  • संग्रहीत डेटा की मात्रा
  • टेम्पलेट लाइब्रेरी
  • कस्टम प्लगइन्स
  • व्यापार तर्क
  • स्टाइलिंग सिस्टम
माइग्रेशन उदाहरण

Editor.js → GrapesJS माइग्रेशन उदाहरण

एक शीर्षक, दोनों तरफ। नीचे दी गई तुलना जानबूझकर छोटी है, क्योंकि यह जो अंतर दिखाता है वह माइग्रेशन की पूरी कठिनाई है: दाईं ओर की हर चीज जो बाईं ओर नहीं है, उसे एक व्यक्ति द्वारा तय किया जाना था।

Editor.js ब्लॉक

editorjs-block.jsonjson
{
  "type": "header",
  "data": {
    "text": "Build faster",
    "level": 2
  }
}

शब्दार्थ और पोर्टेबल। यह कहता है कि सामग्री क्या है - एक स्तर 2 शीर्षक - और इस बारे में कुछ भी नहीं कि इसे कैसा दिखना चाहिए।

वैचारिक GrapesJS घटक

component-definition.tsts
{
  type: 'text',
  tagName: 'h2',
  components: [{ type: 'textnode', content: 'Build faster' }],
}

एक घटक परिभाषा: Blocks.add() और Components.addType() क्या लेते हैं। ध्यान दें कि कहीं से क्या दिखाई दिया - टैग, संरचना, टेक्स्ट नोड। इसमें से कोई भी ब्लॉक में नहीं था।

Editor.js अवधारणा

GrapesJS अवधारणा

Tool
Component प्रकार

प्रत्येक Tool एक घटक प्रकार बन जाता है: एक ही विचार, लेकिन घटक के पास DOM तत्व और save() विधि के बजाय एक मॉडल और एक दृश्य होता है।

Tool डेटा
गुण / traits

अपने डेटा ऑब्जेक्ट में रखे गए Tool फ़ील्ड घटक गुण बन जाते हैं, जिनके लिए traits को एक लेखक को बदलने में सक्षम होना चाहिए।

Block अनुक्रम
Component पेड़

एक सपाट, क्रमबद्ध सरणी एक घोंसले वाला पेड़ बन जाता है। यह कोई यांत्रिक उत्तर के साथ कदम है - घोंसले के शिकार को डिजाइन किया जाना है।

सामग्री स्कीमा
परियोजना/अनुप्रयोग डेटा

आपका संग्रहीत दस्तावेज़ स्कीमा प्रोजेक्ट डेटा बन जाता है और साथ ही आपके एप्लिकेशन को अभी भी इसके चारों ओर मॉडल करने की आवश्यकता होती है।

यह एक वैचारिक मानचित्रण है, न कि एक सार्वभौमिक स्वचालित कनवर्टर। सभी Editor.js Tools का पुनः उपयोग नहीं किया जा सकता है, और सभी Editor.js सामग्री को स्वचालित रूप से परिवर्तित नहीं किया जा सकता है - ऊपर दी गई मैपिंग वह है जो एक व्यक्ति प्रति सामग्री प्रकार लागू करता है, और इसकी कठिनाई पूरी तरह से इस बात पर निर्भर करती है कि आपके पुराने रेंडरर में कितना लेआउट इरादा निहित था।

प्रयास

Editor.js → GrapesJS माइग्रेशन कितना कठिन है?

यह उन इनपुट पर निर्भर करता है जिन्हें हम यहां से नहीं देख सकते हैं, इसलिए नीचे दिए गए तीन स्तर अवधि का वादा करने के बजाय उन इनपुट का वर्णन करते हैं। वही तीन Tools एक एप्लिकेशन में एक दोपहर लेते हैं जो एक घटक में JSON प्रदान करता है, और सर्वर-साइड रेंडरिंग, एक टेम्पलेट लाइब्रेरी और एक संपादकीय वर्कफ़्लो के साथ एक में काफी लंबा होता है।

सरल

स्टॉक टूलींग, थोड़ा कस्टम कोड, और एक रेंडरर जिसे आप दोपहर में फिर से लिख सकते हैं।

  • मानक Editor.js ब्लॉक
  • सीमित कस्टम Tools
  • बुनियादी सामग्री
  • छोटी टेम्पलेट लाइब्रेरी
मध्यम

कस्टम Tools और टेम्पलेट मौजूद हैं, इसलिए प्रत्येक को एक डिज़ाइन किए गए दृश्य समकक्ष की आवश्यकता होती है।

  • कस्टम Tools
  • कस्टम रेंडरिंग
  • टेम्पलेट्स
  • संपत्ति
  • कस्टम स्टाइल
मनोग्रंथि

संपादक को रेंडरिंग, वर्कफ़्लो और अन्य प्रणालियों में गहराई से बुना गया है।

  • गहराई से अनुकूलित Editor.js
  • कस्टम सामग्री स्कीमा
  • सर्वर-साइड रेंडरिंग
  • जटिल व्यापार तर्क
  • बड़ा मौजूदा सामग्री डेटाबेस
  • अन्य प्रणालियों के साथ एकीकरण

उत्पादन सामग्री को माइग्रेट करने से पहले, वर्तमान Editor.js डेटा मॉडल और रेंडरिंग पाइपलाइन का ऑडिट करें।

माइग्रेट करने से पहले

आपको Editor.js बदलने की आवश्यकता नहीं हो सकती है

Editor.js विकल्प की खोज करने वाले लोगों के एक उचित हिस्से को एक की आवश्यकता नहीं है। प्रवासन से पहले तीन परिणाम विचार करने योग्य हैं, और उनमें से केवल एक ही माइग्रेशन है।

रखें Editor.js

यदि आपका उत्पाद संरचित सामग्री को संग्रहीत और प्रस्तुत करता है, और आप जो शिकायतें सुनते हैं वे लेआउट के बजाय ब्लॉक प्रकारों के बारे में हैं, तो संपादक समस्या नहीं है। इसे बदलने से आपको वह पोर्टेबिलिटी खर्च करनी पड़ेगी जो आपको वर्तमान में मुफ्त में मिल रही है।

जब संरचित सामग्री ठीक वही होती है जो आपके उत्पाद की आवश्यकता होती है

Editor.js बढ़ाएँ

कस्टम Tools अपने स्वयं के मार्कअप, डेटा और सेटिंग्स पैनल के मालिक हैं, और Block Tunes प्रति ब्लॉक स्थिति बनी रह सकती है। "हमें एक अलग संपादक की आवश्यकता है" आवश्यकताओं की एक आश्चर्यजनक संख्या एक Tool दूर है।

जब आपको केवल अतिरिक्त सामग्री की आवश्यकता हो Tools

GrapesJS जोड़ें

यदि आवश्यकता वास्तव में एक विज़ुअल लेआउट संपादक है - लैंडिंग पृष्ठ, टेम्पलेट, एक बिल्डर जो आपके ग्राहक उपयोग करते हैं - तो एक जोड़ना ईमानदार उत्तर है, और इसका मतलब यह नहीं है कि आपके पास पहले से मौजूद सामग्री संपादक को हटा दिया जाए।

जब उत्पाद को विज़ुअल लेआउट एडिटर की भी आवश्यकता होती है

दोनों का उपयोग करना

क्या Editor.js और GrapesJS एक साथ काम कर सकते हैं?

कुछ अनुप्रयोगों में, Editor.js सामग्री संलेखन उपकरण बना रह सकता है जबकि GrapesJS दृश्य रचना को संभालता है। दोनों संपादक एक-दूसरे से बात नहीं करते हैं - वे प्रत्येक एक ही उत्पाद की एक अलग संलेखन सतह की सेवा करते हैं, जैसा कि आरेख दिखाता है।

आपका आवेदन

Editor.js

संरचित सामग्री

पोस्ट, दस्तावेज़ और कोई भी सामग्री जिसे एक से अधिक स्थानों पर प्रस्तुत करना है।

GrapesJS

दृश्य लेआउट

लैंडिंग पृष्ठ, टेम्पलेट और कुछ भी जहां लेआउट वितरण योग्य है।

यह समझ में आता है या नहीं यह उत्पाद की सामग्री और रेंडरिंग आर्किटेक्चर पर निर्भर करता है। दो संपादकों का अर्थ है दो संलेखन इंटरफेस, दो संग्रहीत प्रारूप और दो रेंडरिंग पथ, जो अधिकांश उत्पादों के लिए एक को चुनने से भी बदतर है। यह अपनी लागत तब अर्जित करता है जब उत्पाद में वास्तव में दो संलेखन सतहें होती हैं - पृष्ठ और पोस्ट, लेआउट और लेख - और निर्णय लेने से बचने के तरीके के रूप में नहीं।
प्लगइन्स

प्लगइन्स के साथ GrapesJS बढ़ाएं

आपको हर संपादक क्षमता को खरोंच से बनाने की आवश्यकता नहीं है। GrapesJS को सामान्य वर्कफ़्लो और एकीकरण के लिए प्लगइन्स के साथ बढ़ाया जा सकता है - जिसमें सामग्री संपादक से आने वाले किसी भी व्यक्ति के लिए, समृद्ध पाठ अनुभव ही शामिल है।

रिच टेक्स्ट एडिटिंग

सामग्री संपादक से आने वाला हर कोई पहले यह प्रश्न पूछता है: क्या लेखन अनुभव दृश्य कैनवास के अंदर जीवित रहता है? GrapesJS का अपना समृद्ध टेक्स्ट एडिटर है, और इसे उस व्यक्ति के लिए स्वैप किया जा सकता है जिसे आपके लेखक पहले से जानते हैं।

श्रेणी ब्राउज़ करें

भंडार

प्रोजेक्ट डेटा को कहीं जाना है। स्टोरेज प्लगइन्स Storage Manager को बैकएंड से तार करते हैं ताकि आप पहले दिन पर्सिस्टेंस एडाप्टर न लिख सकें।

श्रेणी ब्राउज़ करें

अधिक समृद्ध पाठ एकीकरण

उपरोक्त चार से परे, कैटलॉग में आगे इनलाइन-एडिटर एकीकरण और बिल्ट-इन एक के एक्सटेंशन शामिल हैं।

Tailwind और Bootstrap

यदि आपके उत्पाद में पहले से ही एक डिज़ाइन प्रणाली है, तो ब्लॉक जो इसकी कक्षाओं का उत्सर्जन करते हैं, वे अच्छे दिखने वाले ब्लॉकों से अधिक मायने रखते हैं।

संपत्ति और तैनाती

एसेट पिकर और डिप्लॉयमेंट कमांड, पाइपलाइन के उन हिस्सों के लिए जो संपादक के दोनों ओर बैठते हैं।

एआई-सहायता प्राप्त संपादन

दो लिस्टिंग वास्तव में एआई का नाम लेने के बजाय काम करती हैं। वे सीधे जुड़े हुए हैं क्योंकि एआई श्रेणी हब के पीछे कोई प्रकाशित उत्पाद नहीं है।

श्रेणी के अनुसार ब्राउज़ करें

लिस्टिंग और कीमतें निर्माण समय पर बाज़ार से पढ़ी जाती हैं; इन अलमारियों के पीछे स्लग सूचियों की अंतिम बार 2026-09-03 पर जाँच की गई थी। एक सूची जिसे तब से वापस ले लिया गया है, बस अपने शेल्फ से गायब हो जाती है।

बक्सों का इस्तेमाल करें

आप GrapesJS के साथ क्या बना सकते हैं?

छह उत्पाद जो सभी एक ही संपादक हैं, उन्हें अलग-अलग तरीके से कॉन्फ़िगर किया गया है। प्रत्येक की अपनी मार्गदर्शिका है, क्योंकि दिलचस्प निर्णय इंस्टॉल के बजाय कॉन्फ़िगरेशन में हैं।

SaaS पेज बिल्डर

एक पेज बिल्डर जिसका उपयोग आपके ग्राहक आपके उत्पाद के अंदर करते हैं, उनके पृष्ठ आपके डेटाबेस में संग्रहीत होते हैं।

गाइड पढ़ें

एम्बेड करने योग्य Page Builder

एक संपादक जो किसी अन्य एप्लिकेशन के अंदर माउंट होता है, उस एप्लिकेशन के भंडारण और प्रकाशन के लिए वायर्ड होता है।

गाइड पढ़ें

लैंडिंग Page Builder

मार्केटिंग पेज आपकी टीम परिनियोजन की प्रतीक्षा किए बिना लिख सकती है और फिर से स्टाइल कर सकती है।

गाइड पढ़ें

व्हाइट-लेबल Editor

आपके पैनल, आइकन और स्टाइल के साथ एक ही इंजन, इसलिए यह आपके उत्पाद के हिस्से के रूप में पढ़ता है।

गाइड पढ़ें

बिना सिर वाला CMS Editor

उन संपादकों के लिए जिन्हें अंतिम लेआउट को नियंत्रित करने की आवश्यकता होती है, एक हेडलेस बैकएंड पर एक दृश्य संपादन परत।

गाइड पढ़ें

ईमेल बिल्डर

ईमेल वास्तव में बाधाओं के तहत ईमेल टेम्पलेट लगाता है - टेबल, इनलाइन शैलियाँ और क्लाइंट विचित्रताएँ।

गाइड पढ़ें
आपका स्टैक

अपने पसंदीदा स्टैक के साथ लगभग GrapesJS बनाएं

संपादक एक DOM तत्व में माउंट होता है, इसलिए फ्रेमवर्क प्रश्न इस बारे में है कि आप इसे कैसे लपेटते हैं बजाय इसके कि यह काम करता है या नहीं। नीचे दी गई प्रत्येक मार्गदर्शिका वायरिंग, जीवनचक्र और उन हिस्सों को कवर करती है जो लोगों को आश्चर्यचकित करते हैं।

React

आधिकारिक React रैपर, इसके आवश्यक प्रॉप्स, और जहां React का जीवनचक्र संपादक से टकराता है।

GrapesJS React के साथ

Next.js

डायनेमिक आयात, सर्वर-साइड रेंडरिंग बाधाएं और जहां संपादक माउंट हो सकता है और नहीं भी हो सकता है।

Next.js पेज बिल्डर

Vue

एक टेम्पलेट रेफरी में बढ़ते हुए, और पहुंचने के लिए कोई आधिकारिक Vue रैपर क्यों नहीं है।

GrapesJS Vue के साथ

Angular

Component जीवनचक्र, क्षेत्र से निपटने और नष्ट करने पर संपादक की सफाई।

GrapesJS Angular के साथ

TypeScript

शिप किए गए प्रकार की घोषणाएं, वे क्या करते हैं और क्या निर्यात नहीं करते हैं, और न्यूनतम कंपाइलर संस्करण।

GrapesJS TypeScript के साथ

वेनिला जावास्क्रिप्ट

कोई ढांचा नहीं: एक स्क्रिप्ट टैग, एक कंटेनर तत्व और एक इनिट कॉल। कोर को स्पष्ट रूप से देखने के लिए यहां से शुरू करें।

GrapesJS ट्यूटोरियल

स्पष्ट रूप से बनाने लायक एक स्पष्टीकरण: GrapesJS कोर फ्रेमवर्क-अज्ञेयवादी है और इसे इन फ्रेमवर्क का उपयोग करके अनुप्रयोगों में एकीकृत किया जा सकता है - यह React या Vue के समान घटक मॉडल का उपयोग नहीं करता है। GrapesJS में एक "घटक" संपादक का अपना मॉडल ऑब्जेक्ट है जो कैनवास ट्री में एक नोड का वर्णन करता है, न कि React या Vue घटक, और कैनवास एक फ्रेमवर्क के वर्चुअल ट्री के बजाय DOM के अंदर वास्तविक iframe प्रस्तुत करता है। रैपर संपादक को आपके ऐप में एकीकृत करते हैं; वे आपके ढांचे के घटकों को कैनवास के अंदर नहीं डालते हैं।

निर्णय मैट्रिक्स

Editor.js या GrapesJS?

बीस आवश्यकताएं, प्रत्येक एक अनुशंसित प्रारंभिक बिंदु। Editor.js पर छह अंक और दोनों पर दो, क्योंकि यही वह जगह है जहां वे वास्तव में इंगित करते हैं।

Editor.js या GrapesJS?
आपकी आवश्यकताअनुशंसित प्रारंभिक बिंदु
ब्लॉग संपादकEditor.js
लेख संपादकEditor.js
प्रलेखनEditor.js
संरचित सामग्रीEditor.js
JSON-पहला सामग्री वर्कफ़्लोEditor.js
एक दस्तावेज़, कई चैनलEditor.js
विज़ुअल पेज बिल्डरGrapesJS
लैंडिंग पेज बिल्डरGrapesJS
SaaS पेज बिल्डरGrapesJS
HTML/CSS संपादकGrapesJS
व्हाइट-लेबल विज़ुअल एडिटरGrapesJS
एम्बेड करने योग्य विज़ुअल एडिटरGrapesJS
दृश्य CMS संपादकGrapesJS
कस्टम पृष्ठ संरचनाGrapesJS
उत्तरदायी लेआउट नियंत्रणGrapesJS
पुनः प्रयोज्य दृश्य टेम्पलेटGrapesJS
ईमेल टेम्पलेट संपादनGrapesJS
बहु-पृष्ठ परियोजनाएंGrapesJS
ब्लॉग के साथ मार्केटिंग साइटया तो, या दोनों
डॉक्स प्लस मार्केटिंग पेजया तो, या दोनों

कोई भी उपकरण सार्वभौमिक रूप से बेहतर नहीं है। अपने उत्पाद के लिए आवश्यक संपादन मॉडल के आधार पर चुनें।

सेवाएं

Editor.js से आगे बढ़ रहे हैं?

यदि ऑडिट माइग्रेशन पर इंगित करता है, तो GJS.Market उन हिस्सों के साथ मदद कर सकता है जो किसी भी पुनर्लेखन के लिए सामान्य के बजाय संपादकों की इस जोड़ी के लिए विशिष्ट हैं।

  • वास्तुकला मूल्यांकन
  • सामग्री मॉडल मानचित्रण
  • Tool घटक मानचित्रण के लिए
  • सामग्री माइग्रेशन
  • टेम्पलेट माइग्रेशन
  • एसेट माइग्रेशन
  • कस्टम प्लगइन विकास
  • भंडारण एकीकरण
  • फ्रंटएंड एकीकरण
  • परीक्षण

हम आपके वास्तविक डेटा मॉडल और रेंडरिंग पाइपलाइन से गुंजाइश करते हैं, इसलिए पहली बातचीत इस बारे में है कि हमारे पास क्या है, न कि हम क्या पेशकश करते हैं। हम उस ऑडिट से पहले एक अवधि उद्धृत नहीं करते हैं, क्योंकि ईमानदार उत्तर ऊपर सूचीबद्ध आठ कारकों पर निर्भर करता है।

FAQ

अक्सर पूछे जाने वाले प्रश्न

GrapesJS और Editor.js के बीच अंतर क्या है?

Editor.js एक संरचित सामग्री संपादक है: यह JSON के रूप में टाइप किए गए ब्लॉकों की एक क्रमबद्ध सरणी तैयार करता है और प्रस्तुति के बारे में कुछ नहीं कहता है। GrapesJS एक विज़ुअल एडिटर और पेज-बिल्डिंग फ्रेमवर्क है: यह शैलियों, संपत्तियों और उत्तरदायी नियंत्रणों के साथ कैनवास पर एक नेस्टेड घटक ट्री को संपादित करता है, और HTML और CSS निर्यात कर सकता है।

क्या GrapesJS Editor.js का विकल्प है?

केवल तभी जब आपको वास्तव में एक विज़ुअल एडिटर की आवश्यकता हो। वे विनिमेय प्रतिस्थापन नहीं हैं - यदि आपका उत्पाद संरचित सामग्री को संग्रहीत और प्रस्तुत करता है, तो GrapesJS एक अपग्रेड नहीं है, यह एक अलग काम के लिए एक अलग उपकरण है।

क्या Editor.js एक पेज बिल्डर है?

No. Editor.js एक ब्लॉक-स्टाइल कंटेंट एडिटर है। इसमें कोई कैनवास नहीं है, कोई स्टाइल मैनेजर नहीं है और कोई रिस्पॉन्सिव लेआउट नियंत्रण नहीं है, क्योंकि वे एक संरचित सामग्री संपादक के लिए नहीं हैं। आप लेआउट सुविधाओं को कस्टम Tools के रूप में बना सकते हैं, लेकिन आप लेआउट संपादक स्वयं लिख रहे होंगे।

क्या GrapesJS एक समृद्ध टेक्स्ट एडिटर है?

GrapesJS में कैनवास तत्वों के अंदर पाठ संपादित करने के लिए एक समृद्ध टेक्स्ट एडिटर शामिल है, लेकिन यह मुख्य रूप से RTE नहीं है। इसकी समृद्ध टेक्स्ट परत को एक प्लगइन के माध्यम से CKEditor, TinyMCE, Froala या Quill से भी बदला जा सकता है।

CMS के लिए कौन सा बेहतर है?

यह CMS पर निर्भर करता है। यदि संपादक संरचित सामग्री लिखते हैं जिसे कई फ्रंट एंड प्रस्तुत करते हैं, तो Editor.js फिट बैठता है। यदि संपादक तैयार लेआउट को नियंत्रित करते हैं, तो CMS को एक दृश्य संपादन परत की आवश्यकता होती है और GrapesJS फिट बैठता है।

ब्लॉग संपादक के लिए कौन सा बेहतर है?

Editor.js. ब्लॉग पोस्ट गद्य हैं, और एक संरचित दस्तावेज़ प्रति-पोस्ट लेआउट कार्य के बिना वेब, ऐप्स, फ़ीड और खोज में लगातार प्रस्तुत करता है।

विज़ुअल पेज बिल्डर के लिए कौन सा बेहतर है?

GrapesJS. ड्रैग-एंड-ड्रॉप लेआउट, प्रति-तत्व स्टाइल, उत्तरदायी उपकरण, संपत्ति और पुनः प्रयोज्य ब्लॉक उन चीजों के बजाय पुस्तकालय का हिस्सा हैं जिन्हें आप इसके ऊपर बनाते हैं।

क्या Editor.js लैंडिंग पृष्ठ बना सकते हैं?

यह लैंडिंग पृष्ठ सामग्री को संग्रहीत कर सकता है, और एक कस्टम Tool लेआउट डेटा ले जा सकता है। यह आपको जो नहीं देता है वह एक दृश्य कैनवास है जहां एक लेखक सीधे लेआउट की व्यवस्था और शैली करता है - आप इसे स्वयं डिजाइन और निर्माण करेंगे।

क्या GrapesJS समृद्ध पाठ संपादित कर सकता है?

हाँ। पाठ घटक एक समृद्ध टेक्स्ट टूलबार के साथ संपादन योग्य हैं, और यदि आपको किसी विशिष्ट की आवश्यकता है तो संपादक का RTE प्लगइन्स के माध्यम से बदला जा सकता है।

क्या Editor.js आउटपुट JSON करता है?

हाँ। save() एक टाइम स्टैम्प, टाइप किए गए ब्लॉकों की एक ब्लॉक सरणी और संपादक संस्करण के साथ किसी ऑब्जेक्ट को हल करता है। प्रत्येक ब्लॉक में एक आईडी, एक प्रकार और एक डेटा ऑब्जेक्ट होता है जिसका आकार इसका Tool परिभाषित करता है।

GrapesJS कौन सा डेटा संग्रहीत करता है?

प्रोजेक्ट डेटा: पृष्ठ, प्रत्येक फ्रेम के साथ एक नेस्टेड घटक वृक्ष, प्लस शैली नियम, संपत्ति और प्रतीक। वह संपादन योग्य स्थिति है। HTML और CSS प्रकाशन के लिए अलग-अलग उत्पन्न होते हैं।

क्या मैं Editor.js सामग्री को GrapesJS में माइग्रेट कर सकता हूँ?

हां, प्रति सामग्री प्रकार लिखे गए रूपांतरण के साथ। कोई सामान्य स्वचालित कनवर्टर नहीं है, क्योंकि विज़ुअल एडिटर के लिए आवश्यक मार्कअप, नेस्टिंग और स्टाइलिंग को Editor.js दस्तावेज़ में कभी संग्रहीत नहीं किया गया था। इसे सामग्री-मॉडल माइग्रेशन के रूप में मानें।

क्या मैं Editor.js Tools का GrapesJS में पुनः उपयोग कर सकता हूँ?

नहीं। A Tool Editor.js इंटरफ़ेस - रेंडर, सेव और अपने स्वयं के सेटिंग्स पैनल को लागू करता है - जो GrapesJS उपभोग नहीं करता है। अवधारणा GrapesJS घटक प्रकार पर मैप करती है, लेकिन कोड को पुनः उपयोग करने के बजाय फिर से लिखा जाता है।

क्या Editor.js और GrapesJS एक साथ काम कर सकते हैं?

वे एक एप्लिकेशन में सह-अस्तित्व में रह सकते हैं, प्रत्येक एक अलग संलेखन सतह की सेवा कर सकता है - उदाहरण के लिए पोस्ट के लिए संरचित सामग्री और लैंडिंग पृष्ठों के लिए दृश्य संपादन। वे एक दूसरे के साथ एकीकृत नहीं होते हैं, और दोनों को चलाने का अर्थ है दो संलेखन इंटरफेस और दो संग्रहीत प्रारूपों को बनाए रखना।

क्या GrapesJS SaaS उत्पादों के लिए उपयुक्त है?

हाँ। यह आमतौर पर पेज-बिल्डर उत्पादों के अंदर संपादक के रूप में उपयोग किया जाता है, जो किसी अन्य एप्लिकेशन में एम्बेडेड होता है, जिसमें भंडारण और प्रकाशन उस एप्लिकेशन के बैकएंड से जुड़ा होता है। प्रमाणीकरण, बिलिंग, अनुमतियाँ और किरायेदारी आपके एप्लिकेशन का काम बनी हुई है।

क्या GrapesJS TypeScript का समर्थन करता है?

हाँ। प्रकाशित पैकेज अपने स्वयं के प्रकार की घोषणाओं को शिप करता है। कुछ आंतरिक प्रबंधक प्रकार घोषित किए जाते हैं लेकिन निर्यात नहीं किए जाते हैं, इसलिए आप कभी-कभी इसके बजाय Editor प्रकार के माध्यम से उन तक पहुंचते हैं।

क्या Editor.js TypeScript का समर्थन करता है?

हाँ। पैकेज शिप प्रकार घोषणाएं, और संपादक स्वयं TypeScript में लिखा जाता है।

क्या GrapesJS को व्हाइट-लेबल किया जा सकता है?

हाँ। पैनल, बटन, आइकन और स्टाइलशीट को बदला या फिर से स्टाइल किया जा सकता है, और संपादक को उसके प्रबंधकों से इकट्ठा किया जा सकता है ताकि परिणामी UI में कोई भी डिफ़ॉल्ट क्रोम न हो।

क्या मैं GrapesJS के साथ सीएमएस संपादक बना सकता हूं?

हाँ। Storage Manager को अपने CMS API पर इंगित करें ताकि प्रोजेक्ट डेटा वहां बना रहे, और फ्रंटएंड के लिए HTML और CSS उत्पन्न करें। CMS सत्य का स्रोत बना हुआ है।

क्या मैं GrapesJS के साथ React का उपयोग कर सकता हूँ?

हां, आधिकारिक React रैपर पैकेज के माध्यम से या संपादक को स्वयं रेफरी में माउंट करके। कोर फ्रेमवर्क-अज्ञेयवादी है; कैनवास DOM को React घटकों के बजाय iframe में प्रस्तुत करता है।

क्या मैं GrapesJS के साथ Next.js का उपयोग कर सकता हूँ?

हाँ। सर्वर-साइड रेंडरिंग अक्षम के साथ संपादक को गतिशील रूप से आयात करें - यह ब्राउज़र ग्लोबल्स को छूता है जब यह प्रारंभ होता है - और इसे क्लाइंट घटक में माउंट करें।

क्या GJS.Market Editor.js प्रोजेक्ट को माइग्रेट करने में मदद कर सकता है?

हाँ। हम आर्किटेक्चर का आकलन कर सकते हैं, सामग्री मॉडल को मैप कर सकते हैं और घटकों पर Tools कर सकते हैं, सामग्री, टेम्पलेट और संपत्तियों को माइग्रेट कर सकते हैं, कस्टम प्लगइन्स और वायर स्टोरेज और फ्रंटएंड इंटीग्रेशन बना सकते हैं। स्कोपिंग एक निश्चित पैकेज के बजाय आपके मौजूदा डेटा मॉडल से शुरू होती है।
चुनें

वह संपादन मॉडल चुनें जिसकी आपके उत्पाद को आवश्यकता है

Editor.js संरचित सामग्री संपादन के लिए एक मजबूत विकल्प है। GrapesJS एक मजबूत विकल्प है जब उपयोगकर्ताओं को पृष्ठों, लेआउट और घटकों को नेत्रहीन रूप से बनाने और अनुकूलित करने की आवश्यकता होती है।

यहां से शुरू करें

GrapesJS आज़माएं

ब्लॉक, शैलियों, भंडारण और निर्यात के साथ एक कॉन्फ़िगर किए गए संपादक के लिए एक खाली कंटेनर से बारह कदम।

ट्यूटोरियल खोलें
विस्तार

प्लगइन्स का अन्वेषण करें

रिच टेक्स्ट इंटीग्रेशन, ब्लॉक पैक, कंपोनेंट सेट और स्टोरेज एडेप्टर, ताकि आप बिल्ड के बजाय कॉन्फ़िगर कर सकें।

बाज़ार ब्राउज़ करें
मदद लें

किसी विशेषज्ञ से बात करें

आर्किटेक्चर मूल्यांकन, सामग्री मॉडल मैपिंग और माइग्रेशन कार्य आपके वास्तविक डेटा मॉडल से स्कोप किया गया है।

हमसे बात करो

यदि आपके उत्पाद को दृश्य संपादन की आवश्यकता है, तो GrapesJS से शुरू करें और इसे अपने एप्लिकेशन के आर्किटेक्चर के आसपास विस्तारित करें। यदि इसे संरचित सामग्री की आवश्यकता है, तो छोटा उत्तर सही है - और इस पृष्ठ ने उम्मीद है कि यह स्पष्ट कर दिया है कि आप उनमें से किसके बारे में पढ़ रहे हैं।