إنشاء الرموز
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
إنشاء الرموز هو عملية تحويل الوحدات في مساحة عمل إلى
سلسلة من الرموز التي يمكن تنفيذها.
إنّ إنشاء الرموز البرمجية مهم للغاية، لأنّه هو ما يسمح للكتل
بتنفيذ إجراءات، مثل تقييم التعبيرات الحسابية أو تحريك شخصية
في متاهة أو ضبط إعدادات متجر على الإنترنت.
لا يمكنك "تشغيل" الوحدات مباشرةً. بدلاً من ذلك، يمكنك إنشاء سلاسل رموز ثم تنفيذها.
أدوات إنشاء رموز اللغات
لإنشاء رمز، عليك اختيار اللغة النصية التي تريد
إنشائها. ويعود السبب في ذلك إلى أنّ لكل لغة أداة إنشاء رموز خاصة بها.
أداة إنشاء رموز اللغة (المعروفة عادةً باسم أداة إنشاء الرموز) هي فئة
تعالج قواعد إنشاء الرموز الخاصة بلغة معيّنة، ولكن ليس لوحدة فردية. على سبيل المثال، يعالج
الأمر أمورًا مثل تنسيق التعليقات وزيادة المسافة البادئة للفقرات واقتباس سلاسل.
توفّر Blockly 5 أدوات مدمجة لإنشاء الرموز البرمجية:
- JavaScript ES5
- Python 3
- Lua 5.1
- Dart 2
- PHP 7
إذا لم تتضمّن هذه القائمة اللغة التي تريد إنشاء رمز لها، يمكنك
إنشاء أداة إنشاء رموز لغة مخصّصة. للحصول على مثال بسيط، يمكنك الاطّلاع على إنشاء رمز برمجي
أداة إنشاء مخصّصة، وهي أداة لإنشاء رمز برمجي
بلغة JSON. للحصول على مثال أكثر تعقيدًا، يمكنك الاطّلاع على أداة توليد رمز JavaScript. يُرجى العِلم أنّك تحتاج أيضًا إلى كتابة رمز برمجي لإنشاء وحدات لأي وحدات مدمجة تريد استخدامها.
أدوات إنشاء الرموز البرمجية
تتحمّل كلّ كتلة مسؤولية إنشاء رمزها الخاص. عند إنشاء قالب،
عليك كتابة أداة منفصلة لإنشاء رموز الكتل لكل لغة تريد
إتاحة استخدامها.
أداة إنشاء رمز الوحدات هي دالة تعرض رمز هذه الوحدة كسلسلة. على سبيل المثال، يعرِض المربّع الذي يقارن بين رقمَين سلسلة من
الشكل 'a < b'
، ويعرِض المربّع الذي يمثّل عبارة if سلسلة من
الشكل 'if (...) {\n...\n};\n'
.
import {javascriptGenerator} from 'blockly/javascript';
import {pythonGenerator} from 'blockly/python';
// Write block-code generators for JavaScript and Python.
javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) { /* ... */ };
pythonGenerator.forBlock['my_custom_block'] = function(block, generator) { /* ... */ };
يتمّ استدعاء أدوات إنشاء الرموز البرمجية من خلال أدوات إنشاء رموز اللغة.
لمزيد من المعلومات، يُرجى الاطّلاع على أداة توليد رمز المنع.
إنشاء الرمز البرمجي وتشغيله
يمكن لتطبيقك إنشاء رمز في أي وقت. على سبيل المثال، قد يتم إنشاء
الرمز عندما ينقر المستخدم النهائي على زر أو في كل مرة يُجري فيها المستخدم تغييرًا.
بعد إنشاء الرمز، عليك معرفة كيفية تنفيذه.
ويعتمد تحديد كيفية تنفيذها على التطبيق بشكل كبير، وهو خارج نطاق
Blockly.
لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء код وتنفيذه.
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-07-25 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-25 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eCode generation transforms Blockly blocks into executable code strings in various programming languages like JavaScript, Python, Lua, Dart, and PHP.\u003c/p\u003e\n"],["\u003cp\u003eBlockly offers built-in code generators for these languages, accessible through modules, Unpkg, or local scripts, along with the option to create custom generators.\u003c/p\u003e\n"],["\u003cp\u003eGenerating code involves defining how individual blocks translate to code in each target language, including handling fields, inner blocks, and code concatenation.\u003c/p\u003e\n"],["\u003cp\u003eCode generation can be triggered on demand or continuously as the user interacts with the blocks, allowing for dynamic updates and code execution.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can add preamble or postscript code to the generated output for including external definitions or initiating specific behaviors.\u003c/p\u003e\n"]]],["Code generation transforms visual blocks into executable code strings. A code generator handles language-specific formatting. Blockly offers built-in generators for JavaScript, Python, Lua, Dart, and PHP, accessible via modules, Unpkg, or local scripts. Custom generators are also supported. Each block's code generation rules must be defined per language. Generation occurs on demand or continuously via event listeners. Optional preamble/postscript code can be added. Execution of generated code is application-specific, and for JavaScript, JSInterpreter is suggested.\n"],null,["# Code generation is the process of turning the blocks on a workspace into a\nstring of code that can be executed.\n\nCode generation is extremely important, because it is what allows your blocks to\nactually *do* things, like evaluate arithmetic expressions, move a character\nthrough a maze, or configure an online shop!\n\nYou can't \"run\" blocks directly. Instead you generate code strings, and then\nexecute those.\n\nLanguage code generators\n------------------------\n\nTo generate code, you have to pick what text-based language you want to\ngenerate. This is because each language has its own code generator.\n\nA **language code generator** (commonly called a **code generator**) is a class\nthat handles the rules for generating code that are specific to a given\nlanguage, but not specific to an individual block. For example, it handles\nthings like formatting comments, indenting statements, and quoting strings.\n\nBlockly provides 5 built-in code generators:\n\n- JavaScript ES5\n- Python 3\n- Lua 5.1\n- Dart 2\n- PHP 7\n\nIf this list doesn't include the language you want to generate code for, you can\ncreate a custom language code generator. For a simple example, see the [Build a\ncustom generator](https://blocklycodelabs.dev/codelabs/custom-generator/index.html?index=..%2F..index#0) codelab, which creates a JSON language\ncode generator. For a more complex example, see the [JavaScript code\ngenerator](https://github.com/google/blockly/blob/master/generators/javascript/javascript_generator.ts). Note that you also need to write block-code\ngenerators for any built-in blocks that you want to use.\n\nBlock-code generators\n---------------------\n\nEach block is responsible for generating its own code. When you create a block,\nyou need to write a separate block-code generator for each language you want to\nsupport.\n\nA **block-code generator** is a function that returns the code for that block as\na string. For example, a block that compares two numbers returns a string of the\nform `'a \u003c b'` and a block that represents an if statement returns a string of\nthe form `'if (...) {\\n...\\n};\\n'`. \n\n import {javascriptGenerator} from 'blockly/javascript';\n import {pythonGenerator} from 'blockly/python';\n\n // Write block-code generators for JavaScript and Python.\n javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) { /* ... */ };\n pythonGenerator.forBlock['my_custom_block'] = function(block, generator) { /* ... */ };\n\nBlock-code generators are called by language code generators.\n\nFor more information, see [Block-code\ngenerators](/blockly/guides/create-custom-blocks/code-generation/block-code).\n\nGenerate and run code\n---------------------\n\nYour application can generate code at any time. For example, it might generate\ncode when the end-user clicks a button or every time the user makes a change.\n\nAfter you've generated the code, you need to figure out how to execute it.\nDeciding how to execute it is very application-specific, and outside the scope\nof Blockly.\n\nFor more information, see [Generate and run\ncode](/blockly/guides/app-integration/run-code)."]]