Easy and quick html builder with natural syntax correspondence (python->html). No templates needed. Serves pure pythonic library with no dependencies.
Project description
Airium
Bidirectional HTML
-python
translator.
Key features:
- simple, straight-forward
- template-less (just the python, say goodbye to all the templates)
- DOM structure is strictly represented by python indentation (with context-managers)
- gives much cleaner html than regular templates
- equipped with reverse translator: html to python
Basic html page (hello world)
from airium import Airium
a = Airium()
a('<!DOCTYPE html>')
with a.html(lang="pl"):
with a.head():
a.meta(charset="utf-8")
a.title(_t="Airium example")
with a.body():
with a.h3(id="id23409231", klass='main_header'):
a("Hello World.")
html = str(a) # casting to string extracts the value
print(html)
Prints such a string:
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8" />
<title>Airium example</title>
</head>
<body>
<h3 id="id23409231" class="main_header">
Hello World.
</h3>
</body>
</html>
Simple image in a div
from airium import Airium
a = Airium()
with a.div():
a.img(src='source.png', alt='alt text')
a('the text')
html_str = str(a)
print(html_str)
<div>
<img src="source.png" alt="alt text" />
the text
</div>
Table
from airium import Airium
a = Airium()
with a.table(id='table_372'):
with a.tr(klass='header_row'):
a.th(_t='no.')
a.th(_t='Firstname')
a.th(_t='Lastname')
with a.tr():
a.td(_t='1.')
a.td(id='jbl', _t='Jill')
a.td(_t='Smith') # can use _t or text
with a.tr():
a.td(_t='2.')
a.td(_t='Roland', id='rmd')
a.td(_t='Mendel')
table_str = str(a)
print(table_str)
<table id="table_372">
<tr class="header_row">
<th>no.</th>
<th>Firstname</th>
<th>Lastname</th>
</tr>
<tr>
<td>1.</td>
<td id="jbl">Jill</td>
<td>Smith</td>
</tr>
<tr>
<td>2.</td>
<td id="rmd">Roland</td>
<td>Mendel</td>
</tr>
</table>
Reverse translation
from airium import from_html_to_airium
html_str = """\
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8" />
<title>Airium example</title>
</head>
<body>
<h3 id="id23409231" class="main_header">
Hello World.
</h3>
</body>
</html>
"""
py_str = from_html_to_airium(html_str)
assert py_str == """\
#!/usr/bin/env python
# File generated by reverse AIRIUM translator.
# Any change will be overridden on next run.
# flake8: noqa E501 (line too long)
from airium import Airium
a = Airium()
a('<!DOCTYPE html>')
with a.html(lang='pl'):
with a.head():
a.meta(charset='utf-8')
a.title(_t='Airium example')
with a.body():
a.h3(klass='main_header', id='id23409231', _t='Hello World.')
"""
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
airium-0.0.7.tar.gz
(8.4 kB
view hashes)
Built Distribution
airium-0.0.7-py2.py3-none-any.whl
(14.8 kB
view hashes)
Close
Hashes for airium-0.0.7-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90112727504c1a92865f1c82766cba0b2972198ab4184fcd9865426069d65fd1 |
|
MD5 | 51a56a2474ddd7b30032c66933eabe18 |
|
BLAKE2b-256 | 0ca51da6ebd2e876232b7d2396a564dfba177d916a3d1321b986602a72e83ecb |