moved templating system to jinja
author<mako@atdot.cc> <>
Sun, 16 Sep 2007 21:33:59 +0000 (17:33 -0400)
committer<mako@atdot.cc> <>
Sun, 16 Sep 2007 21:33:59 +0000 (17:33 -0400)
templates/_form_elements.tmpl
templates/gallery.tmpl
templates/index.tmpl
templates/show_ruler.tmpl
templates/site.tmpl
yourule.py

index b365ce05579308c8e2abfd557d10de028731b7ea..001617b86276a022709e96f4f42c2a6418bca66a 100644 (file)
@@ -1,15 +1,15 @@
 <p><label for="units">Units:</label>
 <select id="unitselector" name="units">
 <p><label for="units">Units:</label>
 <select id="unitselector" name="units">
-<option values="centimeters"#if $getVar('units', '') == 'centimeters'# selected="selected"'#end if#>centimeters</option>
-<option value="inches"#if $getVar('units', '') == 'inches'# selected="selected"'#end if#>inches</option>
+<option values="centimeters"<% if units == 'centimeters' %>selected="selected"<% endif %>>centimeters</option>
+<option value="inches"<% if units == 'inches' %>selected="selected"<% endif %>>inches</option>
 </select>
 </p>
 
 <p><label for="pixel_width">Screen width (in pixels):</label>
 </select>
 </p>
 
 <p><label for="pixel_width">Screen width (in pixels):</label>
-<input type="text" name="pixel_width" value="$getVar('pixel_width', None)" /></p>
+<input type="text" name="pixel_width" value="<%= pixel_width %>" /></p>
 
 <p><label for="unit_width"><em>Horizontal</em> screen width (in <span class="unittext">units</span>):</label>
 
 <p><label for="unit_width"><em>Horizontal</em> screen width (in <span class="unittext">units</span>):</label>
-<input type="text" name="unit_width" value="$getVar('unit_width', None)" /></p>
+<input type="text" name="unit_width" value="<%= unit_width %>" /></p>
 
 <script>
 // simple chunk of javascript to handle changes
 
 <script>
 // simple chunk of javascript to handle changes
index 0a94f91760fd27988c88590b35f5f7246f15a64c..b80b538d89571e2b7e74dbd2e00dd3e7d6cf2b96 100644 (file)
@@ -1,6 +1,6 @@
-#extends site
+<% extends 'site.tmpl' %>
 
 
-#block body
+<% block body %>
 
 <h2>Gallery of Existing Rulers</h2>
 
 
 <h2>Gallery of Existing Rulers</h2>
 
 <th>Rulers</th>
 <th></th>
 </tr>
 <th>Rulers</th>
 <th></th>
 </tr>
-#for $ruler in $rulers
+<% for ruler in rulers %>
 <tr>
 <tr>
-  <td>$ruler.model</td>
-  <td>$ruler.pixel_width</td>
-  <td>$ruler.cm_width()/$ruler.in_width</td>
+  <td><%= ruler.model%></td>
+  <td><%= ruler.pixel_width %></td>
+  <td><%= ruler.cm_width() %>/<%= ruler.in_width() %></td>
   <td>
   <td>
-    <a href="/show/ruler_${ruler.pixel_width}px_${ruler.cm_width}centimeters.png?fromgallery=true">cm</a>/<a href="/show/ruler_${ruler.pixel_width}px_${ruler.in_width}inches.png?fromgallery=true">in</a>
+    <a href="/show/ruler_<%= ruler.pixel_width %>px_<%= ruler.cm_width() %>centimeters.png?fromgallery=true">cm</a>/<a href="/show/ruler_<%= ruler.pixel_width %>px_<%= ruler.in_width() %>inches.png?fromgallery=true">in</a>
   </td>
   </td>
-  <td><form method="GET" action="delete/$ruler.id" style="display:inline;">
+  <td><form method="GET" action="delete/<%= ruler.id %>" style="display:inline;">
       <input type="submit" value="delete" /></form></td>
 </tr>
       <input type="submit" value="delete" /></form></td>
 </tr>
-#end for
+<% endfor %>
 </table>
 
 <h2>Add Your Ruler</h2>
 </table>
 
 <h2>Add Your Ruler</h2>
 <p>If your ruler is not on the list you should add it with the box
 form.</p>
 
 <p>If your ruler is not on the list you should add it with the box
 form.</p>
 
-#if $getVar('errormsg', False)
+<% if errormsg %>
 <div class="errormsg">
 <strong>Error</strong><br />
 <div class="errormsg">
 <strong>Error</strong><br />
