Generate HTML with Python 3 License Badge Wheel Support Badge

Domonic Not only a Python library for generating HTML

Domonic contains several evolving packages:

  • html : Generate html with python 3 😎
  • dom : DOM API in python 3 😲
  • javascript : js API in python 3 😳
  • terminal || cmd : call terminal commands with python3 😱 (see at the end)
  • JSON : utils for loading / decorating / transformin
  • SVG : Generate svg using python
  • aframe || x3d tags : auto generate 3d worlds with aframe. (see examples folder
  • dQuery - Utils for querying domonic. (alt + 0 for the º symbol)
  • geom - vec2, vec3 with _dunders_ as well as shape classes

Take a look at the source code and contribute!


from domonic.html import *

mydom = html(body(h1('Hello, World!')))
<!DOCTYPE html>
        <h1>Hello, World!</h1>

To pretty print use an f-string. Which also adds the doctype.


python3 -m pip install domonic

or if you had it before upgrade:

python3 -m pip install domonic --upgrade

The User Guide

Here you can find some instructions for getting the most out of Domonic.


There’s a few args you can pass to domonic on the command line to help you out.

To launch the docs for a quick reference to the APIs use:

python3 -m domonic -h

This command will attempt to generate a template from a webpage. (only simple pages for now)

python3 -m domonic -d

Then you can edit/tweak it to get what you need and build new components quicker.

INSTALLING - (linux/mac only)

If you like you can install domonic to your .bashprofile

python3 -m domonic --install

Now in your terminal whenever you want to start a new project you can type…

project mycoolproject

and it will smash out a basic project for you.

you can also now access the docs quickly simply by typing…

domonic -h

Finally, you can open and edit .bashprofile to tweak it to your own preferences.


Feel free to join in if you find it useful.

If there’s any methods you want that are missing or not complete yet. Just update the code and send a pull request.

I’ll merge and releaese asap.


A browser based file browser. Working example of how components can work:

A cron viewer:


There’s several more widely supported libraries doing HTML generation, DOM reading/manipulation, terminal wrappers etc. Maybe use one of those for production due to strictness and support.

This is becoming more of a fast prototyping library.