提供區塊定義程式庫的外掛程式是分享資訊的好方法 封鎖所有可重複使用的方塊如要將封鎖程式庫設為 我們制定了這些規範,
指南規範
- 讓使用者輕鬆安裝所有區塊,並讓使用者自行決定只安裝特定區塊或區塊片段。
- 讓使用者輕鬆安裝所有內容:只要提供 因此,如要安裝每個片段定義 (例如變動器、擴充功能、混合項目和欄位等)。你也可以 所提供的函式,可以安裝 外掛程式
- 請讓您選擇特定部分:您應該匯出所有 分為不同的區塊定義 讓使用者自行匯入所需資訊 類似自訂區塊
- 避免在外掛程式中使用連帶效果。
- 模塊、欄位、擴充功能和其他部分不應安裝為 載入外掛程式的副作用使用者應保有掌控權 像是安裝內容和安裝時間如此一來,使用者就能 不必擔心分段安裝 已安裝。
請使用 JSON 欄位註冊表,而非直接例項化新欄位。
不建議使用:直接例項化新欄位:
const myCustomBlock = { init: function() { this.appendDummyInput() .appendField(new Blockly.FieldNumber(123), 'NAME'); } }
建議 - JSON 欄位登錄:
export const myCustomBlock = { init: function() { this.appendDummyInput() .appendField(Blockly.fieldRegistry.fromJson({ name: 'field_number', value: 123, }), 'NAME'); } }
使用欄位註冊功能後,使用者就能更輕鬆地取代區塊中使用的欄位實作,而無需變更區塊定義。
請勿假設使用者已安裝的內容。
- 如果外掛程式需要自訂欄位或其他外掛程式,請自行在提供的
install
函式中註冊這些欄位。 - 不久之後,Blockly 將提供工具 已註冊的商品無錯誤。在此之前,建議您先查看已註冊的項目,再自行註冊擴充功能、變換器、混合器或欄位。
- 明確指出外掛程式或區塊定義所需的任何必要條件或依附元件。
- 如果外掛程式需要自訂欄位或其他外掛程式,請自行在提供的
建議您為每個提供的區塊提供產生器函式。
- 提供可立即使用的產生器函式,可讓使用者輕鬆使用方塊,而無須瞭解方塊的結構和設計。如果他們必須自行編寫產生器 函式,可能會導致每位使用者執行多餘的工作。
- JavaScript 是 Blockly 中最常使用的語言,因此如果您只提供一種語言,建議使用 JavaScript,除非您的區塊是針對特定語言建構,例如實作 Python 程式庫。
- 考慮張貼「需要協助」的訊息為您使用的語言 無法實作產生器函式, 只要使用者提供這些資訊
如果您為區塊提供安裝函式,可以接受選用的
generators
參數。如果使用者傳遞您支援的產生器例項,您可以自動安裝區塊程式碼產生器函式,並執行相關工作,例如新增保留字:// Your plugin's install function export const installMyCustomBlock(generators = {}) { Blockly.common.defineBlocks({my_custom_block: myCustomBlock}); if (generators.javascript) { generators.javascript.forBlock['my_custom_block'] = myCustomGeneratorFunction; generators.javascript.addReservedWords('specialReservedWord'); } } // How a user may install your block import {javascriptGenerator} from 'blockly/javascript'; import {installMyCustomBlock} from 'blockly-cool-blocks-plugin'; // installs the block definition and the javascript block-code generator installMyCustomBlock({javascript: javascriptGenerator});
意見回饋
如果不清楚如何在外掛程式中遵守這些規範, 請透過論壇通知我們!我們非常期待能看到你的封鎖程式庫 提供看法
請注意,目前並非所有提供封鎖定義的第一方外掛程式 但會要求新的外掛程式 外掛程式