پلاگین یک قطعه کد مستقل است که عملکردی را به 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
نشان می دهد:
کد را از افزونه وارد کنید. نحوه انجام این کار به نحوه نصب افزونه بستگی دارد.
npm یا نخ
import Blockly from 'blockly'; import {registerFieldAngle} from '@blockly/field-angle';
unpkg
شما نیازی به استفاده از دستور
import
ندارید.مخزن کلون شده
import {registerFieldAngle} from 'path/to/plugin';
در صورت نیاز افزونه را راه اندازی کنید. افزونه هایی که فیلدهای سفارشی را ارائه می دهند اغلب از شما می خواهند که فیلد را ثبت کنید:
registerFieldAngle();
از افزونه استفاده کنید.
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' }, ]);
نسخه های افزونه
افزونهها در 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 به روز می کنید، بهتر است بررسی کنید که آیا هر یک از افزونه های شما می تواند به نسخه اصلی جدید نیز به روز شود.