blockly tools for playing with Jessie, Justin, JSON
In packages/parse/src, we have grammars for each of 3 layered languages:
- JSON -
quasi-json.js.ts- the base object grammar. - Justin -
quasi-justin.js.tsthe pure expression grammar (no loops). - Jessie -
quasi-jessie.js.tsthe top-level module grammar.
In a new package, make Blockly-based tooling (including web-based tools for use by students learning the language) for each. For reference:
Separate material for users such as getting started in the README.md vs for developers such as how to test in CONTRIBUTING.md.
The code should be documented concisely: don't repeat what the code says. Only add docs that an experienced JS dev would find cost-effective to maintain. For each file, include a brief @file comment at the top with @see references to the main exports / functions, which have documentation that's visible in IDEs.
Include a para such as the above in CONTRIBUTING.md.
The new package should have npm scripts to
- run the tools in dev mode with hot module reloading
- build for deployment to static site hosting such as github pages, netflify, vercel, cloudflare, etc.
stretch goal:
- unit tests, especially re-using any existing examples or test materials
- batch tooling, to the extent that's conventional in the Blockly community
Don't go nutso with frameworks such as react. Vanilla JS should suffice.
By way of example, this is a blockly tool for the rho calculus subset of rholang.
- https://github.com/rchain/developer.rchain.coop/blob/master/rho-blockly.html
- https://github.com/rchain/developer.rchain.coop/blob/master/js/rhocalc-blocks.js
- https://github.com/rchain/developer.rchain.coop/blob/master/js/rhocalc-blocks.json
FYI: recent relevant news: