האפליקציה יכולה ליצור קוד בכל שלב. לדוגמה, הקוד יכול להיווצר כשמשתמש הקצה לוחץ על לחצן או בכל פעם שהמשתמש מבצע שינוי.
סקירה כללית על יצירת קוד זמינה במאמר יצירת קוד.
ייבוא של מחולל קודי שפה
כדי ליצור קוד, צריך גנרטור של קודי שפות. אפשר לייבא יוצרים של קוד בשפות באמצעות כל אחת מהשיטות הבאות.
מודולים
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);
עדכונים שוטפים
עדכונים שוטפים מאפשרים לכם להציג או להריץ את הקוד בכל פעם שהמשתמש מבצע שינוי. יצירת קוד היא פעולה מהירה, כך שאין לה השפעה משמעותית על הביצועים. כדי לעשות זאת, משתמשים בevent listener.
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;
בדרך כלל משתמשים בקוד של הקדמה כדי לכלול הגדרות חיצוניות בתחילת הקוד. בדרך כלל משתמשים בקוד Postscript כדי להפעיל פונקציות שמתחילות את ההתנהגות בסוף הקוד.
אם הקוד שנוצר ניתן להרצה כפי שהוא, אין צורך לכלול מבוא או סיומת.
ביצוע קוד
אחרי שיוצרים את הקוד, צריך להבין איך להריץ אותו. ההחלטה איך לבצע את הפקודה היא ספציפית לאפליקציה, והיא לא נכללת בהיקף של Blockly.
אם רוצים להריץ קוד JavaScript, אפשר לעיין במאמר יצירה והרצה של JavaScript. כאן מפורטות כמה תכונות מיוחדות של מחולל הקוד של JavaScript, וגם JSInterpreter, שצוות Blockly ממליץ עליו כדרך להריץ JavaScript בצורה בטוחה.
בשפות אחרות נדרשים כלים אחרים.