summaryrefslogtreecommitdiff
path: root/index.html
blob: aaf71b9d8ed579e3432f1cef121abcfaf3c7a0f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
<?xml version="1.0" encoding="latin-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Cheetah Community Engine - The Python-Powered Template Engine</title>
<link rel="stylesheet" href="screen.css" type="text/css" />
</head>

<body class="index">    <div class="banner" align="center">
      <a href="index.html"><img 
         class="bannerImg" src="images/cheetah-face-black-medium.jpg" alt="" /></a>

      <a href="index.html"><img class="bannerText" src="images/banner_text.gif" 
	  alt="Cheetah Community Edition: The Python-Powered Template Engine" /></a>
    </div>
  <div class="pageOuterWrapper" align="center">
    <div class="pageInnerWrapper0">
      <div class="pageInnerWrapper1">
        <div align="center" class="navBarContainer">
             <a class="navBar activePage" 
	        href="index.html">Overview</a>
<span class="navBarSep">|</span>             <a class="navBar " 
	        href="download.html">Download</a>
<span class="navBarSep">|</span>             <a class="navBar " 
	        href="learn.html">Docs</a>
<span class="navBarSep">|</span>             <a class="navBar " 
	        href="examples.html">Examples</a>
<span class="navBarSep">|</span>             <a class="navBar " 
	        href="whouses.html">Who Uses It?</a>
<span class="navBarSep">|</span>             <a class="navBar " 
	        href="praise.html">Testimonials</a>
<span class="navBarSep">|</span>             <a class="navBar " 
	        href="contribute.html">Help Out</a>
        </div>
  
        <div class="pageInnerWrapper2">
          <div class="pageInnerWrapper3">
            <div class="pageInnerWrapper4">
              <div class="pageInnerWrapper5">
	            <table>
   <tr valign="top">
     <td>
       <br />
       <div align="center">
         <img class="" src="images/cheetah-homepage-title.gif" alt="" />
       </div> 	 

       <p>Cheetah Community Edition is a community supported release of the 
	   Cheetah template engine and code generation tool, 
       template engine and code generation tool, written in <a
       href="http://python.org/">Python</a>.  It can be used standalone
       or combined with other tools and frameworks. Web development is its
       principle use, but Cheetah is very flexible and is also being used to
       generate C++ game code, Java, sql, form emails and even Python code.</p>

	   <p>The reasons behind the Community Edition is to maintain active development
	   outside the mostly-stale <a href="http://sourceforge.net/scm/?type=cvs&group_id=28961">Cheetah CVS tree</a>.
	   Cheetah CE is not intended on diverging from the main goals of the original releases
	   of Cheetah, stability, speed and ease of use, but is to serve as a means of reinvigorating
	   the Cheetah community with <strong>monthly</strong> releases with patches provided by the 
	   community as they're needed.

       <p>Cheetah has a large and active user community. Products built with
       Cheetah are <a href="whouses.html">used by many of the Fortune
       500</a>. One prominent new user is <a
       href="http://reddit.com/">reddit.com</a>, a startup funded by Paul
       Graham.  It has over 50,000 unique visitors a day.</p>

     </td>
     <td width="300">
       <div class="homePageUtilLinks">
        <a href="http://lists.sourceforge.net/lists/listinfo/cheetahtemplate-discuss"
	 >Mailing List</a> <span class="sep">|</span> <a href="docs/CHANGES">Changes</a> <span class="sep">|</span> <a 
	 href="http://sourceforge.net/cvs/?group_id=28961">CVS</a>
       </div>

       <div class="homePageQuotes"> 
    <div class="quote">
    <span class="quote">&#8220;I'm enamored with Cheetah&#8221;</span> 
    <div class="citation">      
      <cite>- <a
      href="http://www.intertwingly.net/wiki/pie/SamRuby">Sam Ruby</a>, 
      senior member of IBM's Emerging Technologies Group &amp; director of Apache Software Foundation</cite>
    </div>
  </div>


    <div class="quote">
    <span class="quote">&#8220;Give Cheetah a try.  You won't regret
     it. ... Cheetah is a truly powerful system. ... Cheetah is a serious
     contender for the 'best of breed'&#8221;</span> 
    <div class="citation">      
      <cite>- <a
     href="http://conferences.oreillynet.com/cs/os2005/view/e_spkr/1541">Alex
     Martelli</a>, Google uber techie, core Python developer 
     &amp;  author of several popular Python books</cite>
    </div>
  </div>

 

