Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cmtegner/jsonml-parse
A JavaScript module for converting markup in text form to JSONML, for Node.js and the browser
https://github.com/cmtegner/jsonml-parse
cli javascript jsonml parse
Last synced: 6 days ago
JSON representation
A JavaScript module for converting markup in text form to JSONML, for Node.js and the browser
- Host: GitHub
- URL: https://github.com/cmtegner/jsonml-parse
- Owner: CMTegner
- Created: 2014-08-17T11:23:18.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2016-07-25T15:20:59.000Z (over 8 years ago)
- Last Synced: 2024-12-14T11:50:24.734Z (about 1 month ago)
- Topics: cli, javascript, jsonml, parse
- Language: HTML
- Homepage:
- Size: 99.6 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
#jsonml-parse
Convert markup (HTML) in text form to [JSONML](http://jsonml.org).
[![Travis CI Build Status](https://travis-ci.org/CMTegner/jsonml-parse.svg)](http://travis-ci.org/CMTegner/jsonml-parse) [![Dependency Status](https://david-dm.org/CMTegner/jsonml-parse/status.svg)](https://david-dm.org/CMTegner/jsonml-parse)
[![NPM Module](https://nodei.co/npm/jsonml-parse.png)](http://npm.im/jsonml-parse)
[![Browser support](https://ci.testling.com/CMTegner/jsonml-parse.png)](https://ci.testling.com/CMTegner/jsonml-parse)
##Example
```js
var parse = require('jsonml-parse');
parse('Awesome', function(err, data) {
console.dir(data);
//-> ["button", { "class": "btn" }, "Awesome"]
});
```## Install
With [npm](http://npmjs.org) do:
```bash
npm install jsonml-parse
````jsonml-parse` also works in the browser, both via [browserify](http://browserify.org) and as a [stand-alone script](http://wzrd.in/standalone/jsonml-parse@latest):
```html
```
## Usage
```javascript
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](http://nodejs.org/api/stream.html#stream_class_stream_transform) 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`):
```bash
$ jsonmlparse --helpUsage: 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:
```bash
curl www.bbc.co.uk | jsonmlparse > bbc.json
```