ohm-builder v0.4.4
Ohm-builder
Bring ohm to your browser the easy way.
What's Ohm? Check it out.
Installation
This requires Node v4+
$ npm install --save-dev ohm-builderWhat's the deal with HTML?
Ohm has steps on defining your grammar for either the browser or node, but not both. Don't like having two sets of steps? Keep reading...
HTML's <script> tag only allows you to use the src= attribute if you're
using a path to a javascript file, not an Ohm grammar. Let's fix that.
Now you can write your HTML with script tags like: <script type="text/ohm-js"
src="src/bash.ohm"></script>. Run this tool and you can statically generate a
new HTML file with the grammar included.
Why would I want this?
- Write your grammar once, use it in both the browser or NodeJS.
- Re-use someone else's ohm grammar as a simple npm dependency.
- Develop your browser code following the recommended steps on the repo, instead of figuring out some messy way to load your grammar in at run-time.
- Unit testing just got easier! Use NodeJS to run unit tests, even if you're developing for a project in the browser.
- Edit your grammar without dealing with all of the fuss of HTML.
Ok, so how do I use this?
Try it out as an npm script:
// put this in package.json
"scripts": {
// ...
"build": "ohm-builder.js src/index.generator.html index.html"
},$ # Make your edits in src/index.generator.html
$ # Then run this command to build index.html
$ npm run buildUsing a watcher (recommended)
If you don't want to constantly reenter that command, check out watch to
automatically recompile your project:
$ npm install --save-dev watchThen, assuming your file is inside src/, put this in package.json:
"scripts": {
// ...
"build": "ohm-builder.js src/index.generator.html index.html",
"build:watch": "watch 'npm run build' src"
},