Nuutti Kotivuori wrote: > I'm diving in the snippet part next. Okay. Now I have my first try at the snippet problem.
,----[ datapage.xhtml ] | <?xml version="1.0"?> | <!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" | xmlns:n="http://nevow.com/ns/nevow/0.1"> | <head> | <title><n:invisible n:pattern="title">Data Page</n:invisible></title> | <n:invisible n:pattern="head" /> | </head> | <body> | <n:invisible n:pattern="content"> | <p> | <n:invisible n:macro="test"> | Replaced by test data. | </n:invisible> | </p> | <p> | <n:invisible n:macro="snippet_one"> | Snippet one. | </n:invisible> | </p> | <p> | <n:invisible n:macro="snippet_two"> | Snippet two. | </n:invisible> | </p> | <p> | <n:invisible n:macro="snippet_three"> | Snippet three. | </n:invisible> | </p> | </n:invisible> | </body> | </html> `---- ,----[ snippets.xhtml ] | <?xml version="1.0"?> | <!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" | xmlns:n="http://nevow.com/ns/nevow/0.1"> | <head> | <title>Snippet Page</title> | </head> | <body> | <n:invisible n:pattern="one"> | <p>Test snippet one.</p> | </n:invisible> | <n:invisible n:pattern="two"> | <p>Test snippet two with <n:slot name="arg1">argument | 1</n:slot> and <n:slot name="arg2">argument 2</n:slot>.</p> | </n:invisible> | <n:invisible n:pattern="three"> | <p>Test snippet three with a <n:invisible | n:render="three_special">render</n:invisible>.</p> | </n:invisible> | </body> | </html> `---- ,----[ datapage.py ] | class DataPage(TestPage): | datapageFactory = loaders.xmlfile('datapage.xhtml') | | def macro_test(self, ctx): | return 'Test successful.' | | def macro_snippet_one(self, ctx): | return Snippets().one(ctx) | | def macro_snippet_two(self, ctx): | return Snippets().two(ctx, 'foo', 'bar') | | def macro_snippet_three(self, ctx): | return Snippets().three(ctx) | | class Snippets(rend.Fragment): | docFactory = loaders.xmlfile('snippets.xhtml') | | def one(self, ctx): | context = self.rend(ctx, None) | context.tag = inevow.IQ(context.tag).onePattern('one') | return context | | def two(self, ctx, arg1, arg2): | context = self.rend(ctx, None) | context.tag = inevow.IQ(context.tag).onePattern('two') | context.tag = context.tag.fillSlots('arg1', arg1) | .fillSlots('arg2', arg2) | return context | | def three(self, ctx): | context = self.rend(ctx, None) | context.tag = inevow.IQ(context.tag).onePattern('three') | return context | | def render_three_special(self, ctx, data): | import datetime | return 'special render with time %s' % datetime.datetime.now() `---- Now, this method seems to work, but I'm not sure if I'm too happy with it yet. -- Naked _______________________________________________ Twisted-web mailing list [email protected] http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web
