برنامه شما می تواند در هر زمانی کد تولید کند. به عنوان مثال، ممکن است زمانی که کاربر نهایی روی دکمه ای کلیک می کند یا هر بار که کاربر تغییری ایجاد می کند، کد تولید کند.
برای مروری بر تولید کد، به تولید کد مراجعه کنید.
یک تولید کننده کد زبان وارد کنید
برای تولید کد، به یک تولید کننده کد زبان نیاز دارید. شما می توانید تولید کننده کد زبان را با هر یک از روش های زیر وارد کنید.
ماژول ها
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 است.
اگر می خواهید کد جاوا اسکریپت را اجرا کنید، به ایجاد و اجرای جاوا اسکریپت مراجعه کنید. در اینجا برخی از ویژگی های خاص تولید کننده کد جاوا اسکریپت و همچنین JSInterpreter که تیم Blockly آن را به عنوان راهی برای اجرای ایمن جاوا اسکریپت توصیه می کند، بحث می کند.
زبان های دیگر به ابزارهای دیگری نیاز دارند.