</div> 	
       <a class="quotesLink" href="praise.html">read more quotes</a>
     </td>
   </tr>  
  </table>

  <div class="homePageDownloadBar">
   <div class="homePageDownloadBarInner">
    <b>Download</b> <a
  href="http://github.com/rtyler/cheetah/tarball/v2.1.0">Cheetah CE v2.1.0</a>
 (released on March 16, 2009: collection of bugfixes/improvements).
    </div>
  </div>

  <p><b>Cheetah Community Edition</b>:</p>

  <ul class="topLevel">
    <li><b>is supported by every major Python web framework</b>.</li>  

    <li><b>is fully documented and is supported by an active user community</b>.</li>  

    <li>can output/generate <b>any</b> text-based format.</li>

    <li>compiles templates into optimized, yet readable, Python code.</li>

    <li>blends the power and flexibility of Python with a simple template language
         that non-programmers can understand.
    </li>

    <li>gives template authors full access to any Python data structure, module,
         function, object, or method in their templates. Meanwhile, it provides a way 
         for administrators to selectively restrict access to Python when needed.
    </li>

    <li>makes code reuse easy by providing an object-oriented interface to
      templates that is accessible from Python code or other Cheetah
      templates.  One template can subclass another and selectively
      reimplement sections of it.  Cheetah templates can be subclasses
      of <b>any</b> Python class and vice-versa.
    </li>

    <li>provides a simple, yet powerful, caching mechanism that can dramatically
      improve the performance of a dynamic website.
    </li>

    <li>encourages clean separation of content, graphic design, and program
     code.  This leads to highly modular, flexible, and reusable site
     architectures, shorter development time, and HTML and program code that is
     easier to understand and maintain. It is particularly well suited for team
     efforts.  </li>

    <li>can be used to generate static html via its command-line tool.</li>  

  </ul>

  <h2>What is the philosophy behind Cheetah?</h2>

  <p>Its design was guided by these principles:</p>

  <ul class="topLevel">
    <li>Python for the back end, Cheetah for the front end.  Cheetah was
         designed to complement Python, not replace it.
    </li>

    <li>Cheetah&#39;s core syntax should be easy for non-programmers to learn.
    </li>

    <li>Cheetah should make code reuse easy by providing an object-oriented
         interface to templates that is accessible from Python code or other
         Cheetah templates.
    </li>

    <li>Python objects, functions, and other data structures should be fully
         accessible in Cheetah.
    </li>

    <li>Cheetah should provide flow control and error handling.  Logic
         that belongs in the front end shouldn't be relegated to the
         back end simply because it's complex.
    </li>

    <li>It should be easy to <b>separate</b> content, graphic design, and program
        code, but also easy to <b>integrate</b> them.

      <p>A clean separation makes it easier for a team of content writers,
         HTML/graphic designers, and programmers to work together without stepping
         on each other's toes and polluting each other's work.  The HTML framework
         and the content it contains are two separate things, and analytical
         calculations (program code) is a third thing.  Each team member should be
         able to concentrate on their specialty and to implement their changes
         without having to go through one of the others (i.e., the dreaded
         "webmaster bottleneck").  </p>

      <p>While it should be easy to develop content, graphics and program code
        separately, it should be easy to integrate them together into a website.  In
        particular, it should be easy: </p>

      <ul>
        <li>for <b>programmers</b> to create reusable components and functions
           that are accessible and understandable to designers.
        </li>
        <li>for <b>designers</b> to mark out placeholders for content and
          dynamic components in their templates.
        </li>
        <li>for <b>designers</b> to soft-code aspects of their design that are
          either repeated in several places or are subject to change.
        </li>
        <li>for <b>designers</b> to reuse and extend existing templates and thus
          minimize duplication of effort and code.
        </li>
        <li>and, of course, for <b>content writers</b> to use the templates that
          designers have created.</li>
      </ul> 
    </li>
  </ul>



		  <div class="attributionFooter"> Cheetah was created by Tavis
		  Rudd, a freelance programmer and designer, with <a
		  href="credits.html">contributions from many open source
		  volunteers</a>.<br/>Its documentation is edited by Mike Orr, who
		  also wrote its command line tool.</div> <img src="http://sourceforge.net/sflogo.php?group_id=28961&amp;type=1" 
  width="0" height="0" 
  border="0" alt="SourceForge.net Logo" />


              </div>  
            </div>  
          </div>  
        </div>  
      </div>    
    </div>    

    <div class="copyrightFooter" align="left">
      Copyright &copy; 2001-2009 Tavis Rudd. All rights reserved.
    </div>
  </div>  
</body>
</html>