An open API service indexing awesome lists of open source software.

https://github.com/meteor/html5

Event-driven HTML5 Parser in Javascript
https://github.com/meteor/html5

Last synced: 5 months ago
JSON representation

Event-driven HTML5 Parser in Javascript

Awesome Lists containing this project

README

        

HTML5 Parser for node.js
========================

Example (With jQuery!)
----------------------

/* Before you run this, run:
git submodule update --init
(cd deps/jquery; rake)
*/
var HTML5 = require('html5'),
Script = process.binding('evals').Script,
util = require('util'),
fs = require('fs'),
jsdom = require('jsdom'),
window = jsdom.jsdom(null, null, {parser: HTML5}).createWindow()

var parser = new HTML5.Parser({document: window.document});

var inputfile = fs.readFileSync('doc/jquery-example.html');
parser.parse(inputfile);

jsdom.jQueryify(window, __dirname + '/deps/jquery/dist/jquery.js', function(window, jquery) {
Script.runInNewContext('jQuery("p").append("Hi!")', window);
util.puts(window.document.innerHTML);

});

Interesting features
--------------------

* Streaming parser: You can pass `parser.parse` an `EventEmitter` and the
parser will keep adding data as it's received.

* HTML5 parsing algorithm. If you find something this can't parse, I'll want
to know about it. It should make sense out of anything a browser can.

Installation
-------------

Use `npm`, or to use the git checkout, read on.

You'll need to fetch dependencies or initialize git submodules if you're
pulling this from my git repository.

npm install

and give it a run:

npm test

(At time of this writing, 1800 tests pass)

Git repository at http://dinhe.net/~aredridel/projects/js/html5.git/