कोड जनरेट और चलाना

आपका ऐप्लिकेशन किसी भी समय कोड जनरेट कर सकता है. उदाहरण के लिए, जब असली उपयोगकर्ता किसी बटन पर क्लिक करता है या जब भी वह कोई बदलाव करता है, तब यह कोड जनरेट हो सकता है.

कोड जनरेट करने की सुविधा के बारे में खास जानकारी पाने के लिए, कोड जनरेट करने की सुविधा लेख पढ़ें.

लैंग्वेज कोड जनरेटर इंपोर्ट करना

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

मॉड्यूल

import {javascriptGenerator} from 'blockly/javascript';
import {pythonGenerator} from 'blockly/python';
import {phpGenerator} from 'blockly/php';
import {luaGenerator} from 'blockly/lua';
import {dartGenerator} from 'blockly/dart';

// Generate code for all the blocks in the workspace.
const jsCode = javascriptGenerator.workspaceToCode(workspace);
const pythonCode = pythonGenerator.workspaceToCode(workspace);
const phpCode = phpGenerator.workspaceToCode(workspace);
const luaCode = luaGenerator.workspaceToCode(workspace);
const dartCode = dartGenerator.workspaceToCode(workspace);

Unpkg

Blockly को शामिल करने के बाद, जनरेटर को शामिल करना ज़रूरी है.

<script src="https://unpkg.com/blockly"></script>
<script src="https://unpkg.com/blockly/javascript_compressed"></script>
<script src="https://unpkg.com/blockly/python_compressed"></script>
<script src="https://unpkg.com/blockly/php_compressed"></script>
<script src="https://unpkg.com/blockly/lua_compressed"></script>
<script src="https://unpkg.com/blockly/dart_compressed"></script>
// Generate code for all the blocks in the workspace.
const jsCode = javascript.javascriptGenerator.workspaceToCode(workspace);
const pythonCode = python.pythonGenerator.workspaceToCode(workspace);
const phpCode = php.phpGenerator.workspaceToCode(workspace);
const luaCode = lua.luaGenerator.workspaceToCode(workspace);
const dartCode = dart.dartGenerator.workspaceToCode(workspace);

लोकल स्क्रिप्ट

Blockly को शामिल करने के बाद, जनरेटर को शामिल करना ज़रूरी है.

<script src="blockly_compressed.js"></script>
<script src="javascript_compressed.js"></script>
<script src="python_compressed.js"></script>
<script src="php_compressed.js"></script>
<script src="lua_compressed.js"></script>
<script src="dart_compressed.js"></script>
// Generate code for all the blocks in the workspace.
const jsCode = javascript.javascriptGenerator.workspaceToCode(workspace);
const pythonCode = python.pythonGenerator.workspaceToCode(workspace);
const phpCode = php.phpGenerator.workspaceToCode(workspace);
const luaCode = lua.luaGenerator.workspaceToCode(workspace);
const dartCode = dart.dartGenerator.workspaceToCode(workspace);

कोड जनरेट करें

कोड जनरेट करने के लिए, जनरेटर के workspaceToCode फ़ंक्शन का इस्तेमाल करें.

const code = javascriptGenerator.workspaceToCode(workspace);

लगातार अपडेट

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

const supportedEvents = new Set([
  Blockly.Events.BLOCK_CHANGE,
  Blockly.Events.BLOCK_CREATE,
  Blockly.Events.BLOCK_DELETE,
  Blockly.Events.BLOCK_MOVE,
]);

function updateCode(event) {
  if (workspace.isDragging()) return; // Don't update while changes are happening.
  if (!supportedEvents.has(event.type)) return;

  const code = javascriptGenerator.workspaceToCode(workspace);
  document.getElementById('textarea').value = code;
}

workspace.addChangeListener(updateCode);

प्रस्तावना या पोस्टस्क्रिप्ट कोड जोड़ना

कोड जनरेट करने के बाद, आपके पास जनरेट किए गए कोड की शुरुआत से पहले या आखिर में कोड शामिल करने का विकल्प होता है.

let code = javascriptGenerator.workspaceToCode(workspace);
// Add a preamble and a postscript to the code.
const preamble = 'import {MyLibrary} from \'/path/to/my/library\';\n'
const postscript = 'MyLibrary.myKickoffFunction();\n';
code = preamble + code + postscript;

प्रीऐंबल कोड का इस्तेमाल आम तौर पर, कोड की शुरुआत में बाहरी परिभाषाएं शामिल करने के लिए किया जाता है. पोस्टस्क्रिप्ट कोड का इस्तेमाल आम तौर पर, कोड के आखिर में फ़ंक्शन को कॉल करने के लिए किया जाता है, ताकि व्यवहार शुरू किया जा सके.

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

कोड लागू करना

कोड जनरेट करने के बाद, आपको यह तय करना होगा कि इसे कैसे लागू किया जाए. इसे लागू करने का तरीका, ऐप्लिकेशन के हिसाब से अलग-अलग होता है. साथ ही, यह Blockly के दायरे से बाहर है.

अगर आपको JavaScript कोड लागू करना है, तो JavaScript जनरेट करना और उसे लागू करना लेख पढ़ें. इसमें JavaScript कोड जनरेटर की कुछ खास सुविधाओं के साथ-साथ JSInterpreter के बारे में बताया गया है. Blockly टीम, JavaScript को सुरक्षित तरीके से चलाने के लिए इसका इस्तेमाल करने का सुझाव देती है.

अन्य भाषाओं के लिए, दूसरे टूल की ज़रूरत होती है.