A simple way to produce HTML with Python.
Project description
htmlfactory
A simple way to produce HTML with Python. Source code can be found on github.
pip install htmlfactory
htmlfactory simplifies the process of making HTML through Python.
Examples:
basic div example
TagFactory("div.my-class")
<div class='my-class'></div>
To add content between the divs, we can pass a string or TagFactory objects.
# pass a string
TagFactory("div.my-class", 'I am inside the div.')
<div class='my-class'>I am inside the div.</div>
# pass a TagFactory object
TagFactory("div.my-class", TagFactory("div", "child tag"))
<div class="my-class">
<div>
child tag
</div>
</div>
children div example
pass a list of TagFactory objects
TagFactory("div.parent-div", [
TagFactory("div.first-child-div", (
TagFactory("div.second-child-div", "It's party time.")))])
<div class='parent-div'>
<div class='first-child-div'>
<div class='second-child-div'>
It's party time.
</div>
</div>
</div>
Note: Children tags can be passed through a list, tuple, or singular TagFactory object.
printing TagFactory objects
To output a TagFactory object, use print.
print(TagFactory('div', TagFactory('form')))
<div><form></form></div>
Use the function pretty_str() for an indented output.
print(TagFactory('div', TagFactory('form')).pretty_str())
<div>
<form>
</form>
</div>
If you would like an HTML, body, and head tag to be included, pass add_html_tags=True.
print(TagFactory('div', TagFactory('form')).pretty_str(add_html_tags=True))
<html>
<head>
</head>
<body>
<div>
<form>
</form>
</div>
</body>
</html>
multiple classes example
You can add as many classes as you want to your tag object:
TagFactory("div.class1.class2.class3.class4.class5", 'I have a lot of classes.')
<div class='class1 class2 class3 class4 class5'>I have a lot of classes.</div>
adding attributes example
You can add attributes to your tab object by using keyword arguments:
TagFactory("form", 'I have an action & method attribute.', action="/action_page.php", method="get")
<form action='/action_page.php' method='get'>I have an action and method attribute.</form>
Note: 'for' is a keyword so it cannot be used as a keyword argument. Instead use 'four'. Example:
TagFactory("div.my-class", "inside the div", four="my-form")
Dashes (-) also cause a similar problem. For all html attributes that require a dash, omit the dash. The dash will be added upon creation of the object.
# with an omitted dash
TagFactory("div", role="application", ariadescribedby="info")
<div role='application' aria-describedby='info'></div>
adding tags without closing brackets example
You can create tags without closing brackets, which may be useful if wanting to add an img or link:
test_tag = SingletonTag("img", border="0", alt="TestTag",
src="logo_w3s.gif", width="100",
height="100")
<img border='0' alt='TestTag' src='logo_w3s.gif' width='100' height='100'>
The SingletonTag class is inherited to the TagFactory class, so SingletonTags can be treated like TagFactory objects and added as children html elements to other TagFactory objects.
a_tag = TagFactory("a", SingletonTag("img", src="logo_w3s.gif"),
href="www.google.com")
<a href='www.google.com'><img src='logo_w3s.gif'></a>
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
Built Distribution
Hashes for htmlfactory-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4dee2a7863f76e80357491a9a888d2edc4eefac588ff697fae2a751d23ee5065 |
|
MD5 | 223fe91a07ccc2e35ecd5dd2ca40a4b2 |
|
BLAKE2b-256 | a8d26abdade907f01082ebeca5935ff8134275dddc9280fbfe24154e4fc5c2ae |