Python in, HTML out.
Project description
htmlclasses
Python in, HTML out.
There are templating engines making it possible to write code in HTML template files. However, I would very much prefer to be able to write Python that gets converted to HTML rather than write Python-like mini language engulfed in HTML.
Version
0.3.0
Goals
Generating valid HTML from pure Python code.
Non-goals
Features geared toward JavaScript.
- I find using 2 intertwined languages too cumbersome.
- JavaScript is heavily overused and misused. I don't want to add to the problem.
Installation
pip install htmlclasses
Developing
This project is managed with poetry: https://github.com/python-poetry/poetry
git clone git@github.com:uigctaw/htmlclasses.git
poetry install
Running tests
./check_all.sh
Examples
To convert Python to HTML run:
from htmlclasses import to_string
to_string(html, indent=' ')
Hello World
from htmlclasses import E
class html(E):
class head:
pass
class body:
class p:
TEXT = 'Hello, world!'
<!DOCTYPE html>
<html>
<head/>
<body>
<p>
Hello, world!
</p>
</body>
</html>
Repeated Elements
from htmlclasses import E
class html(E):
class head(E): # Must sublcass if repeating tags
class meta:
name = 'description'
content = 'Framework usage examples'
class meta: # type: ignore[no-redef] # noqa: F811
name = 'keywords'
content = 'Python, HTML'
class body:
class p:
TEXT = 'Hello, world!'
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="Framework usage examples"/>
<meta name="keywords" content="Python, HTML"/>
</head>
<body>
<p>
Hello, world!
</p>
</body>
</html>
Alternatives
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
htmlclasses-0.3.0.tar.gz
(5.3 kB
view hashes)
Built Distribution
Close
Hashes for htmlclasses-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54a5e1d874212c6977d9779d090c2bc6b4cfd4a54191ca7902b3ffa5ebe4418e |
|
MD5 | 44cf5ff7487dc5d912fadfe880f167d8 |
|
BLAKE2b-256 | 54db00ace24db9d1ce13f5dfa79d771eaf73743092644744bdaf17672ac70dd8 |