======= Changes ======= 0.3.3 (2008-12-02) ================== Bug fixes: - file-specific context variables were not set during template evaluation - fixed file positions shown in template traceback supplements skewed by splitting off scripts from files' beginnings API: - added ``input`` request attribute which is a file-like object from which to read the request body - added ``headers`` request attribute which is a namespace of HTTP headers with leading ``HTTP_`` removed - optionally pre-fill ``response_headers`` namespace with response headers set earlier by the server environment Organization: - added setup for generating HTML documentation using Sphinx 0.3.2 (2008-01-08) ================== User-visible: - more helpful tracebacks for broken page templates - None is available in the page template evaluation context API: - added request configuration parameter immediate_result that makes the request return the unmodified unicode page body to ease further processing - page templates raise ValueError when constructed from broken template text Organization: - simplified setup.py: cleaned up egg contents, set zip_safe flag, removed provides flag which is not supported by Python 2.4 - Un-declared the feedparser dependency since that egg is awkward to install using zc.buildout. The feeds tool will stay until 0.4 for compatibility. 0.3.1 (2007-12-07) ================== User-visible: - tools: added the Metadata.mtime method which returns the current input file's modification time as a datetime object Bug fixes: - Request.render_template uses full context for rendering a template - Documented restriction to main_interpreter when run through mod_python. API: - renamed request method interpret_template to render_template - Request.traverse and Request.__call__ accept additional context as keyword arguments, the WSGI interface accepts it as a mapping named ophelia.context in the environ dictionary - console script entry points accept defaults for some command line options - tools: made Metadata.bump_date accept a datetime object Organization: - simplified buildout configuration 0.3 (2007-07-06) ================ User-visible: - a WSGI application running Ophelia was added along with a basic wsgiref-based server running that application - a script for dumping a single Ophelia-generated page to stdout - use restructured text format for documentation - scripts are now allowed in macro files - more informative error pages and logs - configuration options changed from CamelCase to lower_case Bug fixes: - Apache-generated directory indexes and PHP pages work now. This needs at least version 3.3 of mod_python. - actually use the template text passed to StopTraversal as a template API: - renamed modules, moved classes between modules: + publisher.Namespace -> util.Namespace + template -> input + apache -> modpython + publisher.PageTemplate* -> pagetemplate.PageTemplate* + publisher.Publisher -> request.Request, publisher -> request, also renamed script variable __publisher__ -> __request__ - current template moved from request member (template) to pre-defined script and TALES variable __template__ - request.Redirect exception has an option for replacing the path portion of the target URL (saves the client some urlparse acrobatics) and uses the original request's complete URI as a default base for the target - combined request.StopTraversal exception parameters into one, text - added methods insert_template and interpret_template to request, reduced load_macros signature to a single relative file name - added the next_name request member as a temporary solution for overriding the file or directory read during the next traversal step - replaced request member file_path by dir_path as that's simpler to use - store environment namespace on request as member env instead of the Apache request Code: - use zope.pagetemplate instead of fiddling with the TAL engine directly - use zope.exceptions instead of log_error to get supplemented tracebacks and cleaner code - use zope.interface to formally specify the API exposed to user code - some clean-up Organization: - made egg name lower case - made the ophelia egg require needed parts of Zope by egg dependencies - added svn:ignore property - set up a zc.buildout environment for a development installation - added tests 0.2 (2007-02-04) ================ User-visible: - made template and script encodings and the index template name configurable from Apache config - renamed SitePrefix config variable to "Site" - cleaned up pre-defined script variables, introduced __publisher__ and __file__ - made script variables directly usable in templates - updated and improved documentation and example site - switched configuration to using Location directives to get rid of dummy static directories and index.html files - added optional redirection of URLs ending with index page to directories - added ophelia.tool.feed, providing a download function using the Universal feedparser package, and a feed loader for using the feeds downloaded Bug fixes: - correctly compute ETags from unicode content - fixed a typo in the example's CSS - fixed a missing trailing slash in the site variable and spurious leading slashes in the traversal history entries which broke URL synthesis - made localized dates with non-ASCII chars in month names usable with templates by adding ophelia.util.strftime - made the publisher available to functions called from inside templates API: - made ophelia.publisher.Namespace subclass dict - turned publisher and file splitter into objects accessible from scripts - removed thus obsolete ophelia.oapi module - added set_chapter() to navigation tool, removed the zoo of URI builders - added Redirect exception - renamed methods to get rid of camel case and comply with current PEP 8 - added ophelia.util with an strftime function that returns unicode Code: - modularized publishing logic - straightened out handling of URL and file paths - replaced file() calls by open() calls Organization: - added change log - moved roadmap from docs to distribution root, added README.txt to root - started using setuptools and distributing Ophelia as a Python egg - moved opheliatools package to ophelia.tool for minimal namespace impact 0.1 (2006-07-23) ================ initial "works for me" release .. Local Variables: .. mode: rst .. End: