Skip to main content

A simple way to produce HTML with Python.

Project description

htmlfactory Build Status

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

htmlfactory-0.0.1.tar.gz (6.0 kB view hashes)

Uploaded Source

Built Distribution

htmlfactory-0.0.1-py3-none-any.whl (7.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page