</filler> <script> def init(self, opts): self.name = opts['name'] self.enable_input = True def keypress(self, size, key): import sys, urwid print >> sys.stderr, size, key if not self.enable_input: return True if key == 'enter': self.enable_input = True self.name = self.ui.body.edit_text self.ui.body = urwid.Text('%s loves you, too. Press q to exit.' % self.name) return True return False </script> </question-box> ''') root = convert_string_to_node('<question-box></question-box>') mount(root, 'question-box', 'question-box', {'name': 'hello world'}) app = parse_tag_from_node(root) run_tag( app, unhandled_input=lambda key: key in ('q', 'Q') and quit_app() )
</filler> <script> import urwid def init(self, opts): import urwid self.name = opts['name'] def answer(self, edit, text): self.name = text </script> </sig> """, ) style = """ .highlight { foreground: default,bold; background: default; mono: bold; } """ root = convert_string_to_node("<sig></sig>") mount(root, "sig", "sig", {"name": "Default"}) app = parse_tag_from_node(root) run_tag(app, parse_style(style))
</script> </todo>''') root = convert_string_to_node('<filler><todo></todo></filler>') mount( root, 'todo', 'todo', { 'title': 'TODO list', 'items': [{ 'title': 'Avoid excessive coffeine', 'done': True, 'hidden': False }, { 'title': 'Hidden item', 'done': True, 'hidden': True }, { 'title': 'Be less provocative', 'done': False, 'hidden': False }, { 'title': 'Be nice to people', 'done': False, 'hidden': False }] }) app = parse_tag_from_node(root) run_tag(app)
<question-box> <filler keypress="{ keypress }"> <edit caption="Who is your love?\n" /> </filler> <script> def init(self, opts): self.name = opts['name'] self.enable_input = True def keypress(self, size, key): import sys, urwid print >> sys.stderr, size, key if not self.enable_input: return True if key == 'enter': self.enable_input = True self.name = self.ui.body.edit_text self.ui.body = urwid.Text('%s loves you, too. Press q to exit.' % self.name) return True return False </script> </question-box> ''') root = convert_string_to_node('<question-box></question-box>') mount(root, 'question-box', 'question-box', {'name': 'hello world'}) app = parse_tag_from_node(root) run_tag(app, unhandled_input=lambda key: key in ('q', 'Q') and quit_app())
return [item for item in self.items if not item.get('hidden')] def count(self): return len(self.items) def next_count(self): return self.count() + 1 def toggle(self, e): e.item['done'] = not e.item.get('done') return True </script> </todo>''') root = convert_string_to_node('<filler><todo></todo></filler>') mount(root, 'todo', 'todo', { 'title': 'TODO list', 'items': [ {'title': 'Avoid excessive coffeine', 'done': True, 'hidden': False}, {'title': 'Hidden item', 'done': True, 'hidden': True}, {'title': 'Be less provocative', 'done': False, 'hidden': False}, {'title': 'Be nice to people', 'done': False, 'hidden': False} ] }) app = parse_tag_from_node(root) run_tag(app)
</pile> </filler> <script> import urwid def init(self, opts): import urwid self.name = opts['name'] def answer(self, edit, text): self.name = text </script> </sig> ''') style = ''' .highlight { foreground: default,bold; background: default; mono: bold; } ''' root = convert_string_to_node('<sig></sig>') mount(root, 'sig', 'sig', {'name': 'Default'}) app = parse_tag_from_node(root) run_tag(app, parse_style(style))
def test_mount(): root = PyQuery('<body><div id="selector"></div></body>') vdom.define_tag('test', '<test><text>_</text></test>') doms = vdom.mount(root, '#selector', 'test') assert doms assert root('#selector').attr.__riot_tag__ == 'test'