Bring ohm to your browser the easy way.
What's Ohm? Check it out.
This requires Node v4+
$ npm install --save-dev ohm-builder
What'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...
<script> tag only allows you to use the
src= attribute if you're
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 build
Using a watcher (recommended)
If you don't want to constantly reenter that command, check out
automatically recompile your project:
$ npm install --save-dev watch
Then, assuming your file is inside
src/, put this in
"scripts":// ..."build": "ohm-builder.js src/index.generator.html index.html""build:watch": "watch 'npm run build' src"