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
