प्लग इन

प्लग इन, एक ऐसा कोड होता है जो Blockly में फ़ंक्शन जोड़ता है. उदाहरण के लिए, यह कस्टम फ़ील्ड जोड़ सकता है, नई थीम तय कर सकता है या कस्टम रेंडरर उपलब्ध करा सकता है. आम तौर पर, प्लग इन को npm की मदद से पैकेज किया जाता है और डिस्ट्रिब्यूट किया जाता है.

प्लग इन के बारे में खास जानकारी पाने के लिए, प्लग इन की खास जानकारी वाली बातचीत (2021) देखें.

अगर आपको अपना प्लग इन बनाना है, तो प्लग इन जोड़ें लेख पढ़ें.

पहले और तीसरे पक्ष के प्लग इन

पहले पक्ष के प्लग इन, Blockly टीम के साथ काम करते हैं. साथ ही, इन्हें npm पर @blockly स्कोप के तहत पब्लिश किया जाता है. इन्हें कई तरह के Blockly ऐप्लिकेशन में इस्तेमाल करने के लिए डिज़ाइन किया गया है.

तीसरे पक्ष के प्लग इन को अलग से मैनेज और पब्लिश किया जाता है. ये ज़्यादा जटिल, ज़्यादा प्रयोगात्मक या Blockly ऐप्लिकेशन की छोटी सी रेंज के लिए टारगेट किए गए हो सकते हैं.

कोई प्लग इन ढूंढना

  • Blockly प्लग इन और डेमो पर जाएं. यहां पहले पक्ष के प्लग इन के लाइव डेमो मौजूद हैं.

  • npm में keyword:blockly-plugin खोजें. @blockly स्कोप वाले प्लग इन, Blockly टीम पब्लिश करती है. ज़्यादा नतीजे पाने के लिए, keyword:blockly या blockly खोजें.

  • GitHub पर blockly-samples/plugins डायरेक्ट्री देखें. यह फ़र्स्ट-पार्टी प्लग इन की रिपॉज़िटरी है. हर प्लग इन के लिए एक 'रीड मी' होता है. इसमें, प्लग इन के काम करने के तरीके और उसके इस्तेमाल के बारे में बताया जाता है.

प्लग इन इंस्टॉल करना

हमारा सुझाव है कि आप npm या yarn जैसे पैकेज मैनेजर की मदद से प्लग इन इंस्टॉल करें. इससे, अपडेट पाना आसान हो जाता है.

  • पैकेज मैनेजर की मदद से प्लग इन इंस्टॉल करना

    npm

    npm install @blockly/field-angle
    

    ऊन

    yarn add @blockly/field-angle
    
  • पैकेज मैनेजर के बिना प्लग इन इंस्टॉल करना

    unpkg

    <script src="https://unpkg.com/@blockly/field-angle"></script>
    

    आपके पास उस GitHub रिपॉज़िटरी को क्लोन करने का विकल्प भी है जिसमें प्लग इन मौजूद है. blockly-samples, पहले पक्ष के प्लग इन के लिए है.

प्लग इन के README सेक्शन में जाकर देखें कि इंस्टॉल करने के लिए कोई और निर्देश तो नहीं है.

प्लग-इन का इस्तेमाल करना

हर प्लग इन अलग होता है. इसलिए, उस प्लग इन का इस्तेमाल करने के तरीके के बारे में जानने के लिए, प्लग इन का रीडमी देखें. यहां दिए गए उदाहरण में, @blockly/field-angle प्लग इन का इस्तेमाल करने का तरीका बताया गया है:

  1. प्लग इन से कोड इंपोर्ट करें. ऐसा करने का तरीका इस बात पर निर्भर करता है कि आपने प्लग इन को कैसे इंस्टॉल किया है.

    npm या yarn

    import Blockly from 'blockly';
    import {registerFieldAngle} from '@blockly/field-angle';
    

    unpkg

    आपको import स्टेटमेंट का इस्तेमाल करने की ज़रूरत नहीं है.

    क्लोन किया गया डेटा स्टोर करने की जगह

    import {registerFieldAngle} from 'path/to/plugin';
    
  2. ज़रूरत के हिसाब से प्लग इन को शुरू करें. कस्टम फ़ील्ड उपलब्ध कराने वाले प्लग इन के लिए, अक्सर आपको फ़ील्ड को रजिस्टर करना पड़ता है:

    registerFieldAngle();
    
  3. प्लग-इन का इस्तेमाल करें.

    Blockly.common.defineBlocksWithJsonArray([
      {
        type: "my_angle_block",
        message0: "%1 degrees",
        args0: [
          {
            // Use @blockly/field-angle.
            type: "field_angle",
            name: "FIELDNAME",
            value: 45,
          },
        ],
        output: null,
        style: 'math_blocks'
      },
    ]);
    

    360-डिग्री डायल से कोण चुनने के लिए फ़ील्ड.

प्लग इन के वर्शन

blockly-samples में मौजूद प्लग इन, सेमेंटिक वर्शनिंग का इस्तेमाल करते हैं. इसके लिए, नए मेजर वर्शन का इस्तेमाल करने के लिए, बदलावों को ब्रेक करना ज़रूरी होता है. कोर में बदलाव करने वाले किसी भी नए प्लग इन का मेजर वर्शन 0 होगा, ताकि शुरुआती डेवलपमेंट की जानकारी दी जा सके.

ज़्यादातर प्लगिन में blockly पैकेज को dependency के बजाय, peerDependency के तौर पर शामिल किया जाता है. ऐसा इसलिए है, क्योंकि हम मानते हैं कि आपने पहले ही Blockly को इंस्टॉल कर लिया है. (Blockly का इस्तेमाल किए बिना प्लग इन का इस्तेमाल करना बेमतलब है.) इससे, Blockly के वर्शन को खुद मैनेज किया जा सकता है. हालांकि, इसके लिए आपको प्लग इन के package.json को देखना होगा, ताकि यह पता लगाया जा सके कि Blockly के किस वर्शन की ज़रूरत है. अगर किसी प्लग इन को Blockly के नए वर्शन की ज़रूरत के हिसाब से अपडेट किया जाता है, तो इसे एक बड़ा बदलाव माना जाएगा और इसके मेजर वर्शन को बढ़ा दिया जाएगा.

अपने ऐप्लिकेशन के package.json में कोई प्लग इन जोड़ने पर, डिफ़ॉल्ट रूप से वर्शन से पहले कैरेट शामिल होता है:

"dependencies": {
  "@blockly/field-angle": "^5.0.12"
}

इससे npm, सूची में दिए गए वर्शन के बराबर या उससे ज़्यादा के किसी भी मायनर वर्शन को इंस्टॉल कर पाएगा. इसलिए, 5.0.20 या 5.1.0 वर्शन काम करता है, लेकिन 6.0.1 जैसे नए मेजर वर्शन काम नहीं करता. Blockly के नए वर्शन पर अपडेट करते समय, यह देखना अच्छा होता है कि आपके किसी भी प्लग इन को नए वर्शन में अपडेट किया जा सकता है या नहीं.