फ़ील्ड

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

जनरेट किए गए कोड में फ़ील्ड की वैल्यू शामिल करने के लिए, फ़ील्ड की वैल्यू पाना, उसे इस्तेमाल करने लायक स्ट्रिंग में बदलना, और फिर स्ट्रिंग को कोड के बाकी हिस्से के साथ जोड़ना.

import {javascriptGenerator} from 'blockly/javascript';

javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) {
  // Get the field value.
  const fieldValue = block.getFieldValue('MY_FIELD');

  // Concatenate the code.
  const code = `some code ${fieldValue} some more code`;

  // Return the code.
  return code;
}

वैल्यू पाएं

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

वैल्यू बदलें

ज़्यादातर फ़ील्ड वैल्यू, आपकी कोड स्ट्रिंग से तुरंत जोड़ने के लिए तैयार हो जाती हैं. हालांकि, कुछ फ़ील्ड वैल्यू को इस्तेमाल करने के लिए ज़्यादा काम करना पड़ता है.

स्ट्रिंग

स्ट्रिंग को जोड़ने से पहले, उन्हें कोड जनरेटर से कोट करना होगा.

// For a single line text field.
const str = generator.quote_(block.getFieldValue('STR'));

// For a multiline text field.
const str = generator.multiline_quote_(block.getFieldValue('STR'));

वैरिएबल

वैरिएबल के नामों को जोड़ने से पहले, कोड जनरेटर से इन्हें स्क्रब करना होगा. यह दो वजहों से ज़रूरी है:

  1. उपयोगकर्ता अपनी पसंद की भाषा में वैरिएबल डालते हैं. इसका मतलब है कि उन्हें ASCII वर्णों में बदलना पड़ सकता है. उदाहरण के लिए, "متغير" "_D9_85_D8_AA_D8_BA_D9_8A_D8_B1" में बदल जाएगा.
  2. वैरिएबल, रिज़र्व किए गए शब्दों से मेल नहीं खा सकते हैं. इसका मतलब है कि उनमें बदलाव करना पड़ सकता है, ताकि उनसे कोई टकराव न हो. उदाहरण के लिए, "for" को "for2" में बदल दिया जाएगा.
const identifier = generator.getVariableName(block.getFieldValue('VAR'));

कोड जोड़ें

फ़ील्ड की वैल्यू पाने और उसे स्ट्रिंग में बदलने के बाद, उसे कोड स्ट्रिंग की मदद से सही जगह पर जोड़ा जा सकता है.

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

रिटर्न कोड

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