Skip to main content

htmlobj

Project description

htmlobj

htmlobj allows you to easily create complex HTML (or XML, xHTML) using nothing but Python code. It is an alternative to using templates in web frameworks, which usually have their own language syntax.

Example:

from htmlobj import HTML

h = HTML("html")
h.head.title("My Page")  # can chain tags if only 1 subitem
with h.body:  # use `with` for multiple subitems
    h.p.u("Paragraph 1 underlined")
    with h.p("Paragraph 2 ", class_="p2"):  # add attributes too
        h.b("bold")  
        h.text(", not bold") # add additional text
print(h)

Which outputs:

<html>
<head>
<title>My Page</title>
</head>
<body>
<p><u>Paragraph 1 underlined</u></p>
<p class="p2">Paragraph 2 <b>bold</b>, not bold</p>
</body>
</html>

Note that the class_ attribute has a trailing underscore because class is a Python keyword.

New Features

htmlobj is a re-packaging of html3, with further Python 3 modernization and additional functionality added.

One added feature is creating an htmlobj.HTML instance from existing html, either as a string (HTML.from_html), or from a url (HTML.from_url):

h = HTML.from_url("https://example.com/")

This will often be used in combination with another new feature, HTML.codify, to generate Python code using htmlobj, for you. Start with a page that is similar to what you want to create, then modify as needed, e.g. to programatically fill in data for that page.

print(h.codify())

which gives output like:

h = HTML()
with h.html:
    with h.head:
        h.title("Example Domain")
        h.meta(charset="utf-8")
        h.meta(http-equiv="Content-type", content="text/html; charset=utf-8")
...

You can then copy this output as a starting point for you own code, to make a webpage similar to the one passed to from_url.

Note: you can also achieve a from_url / codify combination from the command line by running htmlobj.html_parser with python -m:

python -m htmlobj.html_parser https://example.com > my_code.py

Installation

pip install htmlobj

Next Steps

See Getting Started for more examples and detailed usage information.

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

htmlobj-1.30.0.tar.gz (22.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

htmlobj-1.30.0-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file htmlobj-1.30.0.tar.gz.

File metadata

  • Download URL: htmlobj-1.30.0.tar.gz
  • Upload date:
  • Size: 22.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for htmlobj-1.30.0.tar.gz
Algorithm Hash digest
SHA256 ca4b268d83051b48db9272b0c2eff00137e3ddfb8515baf264ec522ddcdbbbd3
MD5 bfcd766f8786528c34829b2c802ab3b4
BLAKE2b-256 2e811ad297c933814c05ec6a16ea2587041240562ca8524964132f6a0668f481

See more details on using hashes here.

Provenance

The following attestation bundles were made for htmlobj-1.30.0.tar.gz:

Publisher: publish.yml on darcymason/htmlobj

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file htmlobj-1.30.0-py3-none-any.whl.

File metadata

  • Download URL: htmlobj-1.30.0-py3-none-any.whl
  • Upload date:
  • Size: 11.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for htmlobj-1.30.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c5d343757740e844837ea82e505d0a2266d2fb82945666179607cbc6b3f7e862
MD5 1522ceb6f54933be8f7eb462727d81af
BLAKE2b-256 e0b68a58c29722d153ba0bb8af159e86b03cb8feda2d78a60fc0d2aec49054a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for htmlobj-1.30.0-py3-none-any.whl:

Publisher: publish.yml on darcymason/htmlobj

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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