[EXPERIMENTAL]
Render HTML from Python using plain data structures, inspired by Clojure's Hiccup.
pip install piccup
piccup allows you to write HTML using plain Python data structures.
>>> p.html(['p', 'hello'])
'<p>hello</p>'
Each HTML node is defined using [element, attributes, contents]
triple. element
string is required, attributes
dict and contents
object are optional.
>>> p.html(['a',
{'href': 'http://example.com'},
'Click Me'])
'<a href="http://example.com">Click Me</a>'
Nested HTML nodes are passed to contents
.
>>> p.html(['ul',
[['li', 'first'],
['li', 'second'],
['li', 'third']]])
'<ul><li>first</li><li>second</li><li>third</li></ul>'
piccup uses simple data structures, so you can write normal Python code instead of a foreign templating language.
>>> p.html(['ul',
[['li', {'class': 'link-item'},
['a', {'href': 'http://example.com/{}'.format(e)}, e]]
for e in ['item1', 'item2', 'item3']]])
'<ul><li class="link-item"><a href="http://example.com/item1">item1</a></li><li class="link-item"><a href="http://example.com/item2">item2</a></li><li class="link-item"><a href="http://example.com/item3">item3</a></li></ul>'