%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Introduction} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Who should read this Guide?} The Cheetah Developers' Guide is for those who want to learn how Cheetah works internally, or wish to modify or extend Cheetah. It is assumed that you've read the Cheetah Users' Guide and have an intermediate knowledge of Python. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Contents} This Guide takes a behaviorist approach. First we'll look at what the Cheetah compiler generates when it compiles a template definition, and how it compiles the various \$placeholder features and \#directives. Then we'll stroll through the files in the Cheetah source distribution and show how each file contributes to the compilation and/or filling of templates. We'll list every method/attribute inherited by a template object. Finally, we'll describe how to submit bugfixes/enhancements to Cheetah, and how to add to the documentation. Appendices will contain a BNF syntax of Cheetah constructs, and ... \code{self} cheetah-compile does when it converts a template definition to a .py template module. Since compiler, it describes what happens to all templates. This Guide first takes a look at the files inside the Cheetah source distribution. Then it gives a brief overview of the \code{Template} object. Then it describes the Cheetah compiler, how it works. Then it takes a look at .py template modules. Then we discuss the various placeholder syntaxes, expressions and directives, and see their effect on the .py template module. Then we'll take a closer look at the parser and then the compiler. Finally, chapter ?? shows how to modify or extend Cheetah without incurring the wrath of the developers, and how to contribute to Cheetah's documentation. % Local Variables: % TeX-master: "users_guide" % End: