File: disktemplates_stan.tac

package info (click to toggle)
nevow 0.3.0-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 940 kB
  • ctags: 2,089
  • sloc: python: 8,635; makefile: 15
file content (72 lines) | stat: -rw-r--r-- 2,423 bytes parent folder | download
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
import random

from twisted.application import service
from twisted.application import internet

from nevow import appserver
from nevow import loaders
from nevow import rend
from nevow import tags as T
from nevow.stan import directive


class Mine(rend.Page):

    docFactory = loaders.htmlfile('disktemplates.html')
    docFactory = loaders.stan(
        T.html[
            T.head[
                T.title["This is title"]
            ],
            T.body[
                T.ol(data=directive("theList"), render=directive("sequence"))[
                    T.span(pattern="header")["HEADER"],
                    T.li(pattern="item")["Stuff: ",T.span(render=directive("string")), "!"],
                    T.span(pattern="divider")["-----"],
                    T.div(pattern="empty")["Nothing."],
                    T.span(pattern="footer")["FOOTER"],
                ],
                T.ol(data=directive("empty"), render=directive("sequence"))[
                    T.span(pattern="header")["HEADER"],
                    T.li(pattern="item")["Stuff: ",T.span(render=directive("string")), "!"],
                    T.span(pattern="divider")["-----"],
                    T.div(pattern="empty")["Nothing."],
                    T.span(pattern="footer")["FOOTER"],
                ],
                T.span(render=directive("foo"))[
                    "This entire node, including the span tag, will be replaced by \
                    a randomly chosen node from below:",
                    T.div(pattern="one", style="color: red")["one"],
                    
                    T.table(pattern="two")[
                        T.tr[T.td["two"],T.td["two"],T.td["two"]]
                    ],
                    
                    T.ol(pattern="three")[
                        T.li["three"],
                        T.li["three"],
                        T.li["three"],
                    ]
                ]
            ]
        ]
    )
        

    def render_foo(self, context, data):
        return context.onePattern(random.choice(['one', 'two', 'three']))

    def data_theList(self, context, data):
        return [random.randint(0, 5000) for x in range(random.randint(0, 10))]

    def data_empty(self, context, data):
        return []


application = service.Application("disktemplates")
internet.TCPServer(
    8080, 
    appserver.NevowSite(
        Mine()
    )
).setServiceParent(application)