Skip to content

Instantly share code, notes, and snippets.

View bpeterso2000's full-sized avatar

Brian Peterson bpeterso2000

View GitHub Profile
'''Concise generation of HTML using Python.'''
import html
import json
import re
import sys
from collections.abc import Iterable, Mapping
from typing import Callable, Generator, NewType, Protocol, Union
from functools import partial
from fasttags import FT
# Tags for all elements in January 7 ,2025 HTML living standard
# http://html.spec.whatwg.org/multipage/indices.html
__all__ = {
'A', 'Abbr', 'Address', 'Area', 'Article', 'Aside', 'Audio', 'B',
'Base', 'Bdi', 'Bdo', 'Blockquote', 'Body', 'Br', 'Button',
'Canvas', 'Caption', 'Cite', 'Code', 'Col', 'Colgroup', 'Data',
'Datalist', 'Dd', 'Del', 'Details', 'Dfn', 'Dialog', 'Div', 'Dl',
'Dt', 'Em','Embed', 'Fieldset', 'Figcaption', 'Figure', 'Footer',
from fasthtml.common import *
from fastlite import Database, Table
from typing import List, Dict, Any
# Initialize FastLite database
db = Database("users.db")
Users = db.t.users
if not Users.exists():
Users.create(id=int, name=str, email=str, pk="id")
@bpeterso2000
bpeterso2000 / html_form_red_asterisk_required_field.py
Created May 13, 2025 01:10
For accessible purposes use SVG for red asterisk on required fields
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Accessible Form with Red Asterisk</title>
<style>
/* Style the asterisk container */
.required-asterisk {
color: red;
from fasthtml.common import *
from fastlite import Database, Model, Field
from dataclasses import dataclass, fields
from typing import Optional
import sqlite3
# Initialize FastHTML app with Tailwind CSS for styling
app = FastHTML(hdrs=(picolink, Script(src="https://cdn.tailwindcss.com")))
# Initialize FastLite database
from fasthtml.common import *
from fastlite import *
from dataclasses import dataclass
from typing import Optional
# Initialize FastHTML app with PicoCSS and SQLite database
db = database('data/users.db')
app, rt = fast_app(pico=True)
# Define User dataclass for form data
from enum import Enum
from functools import singledispatch
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
@singledispatch
def process(color: Color, *args, **kwargs):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Responsive Layout</title>
<style>
body {
margin: 0;
padding: 0;
List of elements
Element Description Categories Parents† Children Attributes Interface
a Hyperlink flow; phrasing*; interactive; palpable phrasing transparent* globals; href; target; download; ping; rel; hreflang; type; referrerpolicy HTMLAnchorElement
abbr Abbreviation flow; phrasing; palpable phrasing phrasing globals HTMLElement
address Contact information for a page or article element flow; palpable flow flow* globals HTMLElement
area Hyperlink or dead area on an image map flow; phrasing phrasing* empty globals; alt; coords; shape; href; target; download; ping; rel; referrerpolicy HTMLAreaElement
article Self-contained syndicatable or reusable composition flow; sectioning; palpable flow flow globals HTMLElement
aside Sidebar for tangentially related content flow; sectioning; palpable flow flow globals HTMLElement
audio Audio player flow; phrasing; embedded; interactive; palpable* phrasing source*; track*; transparent* globals; src; crossorigin; preload; autoplay; loop; muted; controls HTMLAudioElement
{
"*": {
"attributes": {
"accesskey": {
"experimental": false
},
"anchor": {
"experimental": true
},
"autocapitalize": {