מחוללי קוד

רוב האפליקציות של Blockly מחייבות את התוכנה של המשתמש לתרגם לשפת תכנות. הפעולה הזו מתבצעת בצד הלקוח על ידי Blockly.

בתהליך יצירת קוד

בשלב הראשון יש לכלול את המחולל של השפה הרלוונטית. החסימה כוללת את המחוללים הבאים:

  • JavaScript
  • Python
  • PHP‏
  • Lua
  • Dart

אפשר לייבא את המחוללים ולהשתמש בהם באחת מהשיטות הבאות.

מודולים

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';

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>
const jsCode = javascript.workspaceToCode(workspace);
const pythonCode = python.workspaceToCode(workspace);
const phpCode = php.workspaceToCode(workspace);
const luaCode = luna.workspaceToCode(workspace);
const dartCode = dart.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>
const jsCode = javascript.workspaceToCode(workspace);
const pythonCode = python.workspaceToCode(workspace);
const phpCode = php.workspaceToCode(workspace);
const luaCode = lua.workspaceToCode(workspace);
const dartCode = dart.workspaceToCode(workspace);

יצירה בזמן אמת

יצירת קוד היא פעולה מהירה במיוחד, כך שאין נזק בקריאה לפונקציה הזו לעיתים קרובות. שיטה נפוצה היא ליצור קוד ולהציג אותו בזמן אמת על ידי הוספת listener לאירוע השינוי של Blockly:

import {javascriptGenerator} from 'blockly/javascript';
function updateCode(event) {
  const code = javascriptGenerator.workspaceToCode(workspace);
  document.getElementById('textarea').value = code;
}
workspace.addChangeListener(updateCode);

מידע נוסף זמין באירועים.