इनर ब्लॉक

इनर ब्लॉक, आपके वैल्यू और स्टेटमेंट इनपुट से जुड़े ब्लॉक होते हैं. अलग-अलग ब्लॉक-कोड जनरेटर को अपने अंदरूनी ब्लॉक के स्ट्रिंग जोड़ने की प्रोसेस को मैनेज करना होता है, ताकि कोड सही जगह पर जोड़ा जा सके.

import {javascriptGenerator, Order} from 'blockly/javascript';

javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) {
  // Generate innner block code.
  const statement = generator.statementToCode(block, 'MY_STATEMENT_INPUT');
  const value = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);

  // Concatenate the string.
  const code = `some code ${statement} ${value} some more code`;

  // Return the code.
  return code;
}

स्टेटमेंट इनपुट

स्टेटमेंट इनपुट के साथ अटैच किए गए इनर ब्लॉक का कोड, statementToCode का इस्तेमाल करके जनरेट किया जा सकता है. यह स्टेटमेंट ब्लॉक के ब्लॉक-कोड जनरेटर को कॉल करता है और इंडेंटिंग कोड को हैंडल करता है.

const statement = generator.statementToCode(block, 'MY_STATEMENT_INPUT');

आपको सिर्फ़ स्टेटमेंट इनपुट से सीधे कनेक्ट होने वाले अंदरूनी ब्लॉक के लिए statementToCode को कॉल करना होगा.

वैल्यू इनपुट

वैल्यू इनपुट के साथ अटैच किए गए इनर ब्लॉक का कोड, valueTocode का इस्तेमाल करके जनरेट किया जा सकता है. यह वैल्यू ब्लॉक के ब्लॉक-कोड कोड जनरेटर को कॉल करता है. साथ ही, ज़रूरत पड़ने पर इनर ब्लॉक के कोड के आस-पास ब्रैकेट जोड़ने को भी हैंडल करता है.

ब्रैकेट को कंट्रोल करने के तरीके के बारे में ज़्यादा जानने के लिए, पैंथेसिस का दस्तावेज़ देखें.

const value = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);

कोड जोड़ें

अपने अंदरूनी ब्लॉक की कोड स्ट्रिंग हासिल कर लेने के बाद, उसे कोड स्ट्रिंग के साथ सही जगह पर जोड़ा जा सकता है.

const code = `some code ${statement} ${value} some more code`;

रिटर्न कोड

अलग-अलग तरह के ब्लॉक के लिए, कोड स्ट्रिंग को अलग-अलग तरीकों से दिखाना ज़रूरी होता है. इसलिए, ज़्यादा जानकारी के लिए उनके अलग-अलग पेज देखें: