summaryrefslogtreecommitdiff
path: root/recipes/content/Basic_Inheritance.html
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/content/Basic_Inheritance.html')
-rw-r--r--recipes/content/Basic_Inheritance.html441
1 files changed, 0 insertions, 441 deletions
diff --git a/recipes/content/Basic_Inheritance.html b/recipes/content/Basic_Inheritance.html
deleted file mode 100644
index 1331ecd..0000000
--- a/recipes/content/Basic_Inheritance.html
+++ /dev/null
@@ -1,441 +0,0 @@
-
-
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
-<html>
- <head>
- <title>Community Cheetah - The Python-Powered Template Engine - Basic_Inheritance</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8"/>
- <meta name="keywords" content="cheetah, template engine, python, community cheetah, templating, markdown, markup, mod_python, webware"/>
- <meta name="googlebot" content="index, follow" />
- <meta name="language" content="en-us, english" />
- </head>
- <body>
- <style type="text/css">
- <!--
- /* This CSS style sheet was developed by www.studio7designs.com for opensourcetemplates.org ... Please email if you have any questions aran@studio7designs.com Have fun! */
-
-
-body {
-background:#ffffff url('../../images/bg.jpg') top center repeat-x;
-margin:10px 10px 0px 10px;
-padding:0px;
-color: #000;
-font-family:"Trebuchet MS",arial,sans-serif;
-font-size: 80%;
-
-}
-
-body a:link, body a:visited {
- color: blue;
-}
-
-#blogtitle{
-width:100%;
-margin:0px auto;
-padding:0 0 5px 0;
-font-size:1.1em;
-line-height:1.2em;
-}
-
-#blogtitle a:link, a:visited {
- color:#b8ce83;
- text-decoration:none;
-}
-
-#blogtitle a:hover, a:active {
- color:#fff;
- text-decoration:none;
-}
-
-#small{
-positon:relative;
-padding-left: 5px;
-
-}
-
-#small2{
-positon:relative;
-float:right;
-margin-top: -15px;
-
-}
-
-UL.BLUE {
-list-style: url(../../images/bullet.jpg) disc;
-font-size: 1.1em;
-
-}
-
-#leftcontent {
-position: absolute;
-left:10px;
-top:50px;
-width:200px;
-margin-top: 116px;
-background-image:url("../../images/strips_onside.jpg");
-background-repeat:repeat-y;
-font-size:1.0em;
-padding-left: 12px;
-padding-top: 8px;
-
-}
-
-#leftcontent p{padding-right:10px; margin-left: 5px; color:#888; font-size:1em;}
-
-#centercontent {
-margin-top: 37px;
-background:#fff;
-margin-left: 199px;
-margin-right:199px;
-color:#000;
-voice-family: "\"}\"";
-voice-family: inherit;
-margin-left: 201px;
-margin-right:201px;
-padding:20px;
-font-size: 1.3em;
-}
-
-#centercontent p {color:#000;}
-
-html>body #centercontent {
-margin-left: 201px;
-margin-right:201px;
-
-}
-
-.centercontentleft {float:left; width:40%; height:200px; background-color:#fff; text-align:left;
-border:dashed 2px #ccc; margin: 4px 10px 5px 10px; padding:6px; font-size:1.1em; color:#666666;}
-
-.centercontentright {float:right; width:30%; height:100px; background-color:#fff; text-align:left;
-border:dashed 2px #ccc; margin: 4px 10px 5px 10px; padding:6px; font-size:1.1em; color:#666666;}
-
-
-#rightcontent {
-position: absolute;
-right:10px;
-top:0px;
-width: 200px;
-font-size:1.1em;
-background-image:url("../../images/strips_onside.jpg");
-background-repeat:repeat-y;
-margin-top:150px;
-padding-left: 5px;
-padding-right: 8px;
-padding-top: 8px;
-}
-
-#rightcontent p {color:#888;}
-
-#banner {
-background:#fff;
-height:40px;
-voice-family: "\"}\"";
-voice-family: inherit;
-height:39px;
-
-}
-
-html>body #banner {
-height:39px;
-
-}
-
-p,h1,pre {
-margin:0px 10px 10px 10px;
-font:Arial, Helvetica, sans-serif;
-font-size:12px;
-line-height: 1.6em;
-text-align:justify;
-text-decoration:none;
-}
-
-h1 {
-font-size:2.5em;
-float:right;
-color:#ccc;
-padding-top:15px;
-
-}
-
-h3 {
-font-size:14px;
-color:#999;
-
-}
-
-#banner h1 {
-font-size:14px;
-padding:10px 10px 0px 10px;
-margin:0px;
-
-}
-
-#rightcontent p {
-font-size:11px
-
-}
-
-.introduction ul, #introduction li {
-text-align:center;
-list-style: none;
-margin: 0;
-padding: 0;
-
-}
-
-.introduction h3{
-text-align: center;
-position:static;
-
-}
-
-
-/* ~~~~~~~~~ PROPS FOR THE MENU GO OUT TO EXPLODING-BOY.COM ~~~~~~~~~ */
-
-#topmenu {
-position: absolute;
-top: 45px;
-left: 240px;
-width: 600px;
-font-size:100%;
-margin: 0 0 50px 0;;
-line-height:normal;
-height: 35px;
-}
-#topmenu ul {
-margin:0;
-padding:0px 0px 0 0px;
-list-style:none;
-}
-#topmenu li {
-display:inline;
-margin:0;
-padding:0;
-}
-#topmenu a {
-float:left;
-background:url(../../images/menuleft.gif) no-repeat left top;
-margin:0;
-padding:0 0 0 4px;
-text-decoration:none;
-}
-#topmenu a span, a:visited span {
-float:left;
-display:block;
-background:url(../../images/menuright.gif) no-repeat right top;
-padding:5px 15px 4px 6px;
-color:#888;
-}
-
-/* Commented Backslash Hack hides rule from IE5-Mac \*/
-#topmenu a span {float:none;}
-/* End IE5-Mac hack */
-#topmenu a:hover span {
-color:#999999;
-}
-#topmenu a:hover {
-background-position:0% -42px;
-}
-#topmenu a:hover span {
-background-position:100% -42px;
-}
-
-/* ~~~~~~~~~ END MENU ~~~~~~~~~ */
-
-
-
-/* ~~~~~~~~~ BEGIN FOOTER ~~~~~~~~~ */
-
-#footer{
-/*height:329px;*/
-background:#000 url('../../images/bg.jpg') top center repeat-x;
-text-align: center;
-padding-top: 8px;
-clear: both;
-float: none;
-margin-left: -10px;
-margin-right: -10px;
-margin-bottom: -20px;
-
-}
-
-#footer a, a:link {
-color:#999999;
-text-decoration: none;
-
-}
-#footer a:hover {
-color:#A5CE77;
-text-decoration: none;
-
-}
-
-/* ~~~~~~~~~ END FOOTER~~~~~~~~~ */
-
-
-/* ~~~~~~~~~ BOXES AT BOTTOM OF PAGE ~~~~~~~~~ */
-
-.centercontentleftb {float:left; width:45%; height:200px; background-color:#31412c; text-align:left;
-border:dashed 1px #888; margin: 50px 10px 5px 10px; padding:6px; font-size:1.1em; color:#fff;}
-
-
-.centercontentleftimg {float:left; width:45%; height:45%x; background-color:#31412c; text-align:left;
-border:dashed 1px #888; padding:6px; font-size:1.1em; color:#fff;}
-
-.centercontentrightimg {float:right; width:45%; height:45%; background-color:#31412c; text-align:left;
-border:dashed 1px #888; padding:6px; font-size:1.1em; color:#fff;}
-
-.centercontentrightb {float:right; width:45%; height:200px; background-color:#31412c; text-align:left;
-border:dashed 1px #888; margin: 50px 13px 5px 10px; padding:6px; font-size:1.1em; color:#fff;}
-
-.centercontentleftimg {float:left; width:45%; height:45%; background-color:#31412c; text-align:left;
-border:dashed 1px #888; padding:6px; font-size:1.1em; color:#fff;}
-
-.centercontentrightimg {float:right; width:45%; height:45%; background-color:#31412c; text-align:left;
-border:dashed 1px #888; padding:6px; font-size:1.1em; color:#fff;}
-
- -->
- </style>
-
-
- <a href="http://github.com/rtyler/cheetah">
- <img style="position: absolute; top: 0; left: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_left_orange_ff7600.png" alt="Fork me on GitHub" />
-</a>
- <div id="blogtitle">
- <div id="small" style="margin-left: 130px;"><a href="#">Community Cheetah</a> </div>
- <div id="small2">
- <a href="../../index.html">Home</a>&nbsp;|&nbsp;
- <a href="../../http://bugs.communitycheetah.org">Issues</a>&nbsp;|&nbsp;
- <a href="../../http://github.com/rtyler/cheetah/tree/master">Source</a>&nbsp;|&nbsp;
- <a href="../../roadmap.html">Roadmap</a>&nbsp;|&nbsp;
- </div>
- </div>
-
- <div id="topmenu">
- <ul class="BLUE">
- <li>
- <a href="../../index.html" title="Home">
- <span>Home</span>
- </a>
- </li>
- <li>
- <a href="../../download.html" title="Download">
- <span>Download</span>
- </a>
- </li>
- <li>
- <a href="../../docs.html" title="Documentation">
- <span>Documentation</span>
- </a>
- </li>
- <li>
- <a href="../../recipes/" title="Recipes">
- <span>Recipes</span>
- </a>
- </li>
- <li>
- <a href="../../community.html" title="Community">
- <span>Community</span>
- </a>
- </li>
- <li>
- <a href="../../developers.html" title="Developers">
- <span>Developers</span>
- </a>
- </li>
- </ul>
- </div>
-
-
-
- <div id="centercontent">
- <h1>Basic Inheritance</h1>
-<h2>Introduction</h2>
-<p>Cheetah, like Python, is an object-oriented language if you so choose to
-use it in that fashion. That is to say that you can use Cheetah in with
-object-oriented principles <em>or</em> you can use Cheetah in a strictly functional
-sense, like Python, Cheetah does not place restrictions on these barriers.</p>
-<p>While Cheetah is not strictly Python, it was designed as such to interoperate,
-particularly with the notion of classes, with Python itself. In effect you can
-define Python classes that inherit and extend from Cheetah-derived classes and
-vice versa. For this, Cheetah defines a few <strong>directives</strong> (denoted with the <code>#</code>
-hash-mark) that are of some help, the most important one being the <code>#extends</code>
-directive, with others playing important roles like <code>#import</code>, <code>#attr</code> and <code>#super</code></p>
-<p>In this recipe/tutorial I intend to explain and define a few key inheritance
-patterns with Cheetah, being:</p>
-<ul>
-<li>A Cheetah Template inheriting from Python</li>
-<li>Python inheriting from a Cheetah Template</li>
-<li>Cheetah Templates and "<em>mixins</em>"</li>
-</ul>
-<p>This document also operates on the assumption that the reader is at least
-somewhat familiar with the basic tenets of object-oriented programming in
-Python.</p>
-<h2>Cheetah inheriting from Python</h2>
-<p>Whether or not you are aware of it, Cheetah templates are always inheriting from
-a Python class by default. Unless otherwise denoted, Cheetah templates are compiled
-to Python classes that subclass from the <code>Cheetah.Template.Template</code> class.</p>
-<p>What if you would like to introduce your own Template base class? Easily acheived by
-defining your own Template class in a Python module, for example:</p>
-<pre><code>import Cheetah.Template
-
-class CookbookTemplate(Cheetah.Template.Template):
- _page = 'Cookbook'
- author = 'R. Tyler Ballance'
- def pageName(self):
- return self._page or 'Unknown'
-</code></pre>
-<p><strong>Figure 1. cookbook.py</strong></p>
-<p>For this example, I want all my subclasses of the <code>CookbookTemplate</code> to define a
-page author which will be used in some shared rendering code, to accomplish this
-my templates will need to subclass from <code>CookbookTemplate</code> explicitly instead of
-implicitly subclassing from <code>Cheetah.Template.Template</code></p>
-<pre><code>#import cookbook
-#extends cookbook.CookbookTemplate
-#attr author = 'Tavis Rudd'
-
-## The rest of my recipe template would be below
-</code></pre>
-<p><strong>Figure 2. recipe1.tmpl</strong></p>
-<p><span style="float: right; clear: both;"><em>Last edited: Sun May 31 18:40:24 2009 </em></span></p>
- </div>
-
- <div id="rightcontent">
- <img style="margin-top:-9px; margin-left: -5px;" src="../../images/top2.jpg" alt="" />
-
- <div id="twitter_div">
- <h2 class="sidebar-title">Twitter Updates</h2>
- <ul id="twitter_update_list"></ul>
-
- <a href="http://twitter.com/cheetahtemplate" id="twitter-link" style="display:block;text-align:right;">follow Cheetah on Twitter</a>
- </div>
-
-
- <img style="padding-top:5px; margin-left:-5px; margin-bottom:-4px;" src="../../images/specs_bottom.jpg" alt="" />
- </div>
-
- <br clear="all"/>
- <br/>
-
- <a href="http://www.python.org" target="_blank"><img src="../../images/python-logo.gif" border="0" alt="Python-powered" title="Python-powered" align="right"/></a>
- <br clear="all"/>
- <br/>
- <div id="footer">
- &copy; 2006 Design by <a href="http://www.studio7designs.com">Studio7designs.com</a>
- </div>
-
-
- <script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"></script>
- <script type="text/javascript" src="http://twitter.com/statuses/user_timeline/cheetahtemplate.json?callback=twitterCallback2&count=5"></script>
- </body>
-</html>
-
-
-
-
-
-
-
-