[patch] plugin support for JTidy

We (http://www.porivo.com) are adding JavaScript support to our web testing 
software using the Rhino parser from the Mozilla project 
(http://www.mozilla.org/rhino/doc.html).  Since browsers parse JavaScript 
inline with HTML, we needed the ability to view each Node as it is generated 
by Tidy.  And since document.write can generate dynamic content that must be 
parsed before the remaining HTML in the buffer, we also needed the ability to 
prepend content to the HTML stream.

I have made a few additions to the Tidy package to allow this integration.  
The patch includes two new files and about 10 new lines of code in 
org.w3c.tidy.Node.java and org.w3c.tidy.StreamInImpl.  The patch does not 
introduce any new dependencies and should have a negligible performance 
impact in the average case.

While we use these modifications to add JavaScript support, there are a number 
of other possible applications for the expanded ability to interact with Tidy 
at parse time.

Implementation details:

I added a NodeHandler interface to the org.w3c.tidy package which specifies a 
method for viewing and manipulating Nodes and a method for returning dynamic 
content to prepend to the stream.  The NodeHandlerStore class is a Singleton 
that manages registration of NodeHandler implementations.

I modified Node.insertNodeAtEnd(Node element, Node node) to send the nodes to 
all NodeHandler implementations.  I also modified 
StreamInImpl.readCharFromStream to check all NodeHandler implementations for 
any buffered dynamic content before reading from the HTML stream.

Let me know if you have any questions.

Thanks,
Ryan

Ryan Breen
Porivo Technologies, Inc.
919.806.0566  |  ryan@porivo.com
www.porivo.com

Measuring end-to-end Web performance.

Register for a FREE Performance appraisal:
http://www.porivo.com/peerReview/eval.html

Received on Monday, 25 February 2002 10:10:54 UTC