0.4.4 • Public • Published


    Travis AppVeyor Codecov npm

    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...

    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 build

    Using 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 watch

    Then, 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"


    npm i ohm-builder

    DownloadsWeekly Downloads






    Last publish


    • nfischer