Permalink
Browse files

added notes and change the version number

  • Loading branch information...
1 parent 84b489d commit d1a5287ffb922452d2056b3cb5bb1cc6f9b8a97f tavis_rudd committed Sep 7, 2001
Showing with 64 additions and 38 deletions.
  1. +20 −2 TODO
  2. +6 −4 docs/src/customizing.tex
  3. +17 −28 docs/src/directives.tex
  4. +5 −2 docs/src/introduction.tex
  5. +14 −0 docs/src/links.tex
  6. +1 −1 docs/src/users_guide.tex
  7. +1 −1 src/Version.py
View
@@ -8,24 +8,42 @@ Cheetah TODO list
Languague Specification
================================================================================
+
+- come to a decision on the syntax and semantics of the #block, #redefine and
+ #data directives. There was discussion on the list of making a #define
+ directive that encapsulated all of this. See the archives for the end of Aug.
+
- firm up the autocalling and Unified Dotted Notation syntax rules
+
Implementation
================================================================================
+
+- make it possible to compile Cheetah directly into a Python module / class that
+ doesn't need to do any Cheetah parsing when it is initialized. This is
+ related to Ian and Mike's ideas for #define. One option is to generalize the
+ parsing/compiling infrastructure rework the ._codeGenerator() method so that
+ it can be used to generate code for any method of the Template object, rather
+ than just for the .respond() method. When compiling the .respond() method any
+ other methods that need to be compiled would be added to a stack that would be
+ processed and compiled one at a time.
+
- redesign and implement the Servlet Factory for Webware so the #extend directive
will work with .tmpl files as well as .py files
Test Suite
================================================================================
+- create the non-syntax related test cases
- write script that will run the test cases with both Python 2.0 and 2.1
- independent suite of test cases for NameMapper
- test cases for the PSP plugin
- test cases for the SkeletonPage framework
Documentation
================================================================================
-- finish all the empty sections (MO)
-- add examples to the Examples section (MO)
+- finish up the Webware section
+- finish documenting the Formatters and ErrorChecker frameworks
+- add examples to the Examples section
Website
================================================================================
@@ -122,10 +122,12 @@ \subsubsection{Error checking of placeholder tags}
('${a4}', 'Tue Aug 14 14:54:37 2001')]
\end{verbatim}
-The ErrorCheckers framework is intended to be used as test and debugging tool.
-They are relatively slow and should not be used in production systems with high
-loads. Furthermore, when they are used the caching framework is disabled. See
-Cheetah.ErrorCheckers if you want more on the ErrorChecker API.
+
+[\bf The ErrorCheckers framework is intended to be used as testing and debugging
+tool only. They are relatively slow and should not be used in production
+systems with high loads. Furthermore, when they are used the caching framework
+is disabled. See Cheetah.ErrorCheckers if you want more on the ErrorChecker API.
+}
@@ -243,33 +243,13 @@ \subsection{\#include}
#include raw source=$myParseText
\end{verbatim}
-By default, Cheetah wraps each chunk of \code{\#include} text inside a nested
+Cheetah wraps each chunk of \code{\#include} text inside a nested
\code{Template} object. These nested templates share the same \code{searchList}
-and macros as the top-level template. But, unlike PHP, their Cheetah code must be
-self-contained. For example, all \code{\#for} and \code{\#if} blocks started
+and macros as the top-level template. But, unlike PHP, their Cheetah code must
+be self-contained. For example, all \code{\#for} and \code{\#if} blocks started
inside an \code{\#include} must be terminated in that include. The same applies
-for \code{\#data}, \code{\#macro} and \code{\#raw}. Furthermore, \code{\#set}
-values are only visible inside the included code and \code{\#set} values from
-the top-level template are not visible in the included code.
-
-The argument ``\code{direct}'' can be used to tell Cheetah to parse the included
-code as part the top-level template rather than inside a nested \code{Template}
-object. In this case, there is no requirement that the included Cheetah code be
-self-contained and \code{\#set} values are visible throughout. Direct includes
-are also slightly faster. Note that direct includes cannot monitor for changes
-to the include src file.
-
-\begin{verbatim}
-#include direct includeFileName.txt"
-#include direct source=$myParseText
-\end{verbatim}
-
-Please note that \code{\#include} directives are processed at compile-time not
-run-time. Therefore, any \$placeholders used in them must be available at
-compile-time. The \code{\#set} directive is a run-time directive so you can't
-use it to specify the path of a file to include. If you need to do something
-like this please remember the philosophy behind Cheetah: Python for the complex
-tasks, Cheetah for the simple ones! Do it in Python.
+for \code{\#data}, \code{\#macro} and \code{\#raw}. \code{\#set}
+values are visible across includes.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{\#cache ... \#end cache}
@@ -284,9 +264,9 @@ \subsection{\#cache ... \#end cache}
<HEAD><TITLE>$title</TITLE></HEAD>
<BODY>
-$var ## dynamic - will be reinterpolated for each request
-$*var2 ## static - will be interpolated only once at start-up
-$*5*var3 ## timed refresh - will be updated every 5 minutes.
+$var ## dynamic - reinterpolated for each request
+$*var2 ## static - interpolated only once during 1st request
+$*5*var3 ## timed refresh - updated every 5 minutes
#cache
$var ## static
@@ -598,6 +578,9 @@ \subsubsection{Macro libraries}
\subsection{\#data ... \#end data}
\label{directives.data}
+[{\bf The syntax and semantics of this directive are currently under
+ review. They may change before the 1.0 release. }]
+
The \code{\#data} directive is a shortcut means of defining variables than be
used by \$placeholders in your template. It's contents can be any valid Python
code. The code contained in a \#data directive is exec'd in an empty namespace
@@ -682,6 +665,9 @@ \subsubsection{Dictionary merging}
\subsection{\#block ... \#end block}
\label{directives.block}
+[{\bf The syntax and semantics of this directive are currently under
+ review. They may change before the 1.0 release. }]
+
The \code{\#block} directive allows you to delimit sections of your template
that can be selectively reimplemented by sub-classes of the template. It is
very useful for selectively changing part of a template without having to
@@ -738,6 +724,9 @@ \subsection{\#block ... \#end block}
\subsection{\#redefine ... \#end redefine}
\label{directives.redefine}
+[{\bf The syntax and semantics of this directive are currently under
+ review. They may change before the 1.0 release. }]
+
When working with a large number of blocks it can be useful to write all the
redefinitions in one {\bf template extension} string and just feed this string
to the \code{Template.extendTemplate(extensionStr)} method at startup rather
@@ -161,9 +161,12 @@ \subsection{How mature is Cheetah?}
Here's a summary of known issues and aspects of the design that are in flux:
\begin{itemize}
-
-\item The \#data directive might be renamed. Ditto for the \#redefine directive.
+\item We're currently reviewing the syntax and semantics of the \#data, \#block
+ and \#redefine directives. These will most likely change before the 1.0
+ release. See the mailing list archives for the end of Aug 2001 for more
+ information.
+
\item Quoted string literals in \$placeholder argument sets is supposed to
follow the same rules as Python, but there are some bugs. 'string\'s'
stops at the second '. (Believed to be an easy fix.) """ ... """ and '''
View
@@ -30,6 +30,20 @@ \subsection{Cheetah Links}
\end{description}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{Third-party Cheetah Stuff}
+\label{links.cheetah}
+
+This is NOT a definitive listing of sites and products using Cheetah. If you
+have something to add to the list please send an email to
+\email{cheetahtemplate-discuss@lists.sf.net}.
+
+\begin{itemize}
+\item Steve Howell has written a photo viewer using Python.
+ \url{http://mountainwebtools.com/PicViewer/install.htm}
+\end{itemize}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Webware Links}
\label{links.webware}
@@ -2,7 +2,7 @@
\usepackage{moreverb} %% Verbatim Code Listings
\title{Cheetah Users' Guide}
-\release{0.9.8a3}
+\release{0.9.8a4}
\author{The Cheetah Development Team}
\authoraddress{\email{cheetahtemplate-discuss@lists.sourceforge.net}}
View
@@ -1 +1 @@
-version = '0.9.8a3'
+version = '0.9.8a4'

0 comments on commit d1a5287

Please sign in to comment.