Supports JavaScript, PHP, Dart, Lua and Python generators.
Live demo with async locales
yarn add node-blockly Node.js
All generators
var Blockly = require('node-blockly');Or you may use standalone generators to decrease memory usage
var Blockly = require('node-blockly/lua');Browser
All generators
var Blockly = require('node-blockly/browser');Node.js
var Blockly = require('node-blockly'); var xmlText = `<xml xmlns="http://www.w3.org/1999/xhtml"> <block type="variables_set"> <field name="VAR">blockly</field> <value name="VALUE"> <block type="text"> <field name="TEXT">Hello Node.js!</field> </block> </value> </block> </xml>`; try { var xml = Blockly.Xml.textToDom(xmlText); } catch (e) { console.log(e); return } var workspace = new Blockly.Workspace(); Blockly.Xml.domToWorkspace(xml, workspace); var code = Blockly.JavaScript.workspaceToCode(workspace); console.log(code) Compiled result
var blockly; blockly = 'Hello Node.js!';Browser
import Blockly from 'node-blockly/browser'; import De from 'node-blockly/lib/i18n/de'; Blockly.setLocale(De)Dynamic imports also works but Blockly doesn't re-render workspace. You must re-render it manually after locale loaded