CHANGES
2000-12-29
Refactored invocation structure, fixing
2000-12-17
Refactored to work with PyXML 0.6.2 and 4Suite 0.10 (the latter untested). Output now XML compliant, including prolog.
HiperDom properties now require a namespace declaration, the namespace is
set to uri:hiperdom
. Documentation and example file have been updated to
reflect this.
2000-11-16
Wrote the ZUnit tests for the DataObject class in DataObjectTests.py. Releasing 0.3.
NEXT: the next step isn't on the Product itself, but a documentation project for HiperDom. After there is decent documentation (not that the HelpSys is not decent, but it's hardly introductory, it's quick reference) we'll get back to improving the Product, probably adding traversal and parameter passing.
2000-11-14
Wrote unit tests for ZUnit, and fixed some bugs found in the tests. This release will be 0.2.5, with 0.3 being out when DataObjects have tests.
2000-10-06
Created a draft of the DataObjects Hiperl�gica wants. To be very brief, you use a DataObject as a data holder, and then you just view it trough its URL and it will use a template to render this data. There are also filters, but read the addForm for that one :-)
2000-10-05r2
This version can be included as a subtemplate from inside DTML. Releasing 0.2.
2000-10-05
Fixed dangling reference to html_builder.py which was removed. Releasing 0.1.1 bugfix.
2000-09-30
Tested this version at Hiperl�gica, fixed a few typos and added the COPYING file; we finally gave up on the ZPL and settled for a MIT-X11 license (which is ZPL-compatible). Releasing 0.1.
NEXT: make up our minds on traversal and parameter passing (check the HiperDom Wiki if you don't know what I'm talking about).
2000-09-26
Added docstrings to the modules and the main class; rearranged the methods of HiperDomTemplate to make the class more readable, and added separating category comments.
NEXT: figure out how to apply the ZPL and make the 0.1 release.
2000-09-23
Ditched restrictedTraverse() because it doesn't use the authenticated environment. Ugh. Fell back to aq_acquire, and will have to add traversal manually later.
Had to add keyword arguments to index_html and __str__ so that we can get "parameters" from the call -- oops.
Changed the order of index_html slightly to avoid setting the content type if there was a Zope error.
Implemented hdom:loop and hdom:method; the spec is met! :-D
Added HelpSys documentation.
NEXT: code cleanup, specially the methods of HiperDomTemplate should be put in some order (by category?); copyright notices and release 0.1
2000-09-22r2
We look up names using Traversable.restricetedTraverse(), and call them with apply (obj, (context, REQUEST), assets) if it is callable.
In consequence, hdom:text works as per the spec.
I also implemented hdom:condition.
Split index_html in three: index_html, setContentType (also called by manage_getTemplate) and __str__. Now index_html just calls setContentType then returns __str__; so you can call a template from inside another template or from DTML without it touching your RESPONSE (because this calls __str__ instead of __call__). Uh, I think :-)
Content-type handling is more robust; now we first check for a property named content_type (after the homonimous property in Image and File), then checks the HTML property and finally checks if the root element is .
Parsing HTML was disabled because HtmlBuilder is broken (it cripples attributes containing colons in their names). Sorry, you'll have to use xHTML for now. There are good free tools to convert HTML->xHTML and SGML->XML.
NEXT: check the __call__/__str__ dichotomy, perhaps study the sources to dtml-var. Test calling a template in hdom:text (I know it will break, because it will call __call__ and it should call __str__). Fix it.
2000-09-22
The "strategy" API is in place; strategies are objects which do the actual processing of the hdom:xxx directives. It already processes hdom:dummy directives correctly on fullDom strategy (the one used in index_html) and "hunts" for assets correctly on assetHunter strategy (used to get assets for hdom:text partial replacements). On textRenderer and fullDom strategies, the method to handle hdom:text is halfway done - pending the actual evaluation of the name in the Zope context. I guess I'll have to study the sources to DocumentTemplate for that.
Decent comments and docstrings are also halfway.
Had to fix a bug in xml.dom.core for pickling to work...
NEXT: evaluate names in the Zope context, and push assets on it
2000-09-21
It builds a DOM tree from the text. The API is in place, and all the management stuff actually works (except for things that depend on rendering the HiperDom). It can also return a "normalized" (or "xmlized") version of the source text.
NEXT: process the directives
2000-09-20:
first version. It imports successfully, you can create objects, it has an
icon, an edit page, an Expand
page, and a HTML
property. You can enter
text and it will be stored.
NEXT: build DOM, refine the API