Я просмотрел документацию Workspace
и попытался использовать метод newBlock
следующим образом:
var block = workspace.newBlock("string_length")
, чтобы добавить пользовательский блок, который определяется следующим образом:
Blockly.Blocks['string_length'] = {
init: function() {
this.jsonInit({
"message0": 'length of %1',
"args0": [
{
"type": "input_value",
"name": "VALUE",
"check": "String"
}
],
"output": "Number",
"colour": 160,
"tooltip": "Returns number of letters in the provided text.",
"helpUrl": "http://www.w3schools.com/jsref/jsref_length_string.asp"
});
}
};
Blockly имеет тенденцию вызывать исключение, когда имя прототипа блока не распознается, но, похоже, распознает его и присваивает его уникальный идентификатор и другую информацию.
Блок оказался не виден даже после попытки добавить его в топблоки.