Skip to main content

Create HTML documents using Pythonic syntax that mimics the real deal.

Project description

Domini

A small, simple package for generating HTML documents. The syntax aims to immitate HTML as closely as possible for legibility and ease of use.

Index

HTML

Attributes

Attributes without a value are entered as positional arguments.
Attributes with a value are entered as keyword arguments.

To specify attributes that collide with reserved Python keywords, append an underscore and it will be removed.

Python

from domini.html import dialog

dialog('open', class_='mydialog')

HTML

<dialog open class='mydialog'>

Content

To add children to an element, there are a few different methods you can use. The content can be either an iterable or a lone element. These elements can be either other tags or plain strings.

  • add adds the children to the current object.
  • > returns a shallow copy of the element with the children added.
  • >> returns a deep copy of the element with the children added.
ul(class_='todo')> (
    li()> 'Buy a fruit basket.',
    li()> (
        'Read ', a(href='https://wikipedia.org/')> 'Wikipedia',
        ' to learn more about things you may not have otherwise cared about.',
    ),
)

Closing tags

A tag is only closed if content is provided. E.g. <p></p> as opposed to <p>. This can be an empty tuple.

p()> ()

For open tags like <br> and <hr>, you simply do br() and hr().

Event attributes

Enumerators for event attributes are available at domini.html.events. You can either use Event, which contains all different event attributes in one, or use an enumerator for a specific category of events.

from domini.html.events import (
    # These are the categories.
    WindowEvent, FormEvent, KeyboardEvent,
    MouseEvent, DragEvent, ClipboardEvent,
    MediaEvent, MiscEvent,
)

JavaScript

JSON type hints

Type hints for the types that are typically used to represent JSON data in Python.

# Either of the following JSON types;
#   JSONBasic | JSONArray | JSONObject
from domini.js import JSON

# The basic, immutable types;
#   None | bool | int | float | str.
from domini.js import JSONBasic

# List and dictionary of JSON values
#   list[JSON] and dict[str, JSON]
from domini.js import JSONArray, JSONObject

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

domini-0.11.0.tar.gz (20.1 kB view details)

Uploaded Source

Built Distribution

domini-0.11.0-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file domini-0.11.0.tar.gz.

File metadata

  • Download URL: domini-0.11.0.tar.gz
  • Upload date:
  • Size: 20.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for domini-0.11.0.tar.gz
Algorithm Hash digest
SHA256 528a2b723b2816ca6974d2327d3b8927cf6c3460c07cad63f3fd8ad7c9cd036d
MD5 b0b327510f18e664fc6c071c8d74b0e2
BLAKE2b-256 b1f94d0c823512720635ba203c7a58b4800c9ff912a7efc70641c2de65293515

See more details on using hashes here.

File details

Details for the file domini-0.11.0-py3-none-any.whl.

File metadata

  • Download URL: domini-0.11.0-py3-none-any.whl
  • Upload date:
  • Size: 20.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for domini-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62a37ca26e72ac5baa2cbfa728292229582da31ec214f3c896c9e1665b2f092e
MD5 4cdf078efb723539f99640364842a2ef
BLAKE2b-256 f4480e1a1d3d3a0b5e99358a00aa677825cf64a85af76cfc1350a7deae6bc17d

See more details on using hashes here.

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