plates https://github.com/flatiron/plates
cheerio https://github.com/MatthewMueller/cheerio

On Wednesday, April 25, 2012 5:04:27 PM UTC-7, Luke Scott wrote:
>
> I'm working on a project that makes use of V8. For this project I'm not 
> using Node, but what I need is probably something people using Node could 
> benefit from.
>
> What I need is an efficient light weight "HTML5 DOM pre-processor". 
> Basically I need to expose an HTML5 based DOM to V8 without a full browser 
> stack. This would provide the "document" object (with getElementById, 
> querySelector, etc...), Level 1 DOM (perhaps Level 2), and HTML5 form 
> validation (where it can be invoked by JavaScript with something like 
> checkValidity). It would _not_ pull external resources (images, css files, 
> javascript files, etc...), execute inline JavaScript, compute styles, or 
> have events. It would simply be a way to load an HTML document on the 
> server into a DOM tree and execute external (basic) JavaScript on it (that 
> can be re-used on the client side).
>
> The purpose is to modify the DOM: Remove/add/modify elements. Example: 
> Repeating a div, populating form values, and validating input based on the 
> fields in the DOM and the set values. You could use querySelector to select 
> all the fields in the document and populate them from an external source 
> (this does two things: Populates input fields to export to the browser and 
> validates incoming input).
>
> I haven't found much in C++ as far as an HTML5 parser goes. The closest 
> I've been able to find is validator.nu, which is written in Java - 
> Mozilla has a tool that converts this parser into C++. Webkit's parser is 
> also very well integrated into the browser. Not sure about Mozilla's 
> implementation, but I imagine not as integrated as Webkit. PhantomJS uses 
> webkit, so it has a full browser stack. 
>
> I've looked at "user land" solutions such as jsdom. Someone on the jsdom 
> mailing lists recommended looking at dom.js. The problem with these 
> solutions is they live in the V8 context. This isn't as much of a problem 
> for Node.js users since the whole application is based on the V8 context... 
> But in my case I'm using a (mostly vanilla) V8 context to execute 
> sand-boxed user plugins. I need to be able to throw away a V8 
> instance/context and preserve the DOM.
>
> The goal, besides what I've mentioned above, is to create a library that 
> isn't specific to Node.js or even V8. Something like "libhtml5 + CSS3 
> selectors (non-gui ones) + input validation" that would be more appropriate 
> for html than "libxml2 + xpath".
>
> (The library would be tied to V8/Node through bindings).
>
> Is anyone interested in working on such a project?
>
> Luke
>
>

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to