-$getVar('errormsg', False)
+<%= errormsg %>
 </div>
 </div>
-#end if
+<% endif %>
 <form method="POST" action="/gallery">
 
 <form method="POST" action="/gallery">
 
-#include 'templates/_form_elements.tmpl'
+<% include '_form_elements.tmpl' %>
 
 <p><label for="model">Laptop or monitor model:</label>
 <input type="text" name="model" size="50" maxlength="100"
 
 <p><label for="model">Laptop or monitor model:</label>
 <input type="text" name="model" size="50" maxlength="100"
-value="$getVar("model", None)" /></p>
+value="<%= model %>" /></p>
 
 <input type="Submit" name="submit" value="Save" />
 </form>
 
 
 <input type="Submit" name="submit" value="Save" />
 </form>
 
-#end block body
+<% endblock %>
index 7d2832c2b18182451cb48aacf7751697c1361a71..5f3f352be4bc245607239d6876472f7b278fc3d4 100644 (file)
@@ -1,6 +1,6 @@
-#extends site
+<% extends 'site.tmpl' %>
 
 
-#block body
+<% block body %>
 
 <h2>Ruler Gallery </h2>
 
 
 <h2>Ruler Gallery </h2>
 
@@ -10,19 +10,18 @@ href="/gallery">ruler gallery</a>.</p>
 
 <h2>Create Custom Ruler</h2>
 
 
 <h2>Create Custom Ruler</h2>
 
-#if $getVar('errormsg', False)
+<% if errormsg %>
 <div class="errormsg">
 <strong>Error</strong><br />
 <div class="errormsg">
 <strong>Error</strong><br />
-$getVar('errormsg', False)
+<%= errormsg %>
 </div>
 </div>
+<% endif %>
 
 
-#end if
 <form method="POST" action="/">
 
 <form method="POST" action="/">
 
-#include 'templates/_form_elements.tmpl'
+<% include '_form_elements.tmpl' %>
 
 <input type="Submit" name="submit" value="Generate" />
 <form>
 
 
 <input type="Submit" name="submit" value="Generate" />
 <form>
 
-
-#end block body
+<% endblock %>
index ac20fd61088d15f88b30cedc92bcc72411845db6..d10b380cbc458a74d7a07de3d1ee047b17b9d53d 100644 (file)
@@ -3,17 +3,17 @@
 <link rel="stylesheet" type="text/css" href="/static/style.css" />
 </head>
 <p id="menu">
 <link rel="stylesheet" type="text/css" href="/static/style.css" />
 </head>
 <p id="menu">
-<a href="/show/$other_unit_url">show in $other_unit</a>
+<a href="/show/<%= other_unit_url %>">show in <%= other_unit %></a>
 /
 /
-#if $fromgallery
+<% if fromgallery %>
 <a href="/gallery">back to gallery</a>
 <a href="/gallery">back to gallery</a>
-#else
-<a href="/gallery/$ruler_url">save for others</a>
-#end if
+<% else %>
+<a href="/gallery/<%= ruler_url %>">save for others</a>
+<% endif %>
 </p>
 
 <div id="rulerimg">
 </p>
 
 <div id="rulerimg">
-<img src="/$ruler_url" alt="$ruler_url" />
+<img src="/<%= ruler_url %>" alt="<%= ruler_url %>" />
 </div>
 
 
 </div>
 
 
index 53cfed33168712694ed0453501d3946488ea25dd..d9eaad372ce7a212300ac1e09c8b30ff23e893d1 100644 (file)
@@ -2,6 +2,7 @@
 <head>
   <link rel="stylesheet" type="text/css" href="/static/style.css" />
   <script src="/static/prototype.js" type="text/javascript"></script>
 <head>
   <link rel="stylesheet" type="text/css" href="/static/style.css" />
   <script src="/static/prototype.js" type="text/javascript"></script>
+  <title>You Rule</title>
 </head>
 <body>
 <div id="wrapper">
 </head>
 <body>
 <div id="wrapper">
 <div class="mainbox">
   <div class="mainbox_top"><div></div></div>
   <div class="mainbox_content">
 <div class="mainbox">
   <div class="mainbox_top"><div></div></div>
   <div class="mainbox_content">
-
-#filter Filter
-$body
-#end filter
+    <% block body %>
+    <% endblock %>
   </div>
   <div class="mainbox_bottom"><div></div></div>
 </div>
   </div>
   <div class="mainbox_bottom"><div></div></div>
 </div>
