Skip to content

Latest commit

 

History

History
115 lines (103 loc) · 3.48 KB

README.md

File metadata and controls

115 lines (103 loc) · 3.48 KB

Upload Python Package PyPI version Python Versions HTMLight

Abstract

Light html generator

Install

pip3 install htmlight

or

poetry add git+https://github.com/GrafLearnt/HTMLight.git

or

pip3 install git+https://github.com/GrafLearnt/HTMLight.git

Disclaimer

Despite htmlight is able to generate full html page, it is designed to generate small fragments of code like:

from htmlight import h
from flask_babel import lazy_gettext
from flask_login import current_user


TEMPLATE = h.div(h.hr(), h.span("{hello} {username}"), h.hr())


def get_html():
    return TEMPLATE.format(hello=lazy_gettext("Hello"), username=current_user.name)

or

from htmlight import h
from flask_babel import lazy_gettext
from flask_login import current_user


def get_html():
    return h.div(h.hr(), h.span(lazy_gettext("Hello"), " ", current_user.name), h.hr()))

Usage

Code

from htmlight import h


landing_page = h.html(
    h.head(
        h.title("Welcome to Our Website"),
        h.link(attributes={"rel": "stylesheet", "href": "styles.css"}),
    ),
    h.body(
        h.header(
            h.h1(
                "Welcome to Our Website",
                attributes={
                    "style": (
                        " color:"
                        " #333;"
                        " text-align:"
                        " center;"
                        " background-color:"
                        " #F0F0F0;"
                        " padding: 20px;"
                    )
                },
            ),
            h.p(
                "Explore our amazing content", attributes={"style": "font-size: 20px; color: #555;"}
            ),
        ),
        h.main(
            h.h2("Featured Articles", attributes={"style": "color: #444; text-align: center;"}),
            h.article(
                h.h3("Article 1", attributes={"style": "color: #0072d6;"}),
                h.p("This is the first article content", attributes={"style": "color: #666;"}),
            ),
            h.article(
                h.h3("Article 2", attributes={"style": "color: #00a86b;"}),
                h.p("This is the second article content", attributes={"style": "color: #666;"}),
            ),
        ),
        h.footer(
            h.p(
                "© 2023 Our Website",
                attributes={
                    "style": (
                        "text-align: center;"
                        " background-color: #333;"
                        " color: #fff;"
                        " padding: 10px;"
                        " flex-shrink: 0;"
                        " background-color: #333;"
                        " position: absolute;"
                        " left: 0;"
                        " bottom: 0;"
                        " width: 100%;"
                        " overflow: hidden;"
                    )
                },
            ),
        ),
    ),
    attributes={
        "style": "background-color: #f2f2f2; font-family: Arial, sans-serif;",
    },
)

with open("landing_page.html", "w") as f:
    f.write(landing_page)

Result page

Result