پلاگین ها

پلاگین یک قطعه کد مستقل است که عملکردی را به Blockly اضافه می کند. به عنوان مثال، ممکن است یک فیلد سفارشی اضافه کند، یک تم جدید تعریف کند، یا یک رندر سفارشی ارائه دهد. پلاگین ها به طور کلی بسته بندی و از طریق npm توزیع می شوند.

برای معرفی سریع افزونه‌ها، به بحث مرور کلی افزونه‌ها (2021) مراجعه کنید.

اگر می خواهید افزونه خود را ایجاد کنید، به افزودن افزونه مراجعه کنید.

پلاگین های شخص اول و شخص ثالث

پلاگین های شخص اول توسط تیم Blockly پشتیبانی می شوند و تحت دامنه @blockly در npm منتشر می شوند. آنها به گونه ای طراحی شده اند که در طیف گسترده ای از برنامه های Blockly قابل استفاده باشند.

افزونه های شخص ثالث به طور مستقل نگهداری و منتشر می شوند. آنها ممکن است پیچیده‌تر، آزمایشی‌تر یا برای محدوده محدودتری از برنامه‌های Blockly باشند.

یک افزونه پیدا کنید

  • از Blockly Plugins & Demos دیدن کنید، که دارای دموهای زنده پلاگین های شخص اول است.

  • npm را برای keyword:blockly-plugin جستجو کنید. پلاگین هایی با دامنه @blockly توسط تیم Blockly منتشر شده است. برای نتایج گسترده‌تر، keyword:blockly یا blockly جستجو کنید.

  • دایرکتوری blockly-samples/plugins را در GitHub ببینید، که مخزن پلاگین های شخص اول است. هر افزونه دارای یک README است که رفتار و کاربرد مورد نظر آن را توصیف می کند.

یک افزونه نصب کنید

توصیه می کنیم پلاگین ها را با یک مدیریت بسته مانند npm یا yarn نصب کنید. این امر دریافت به روز رسانی را آسان می کند.

  • یک افزونه با یک مدیریت بسته نصب کنید

    npm

    npm install @blockly/field-angle
    

    نخ

    yarn add @blockly/field-angle
    
  • یک افزونه بدون مدیر بسته نصب کنید

    unpkg

    <script src="https://unpkg.com/@blockly/field-angle"></script>
    

    همچنین می توانید مخزن GitHub را که حاوی افزونه است کلون کنید. برای پلاگین های شخص اول، این blockly-samples است.

README افزونه را بررسی کنید تا ببینید آیا دستورالعمل نصب اضافی وجود دارد یا خیر.

از یک افزونه استفاده کنید

هر افزونه متفاوت است، بنابراین برای اطلاعات در مورد نحوه استفاده از آن افزونه به README پلاگین مراجعه کنید. مثال زیر نحوه استفاده از افزونه @blockly/field-angle نشان می دهد:

  1. کد را از افزونه وارد کنید. نحوه انجام این کار به نحوه نصب افزونه بستگی دارد.

    npm یا نخ

    import Blockly from 'blockly';
    import {registerFieldAngle} from '@blockly/field-angle';
    

    unpkg

    شما نیازی به استفاده از دستور import ندارید.

    مخزن کلون شده

    import {registerFieldAngle} from 'path/to/plugin';
    
  2. در صورت نیاز افزونه را راه اندازی کنید. افزونه هایی که فیلدهای سفارشی را ارائه می دهند اغلب از شما می خواهند که فیلد را ثبت کنید:

    registerFieldAngle();
    
  3. از افزونه استفاده کنید.

    Blockly.common.defineBlocksWithJsonArray([
      {
        type: "my_angle_block",
        message0: "%1 degrees",
        args0: [
          {
            // Use @blockly/field-angle.
            type: "field_angle",
            name: "FIELDNAME",
            value: 45,
          },
        ],
        output: null,
        style: 'math_blocks'
      },
    ]);
    

    میدانی برای انتخاب زاویه از 360 درجه شماره گیری کنید.

نسخه های افزونه

افزونه‌ها در blockly-samples از نسخه‌سازی معنایی استفاده می‌کنند که برای استفاده از نسخه اصلی جدید نیاز به شکستن تغییرات دارد. هر پلاگین جدیدی که میمون هسته آن را وصله می کند نسخه اصلی 0 خواهد داشت که نشان دهنده توسعه اولیه است .

اکثر پلاگین ها بسته blockly را به عنوان یک peerDependency به جای dependency شامل می شوند. این به این دلیل است که ما فرض می کنیم که شما قبلا Blockly را نصب کرده اید. (استفاده از یک افزونه بدون استفاده از Blockly منطقی نیست.) این به شما امکان می دهد نسخه Blockly را خودتان مدیریت کنید، اما همچنین از شما می خواهد که package.json افزونه را بررسی کنید تا حداقل نسخه Blockly مورد نیاز آن را تعیین کنید. اگر افزونه ای برای نیاز به نسخه جدیدتر Blockly به روز شود، این یک تغییر قطعی محسوب می شود و نسخه اصلی آن افزایش می یابد.

هنگامی که یک افزونه را به package.json برنامه خود اضافه می کنید، پیش فرض این است که قبل از نسخه، یک caret اضافه شود:

"dependencies": {
  "@blockly/field-angle": "^5.0.12"
}

این به npm اجازه می‌دهد هر نسخه کوچکی را در نسخه ذکر شده یا بالاتر از آن نصب کند، بنابراین نسخه 5.0.20 یا 5.1.0 کار می‌کند، اما نسخه اصلی جدید مانند 6.0.1 اینطور نیست. هنگامی که به نسخه جدیدی از Blockly به روز می کنید، بهتر است بررسی کنید که آیا هر یک از افزونه های شما می تواند به نسخه اصلی جدید نیز به روز شود.