/jsonml-parse

A JavaScript module for converting markup in text form to JSONML, for Node.js and the browser

Primary LanguageHTML

#jsonml-parse

Convert markup (HTML) in text form to JSONML.

Travis CI Build Status Dependency Status

NPM Module

Browser support

##Example

var parse = require('jsonml-parse');
parse('<button class="btn">Awesome</button>', function(err, data) {
    console.dir(data);
    //-> ["button", { "class": "btn" }, "Awesome"]
});

Install

With npm do:

npm install jsonml-parse

jsonml-parse also works in the browser, both via browserify and as a stand-alone script:

<script src="http://wzrd.in/standalone/jsonml-parse@latest"></script>

Usage

var parse = require('jsonml-parse');

jsonml-parse exposed two different API styles: callback and stream.

parse(markup, callback)

Parses the markup string and invokes callback when done. callback is treated as a node-style callback, i.e. the first argument will always be the error object (null on success), and the second will always be the JSONML result. Note: If markup contains multiple top-level nodes they will be wrapped in an array before being passed to callback. This will also be the case if your markup has leading and/or trailing whitespace/text. For consistent resuls be sure to String#trim() the markup before passing it to parse().

var stream = parse()

Returns a new transform stream which you will write the markup to, and read the JSONML from. Note: Each top-level node will be emitted as separate 'data' events. Any whitespace/text before, after, or in between top-level nodes will be treated as a separate top-level nodes, so be sure to handle accordingly in your data event handlers.

CLI

jsonml-parse also comes with a CLI tool (jsonmlparse):

$ jsonmlparse --help

Usage: node jsonmlparse [file] [options]

file     The file containing the markup to convert to JSONML, will read from stdin if not specified

Options:
   -o, --output   Output file, will send to stdout if not specified
   --version      Print version and exit

Example:

curl www.bbc.co.uk | jsonmlparse > bbc.json