谷歌手册
https://developers.google.cn/blockly/guides/create-custom-blocks/overview
简单实现
https://blog.csdn.net/tomato3351/article/details/104916879
深度扩展
https://zhuanlan.zhihu.com/p/114054002
1、C:\makerAiBlocks\blocks\langkongai.js定义块的形状。
新块形状可以参考原块,或用file:///C:/maker/AiBlocks/demos/blockfactory_old/makeblock.html 设计
// zbar 条形码识别 zbardecode
{
"type": "zbardecode",
"message0": "zbar decode %1",
"args0": [
{
"type": "input_value",
"name": "imgdata",
}
],
"output": null,
"colour": 210,
"tooltip": "say something aloudly sync",
"helpUrl": "http://www.example.com/"
},
2、C:\maker\AiBlocks\generators\python\langkongai.js写自动生成的代码
新块形状生成代码可以参考原块,或用file:///C:/maker/AiBlocks/demos/blockfactory_old/makeblock.html 设计
Blockly.Python['zbardecode'] = function(block) {
var value_imgdata = Blockly.Python.valueToCode(block, 'imgdata', Blockly.Python.ORDER_ATOMIC);
// TODO: Assemble Python into code variable.
Blockly.Python.definitions_['import_zbar'] = 'import zbar';
var code = 'zbar.decodeDisplay' + '(' + value_imgdata + ')\n';
return [code, Blockly.Python.ORDER_NONE];
};
3、C:\maker\AiBlocks\langkongai\index.html定义用户界面
新块加入用户界面可以参考原块
<block type="zbardecode"></block>
4、多国语言支持C:\maker\AiBlocks\msg
C:\makerAiBlocks\blocks\langkongai.js中字符串 用BKY_开头,其他地方不用
messages.js 默认显示 (可以不做)
json\en.json zh-hans.json 添加翻译(可以不做)
js\en.js zh-hans.js 添加翻译
langkongai\index.html 把积木类别名字也替换成 宏
!!可以使用blocksbatchTranslate.xlsx 批量生成(只要输入中英文就行)