index 108cce3e3cea30ac45ce1f57df60c0b0eee1f0fa..9e933d667a8959610c8883962b37fbce15d9e9d6 100755 (executable)
@@ -6,6 +6,16 @@ import sys, os, re
 from storm.locals import *
 from svgruler import SVGRuler
 
 from storm.locals import *
 from svgruler import SVGRuler
 
+from jinja import Environment, FileSystemLoader
+jinja_env = Environment('<%', '%>', '<%=', '%>', '<%#', '%>', 
+                        loader=FileSystemLoader('templates/'))
+
+def render(filename, vars):
+    web.header("Content-Type","text/html; charset=utf-8")
+    tmpl = jinja_env.get_template(filename + '.tmpl')
+    print tmpl.render(vars)
+    web.debug(web.ctx)
+
 # the url map for the application
 urls = ( '/', 'index',
          '/ruler_([0-9\.]+)px_([0-9\.]+)([A-Za-z]+).(svg|png|jpg)', 'ruler_img',
 # the url map for the application
 urls = ( '/', 'index',
          '/ruler_([0-9\.]+)px_([0-9\.]+)([A-Za-z]+).(svg|png|jpg)', 'ruler_img',
@@ -55,8 +65,7 @@ class Ruler(object):
 
 class index:
     def GET(self):
 
 class index:
     def GET(self):
-        web.header("Content-Type","text/html; charset=utf-8")
-        web.render('index.tmpl')
+        render('index', locals())
 
     def POST(self):
         input = web.input()
 
     def POST(self):
         input = web.input()
@@ -67,7 +76,7 @@ class index:
             pixel_width = input['pixel_width']
             unit_width = input['unit_width']
             units = input['units']
             pixel_width = input['pixel_width']
             unit_width = input['unit_width']
             units = input['units']
-            web.render('index.tmpl')
+            render('index', locals())
         else:
             ruler = Ruler(pixel_width = input['pixel_width'], 
                           unit_width = input['unit_width'], 
         else:
             ruler = Ruler(pixel_width = input['pixel_width'], 
                           unit_width = input['unit_width'], 
@@ -77,7 +86,6 @@ class index:
 
 class show_ruler:
     def GET(self, ruler_url, ext):
 
 class show_ruler:
     def GET(self, ruler_url, ext):
-        web.debug('test test')
         if web.input().has_key('fromgallery'):
             fromgallery = True
         else:
         if web.input().has_key('fromgallery'):
             fromgallery = True
         else:
@@ -85,9 +93,7 @@ class show_ruler:
 
         other_unit, other_unit_url = get_other_unit(ruler_url)
 
 
         other_unit, other_unit_url = get_other_unit(ruler_url)
 
-        web.header("Content-Type","text/html; charset=utf-8")
-        web.render('show_ruler.tmpl')
-
+        render('show_ruler', locals())
 
 class ruler_img:
     def GET(self, pixel_width=None, unit_width=None, units=None, ext=None):
 
 class ruler_img:
     def GET(self, pixel_width=None, unit_width=None, units=None, ext=None):
@@ -127,7 +133,7 @@ class gallery:
 
         rulers = store.find(Ruler, Ruler.show == 1)
         rulers.order_by(Ruler.model)
 
         rulers = store.find(Ruler, Ruler.show == 1)
         rulers.order_by(Ruler.model)
-        web.render('gallery.tmpl')
+        render('gallery', locals())
 
     def POST(self, ruler_url):
         input = web.input()
 
     def POST(self, ruler_url):
         input = web.input()
@@ -152,7 +158,7 @@ class gallery:
 
         rulers = store.find(Ruler, Ruler.show == 1)
         rulers.order_by(Ruler.model)
 
         rulers = store.find(Ruler, Ruler.show == 1)
         rulers.order_by(Ruler.model)
-        web.render('gallery.tmpl')
+        render('gallery', locals())
 
 class delete:
     def GET(self, id):
 
 class delete:
     def GET(self, id):
@@ -209,8 +215,6 @@ def validate_input(input):
 
     return(errormsg)
 
 
     return(errormsg)
 
-# render the site template here so that i can use it later
-web.render('site.tmpl', None, True, 'site')
 
 web.webapi.internalerror = web.debugerror
 if __name__ == "__main__":
 
 web.webapi.internalerror = web.debugerror
 if __name__ == "__main__":

Benjamin Mako Hill || Want to submit a patch?