Automation that clicks!
This repository contains the files and tooling for building the Blockly app that is used to create automations on Adafruit IO.
The files are organized into directories:
/app
the source files for the application/src
the tooling for developing and building the application/docs
the tooling and configuration for building the app documentation
Node v22.x is expected, but other versions may work.
git clone https://github.com/adafruit/io-actions
cd io-actions
npm i
npm start
Export a Blockly application:
npm run export:app
Export the documentation site:
npm run docs:export
Our custom Blockly application lives at /app
This is where we create new workspaces, toolboxes, and blocks, as well as block elements like fields, inputs, mixins, validators, generators, etc.
TODO: info about generating, editing, and testing definition files
Our documentation site is a VitePress install that lives at /docs
We run a task to generate the docs site markdown files based on the definition
files from /app
.
TODO: info about generating, testing, and deploying the docs site
All of our custom tooling lives at /src
These are the files that translate and bundle our easy definition formats into full Blockly application bundles.
Some benefits of this tooling include:
- expressive DSL: block definitions look like the blocks they create
- keep related things together (Locality of Behavior)
- higher-level idioms for common interactions
TODO: more info about how the dev tooling is organized and extended