Mercurial > p > roundup > code
annotate doc/templating.txt @ 958:715121d05b1f
tweak
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Tue, 20 Aug 2002 04:47:18 +0000 |
| parents | e8aa903cbaa5 |
| children | 81d860e61f0b |
| rev | line source |
|---|---|
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
1 ========================== |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2 HTML Templating Mechanisms |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3 ========================== |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
4 |
| 958 | 5 :Version: $Revision: 1.5 $ |
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
6 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
7 Current Situation and Issues |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
8 ============================ |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
9 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
10 Syntax |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
11 ------ |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
12 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
13 Roundup currently uses an element-based HTML-tag-alike templating syntax:: |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
14 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
15 <display call="checklist('status')"> |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
16 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
17 The templates were initially parsed using recursive regular expression |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
18 parsing, and since no template tag could be encapsulate itself, the parser |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
19 worked just fine. Then we got the ``<require>`` tag, which could have other |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
20 ``<require>`` tags inside. This forced us to move towards a more complete |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
21 parser, using the standard python sgmllib/htmllib parser. The downside of this |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
22 switch is that constructs of the form:: |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
23 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
24 <tr class="row-<display call="plain('status')">"> |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
25 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
26 don't parse as we'd hope. It would be almost impossible to modify the sgmllib |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
27 parser to parse the above "correctly", so a wholly new parser would be |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
28 required. That is a large undertaking, and doesn't address another couple of |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
29 issues that have arisen: |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
30 |
| 956 | 31 1. the template syntax is not well-formed, and therefore is a pain to parse |
| 32 and doesn't play well with other tools, and | |
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
33 2. user requirements generally have to be anticipated and accounted for in |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
34 templating functions (like ``plain()`` and ``checklist()`` above), and |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
35 we are therefore artificially restrictive. |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
36 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
37 Arguments for switching templating systems: |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
38 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
39 *Pros* |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
40 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
41 - more flexibility in templating control and content |
| 956 | 42 - we can be well-formed |
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
43 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
44 *Cons* |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
45 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
46 - installed user base (though they'd have to edit their templates with the |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
47 next release anyway) |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
48 - current templating system is pretty trivial, and a more flexible system |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
49 is likely to be more complex |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
50 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
51 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
52 Templates |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
53 --------- |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
54 |
| 957 | 55 We should also take this opportunity to open up the flexibility of the |
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
56 templates through: |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
57 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
58 1. allowing the instance to define a "page" template, which holds the overall |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
59 page structure, including header and footer |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
60 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
61 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
62 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
63 Possible approaches |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
64 =================== |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
65 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
66 Zope's PageTemplates |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
67 -------------------- |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
68 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
69 Using Zope's PageTemplates seems to be the best approach of the lot. |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
70 In my opinion, it's the peak of HTML templating technology at present. With |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
71 appropriate infrastructure, the above two examples would read: |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
72 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
73 <span tal:replace="item/status/checklist">status checklist</span> |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
74 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
75 <tr tal:attributes="class string:row-${item/status/name}"> |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
76 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
77 ... which doesn't look that much more complicated... honest... |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
78 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
79 Other fun can be had when you start playing with stuff like: |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
80 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
81 <table> |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
82 <tr tal:repeat="message item/msg/list"> |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
83 <td tal:define="from message/from"> |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
84 <a href="" tal:attributes="href string:mailto:${from/address}" |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
85 tal:content="from/name">mailto link</a> |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
86 </td> |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
87 <td tal:content="message/title">subject</td> |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
88 <td tal:content="message/created">received date</td> |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
89 </tr> |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
90 </table> |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
91 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
92 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
93 Implementation |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
94 ~~~~~~~~~~~~~~ |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
95 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
96 I'm envisaging an infrastructure layer where each template has the following |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
97 variables defined: |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
98 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
99 *class* |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
100 the current class of node being displayed |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
101 *item* |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
102 the current node from the database, if we're viewing a specific node |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
103 (*classname*) |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
104 the current node is also available under its classname, so a *user* node |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
105 would also be available under the name *user*. |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
106 *form* |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
107 the current CGI form information |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
108 *instance* |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
109 the current instance |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
110 *db* |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
111 the current open database |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
112 *config* |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
113 the current instance config |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
114 *util* |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
115 utility methods |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
116 |
| 958 | 117 Accesses through a class (either through *class* or *db.<classname>*): |
| 118 | |
| 119 class HTMLItem: | |
| 120 def __getattr__(self, attr): | |
| 121 ''' return an HTMLItem instance ''' | |
| 122 def classhelp(self, ...) | |
| 123 def list(self, ...) | |
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
124 |
| 958 | 125 Accesses through an *item*:: |
| 126 | |
| 127 class HTMLItem: | |
| 128 def __getattr__(self, attr): | |
| 129 ''' return an HTMLItem instance ''' | |
| 130 def history(self, ...) | |
| 131 def classhelp(self, ...) | |
| 132 def remove(self, ...) | |
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
133 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
134 String, Number, Date, Interval HTMLProperty |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
135 a wrapper object which may be stringified for the current plain() behaviour |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
136 and has methods emulating all the current display functions, so |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
137 ``item/name/plain`` would emulate the current ``call="plain()``". Also, |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
138 ``python:item.name.plain(name=value)`` would work just fine:: |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
139 |
| 958 | 140 class HTMLProperty: |
| 141 def __init__(self, instance, db, ...) | |
| 142 def __str__(self): | |
| 143 return self.plain() | |
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
144 |
| 958 | 145 class StringHTMLProperty(HTLProperty): |
| 146 def plain(self, ...) | |
| 147 def field(self, ...) | |
| 148 def stext(self, ...) | |
| 149 def multiline(self, ...) | |
| 150 def email(self, ...) | |
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
151 |
| 958 | 152 class NumberHTMLProperty(HTMLProperty): |
| 153 def plain(self, ...) | |
| 154 def field(self, ...) | |
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
155 |
| 958 | 156 class BooleanHTMLProperty(HTMLProperty): |
| 157 def plain(self, ...) | |
| 158 def field(self, ...) | |
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
159 |
| 958 | 160 class DateHTMLProperty(HTMLProperty): |
| 161 def plain(self, ...) | |
| 162 def field(self, ...) | |
| 163 def reldate(self, ...) | |
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
164 |
| 958 | 165 class IntervalHTMLProperty(HTMLProperty): |
| 166 def plain(self, ...) | |
| 167 def field(self, ...) | |
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
168 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
169 Link HTMLProperty |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
170 the wrapper object would include the above as well as being able to access |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
171 the class information. Stringifying the object itself would result in the |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
172 value from the item being displayed. Accessing attributes of this object |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
173 would result in the appropriate entry from the class being queried for the |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
174 property accessed (so item/assignedto/name would look up the user entry |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
175 identified by the assignedto property on item, and then the name property of |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
176 that user):: |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
177 |
| 958 | 178 class LinkHTMLProperty(HTMLProperty): |
| 179 ''' Be a HTMLItem too ''' | |
| 180 def __getattr__(self, attr): | |
| 181 ''' return a new HTMLProperty ''' | |
| 182 def download(self, ...) | |
| 183 def checklist(self, ...) | |
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
184 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
185 Multilink HTMLProperty |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
186 the wrapper would also be iterable, returning a wrapper object like the Link |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
187 case for each entry in the multilink:: |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
188 |
| 958 | 189 class MultilinkHTMLProperty(HTMLProperty): |
| 190 def __len__(self): | |
| 191 ''' length of the multilink ''' | |
| 192 def __getitem(self, num): | |
| 193 ''' return a new HTMLItem ''' | |
| 194 def checklist(self, ...) | |
| 195 def list(self, ...) | |
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
196 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
197 *util* |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
198 the util object will handle:: |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
199 |
| 958 | 200 class Util: |
| 201 def __init__(self, ...) | |
| 202 def filterspec(self, ...) | |
| 203 def note(self, ...) | |
| 204 def submit(self, ...) | |
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
205 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
206 Action |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
207 ====== |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
208 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
209 1. Investigate how PageTemplates would be integrated into Roundup: |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
210 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
211 - we could go for a fully-divorced-from-Zope approach, which would involve |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
212 bundling PageTemplates/TAL/ZTUtils in with Roundup, with all the |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
213 Zope-specific bits removed. |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
214 - we could try to coexist with a Zope installation, but there the problem |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
215 would be that Zope includes its own copy of PageTemplates/TAL/ZTUtils and |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
216 we'd be installing a version in site-packages, which would be bad. |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
217 |
|
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
218 The latter may allow nicer integration with Zope itself, giving Zope |
| 958 | 219 Roundup users access to acquired information in their templates. We could |
| 220 get around that by modifying the ZRoundup interface to use the "real Zope" | |
| 221 ZPT. Maybe. | |
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
222 |
| 958 | 223 2. Implement the Roundup infrastructure described in the `implementation`_ |
| 224 above. | |
|
955
84281f7f2900
templating redesign
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
225 |
| 958 | 226 |
