Note - this document is still a work in progress. Please do
not make inline comments in the proposal - use the
DocumentsAndTemplatesDiscussion to make comments.
Amos Latteier (firstname.lastname@example.org) Note: I don't have
time to manage this project, just time to suggest it ;-) A
champion for this project will need to be found before it can
Zope lacks a concept of document and template. It only has
DTML Documents and DTML Templates which are almost
indistinguishable and don't support the idea of seperation of
content and presentation. It should be clear to newbies how to
create web pages and how to change their look and feel. Zope should
get this central and important task right. Also right now web pages
are incredibly inflexible -
there is no easy way to change a document's template
there is no concept of document format (e.g. structuredText)
you can't query a document's structure,
there is no standard document meta-data
no concept of filters,
no easy way to make documents that don't use DTML
no built-in caching
no built-in HTTP header management, etc.
I propose that Zope differentiate between documents and templates.
Documents should contain content, and templates should render
documents. Hopefully this distinction will allow a much clearer
and more flexible way of building web pages in Zope.
Here are some possible problems.
If we do away with DTMLDocumentx and DTMLMethodx it will be
hard to update old Zopes.
We could end up making things too complex. Right now you
just have to edit one object to create a web page.
Performance could be bad if we allow too complex and multi-
layered of a document rendering process. Hopefully caching
could help this.
This project should not solve all the associated problems. Right
now there are already projects to handle STXNG, caching, page
filters, and more. The main thing that this project needs to
Usuability issues. How can we make creating and editing web
pages comprehensible and poweful.
Architectural issues. How can we insure that web pages
are flexible, powerful and high performance enough.
I see two phases.
Figure out what we want in terms of features and usuability.
Develop software to meet those needs.
For the first phase I think we need
For the second phase we need
An architecture for page rendering
An API for documents and templates
An implementation of documents and possibly templates (it
may be that DTMLMethodx is an acceptable template object)
Updated online help docs, updated tutorial, updated book
material to cover the new objects and new system for
If we do away with DTMLDocumentsx we need some migration path.
Perhaps DTMLDocumentsx are split into a Document and a DTML