def main(): todos = ['first'] return render( html(''' <h1>{title}</h1> <{TodoList} todos={todos} /> '''))
def main(): site = dict(title='My Site') page = dict(title='My Page') return render(html(''' <{App} site={site} page={page} /> '''))
from viewdom import html, render def Heading(children, title): return html('<h1>{title}</h1><div>{children}</div>') result = render(html('<{Heading} title="My Title">Child<//>')) # '<h1>My Title</h1><div>Child</div>' # end-before expected = '<h1>My Title</h1><div>Child</div>'
def main(name='viewdom'): return render(html('<div>Hello {name}</div>'))
from viewdom import html, render expected = '<div>Hello World</div>' # start-after result = render(html('''<div>Hello World</div>''')) # '<div>Hello World</div>'
from viewdom import html, render def Heading(title): return html('<h1>{title}</h1>') result = render(html('<{Heading} title="My Title" />')) # '<h1>My Title</h1>' # end-before expected = '<h1>My Title</h1>'
from viewdom import html, render message = 'Say Howdy' not_message = 'So Sad' show_message = True result = render( html(''' <h1>Show?</h1> {message if show_message else not_message} ''')) # '<h1>Show?</h1>Say Howdy' # end-before expected = '<h1>Show?</h1>Say Howdy'
from viewdom import html, render expected = '<div><span>Escaping</span></div>' # start-after body = '<span>Escaping</span>' result = render(html('<div>{body}</div>')) # '<div><span>Escaping</span></div>'
from viewdom import html, render expected = '<ul title="Hello"><li>World</li><li>Universe</li></ul>' # start-after message = 'Hello' names = ['World', 'Universe'] result = render( html(''' <ul title="{message}"> {[ html('<li>{name}</li>') for name in names ] } </li> ''')) # '<ul title="Hello"><li>World</li><li>Universe</li></ul>'
from viewdom import html, render def Todos(): for todo in ["First", "Second"]: yield html('<li>{todo}</li>') result = render(html('<ul><{Todos}/></ul>')) # '<ul><li>First</li><li>Second</li></ul>' # end-before expected = '<ul><li>First</li><li>Second</li></ul>'
from viewdom import html, render expected = '<h1>My Todos</h1><ul><li>first</li></ul>' # start-after title = 'My Todos' todos = ['first'] def Todo(label): return html('<li>{label}</li>') def TodoList(todos): return html('<ul>{[Todo(label) for label in todos]}</ul>') result = render(html(''' <h1>{title}</h1> <{TodoList} todos={todos} /> ''')) # '<h1>My Todos</h1><ul><li>first</li></ul>'
from viewdom import html, render expected = '<div>Hello VIEWDOM</div>' # start-after name = 'viewdom' result = render(html('<div>Hello {name.upper()}</div>')) # '<div>Hello VIEWDOM</div>'
from viewdom import html, render, use_context, Context expected = '<h1>My Todos</h1><ul><li>Item: first</li></ul>' # start-after title = 'My Todos' todos = ['first'] def Todo(label): prefix = use_context('prefix') return html('<li>{prefix}{label}</li>') def TodoList(todos): return html('<ul>{[Todo(label) for label in todos]}</ul>') result = render( html(''' <{Context} prefix="Item: "> <h1>{title}</h1> <{TodoList} todos={todos} /> <//> ''')) # '<h1>My Todos</h1><ul><li>Item: first</li></ul>'
from viewdom import html, render def Heading(title): return html('<h1>{title}</h1>') title = 'My Title' result = render(html('<{Heading} title={title} />')) # '<h1>My Title</h1>' # end-before expected = '<h1>My Title</h1>'
from viewdom import html, render def make_bigly(name: str) -> str: return f'BIGLY: {name.upper()}' name = 'viewdom' result = render(html('<div>Hello {make_bigly(name)}</div>')) # '<div>Hello BIGLY: VIEWDOM</div>' # end-before expected = '<div>Hello BIGLY: VIEWDOM</div>'
from viewdom import html, render def Heading(children): return html('<h1>My Title</h1><div>{children}</div>') result = render(html('<{Heading} >Hi<//>')) # '<h1>My Title</h1><div>Hi</div>' # end-before expected = '<h1>My Title</h1><div>Hi</div>'
from viewdom import html, render expected = '<div>Hello viewdom</div>' # start-after name = 'viewdom' result = render(html('<div>Hello {name}</div>')) # '<div>Hello viewdom</div>'
from viewdom import html, render name = 'viewdom' result = render(html('<div>Hello {1 + 3}</div>')) # '<div>Hello 4</div>' # end-before expected = '<div>Hello 4</div>'
def main(): return render(html('<div>Hello {name}</div>'))
from viewdom import html, render message = 'Hello' names = ['World', 'Universe'] items = [html('<li>{label}</li>') for label in names] result = render(html(''' <ul title="{message}"> {items} </li> ''')) # '<ul title="Hello"><li>World</li><li>Universe</li></ul>' # end-before expected = '<ul title="Hello"><li>World</li><li>Universe</li></ul>'
from viewdom import html, render vdom = html('''<div class="container">Hello World</div>''') # H(tag='div', props={'class': 'container'}, children=['Hello World']) result = render(vdom) # '<div class="container">Hello World</div>' # end-before expected = '<div class="container">Hello World</div>'
from viewdom import html, render def Heading(title='My Title'): return html('<h1>{title}</h1>') result = render(html('<{Heading} />')) # '<h1>My Title</h1>' # end-before expected = '<h1>My Title</h1>'