f673f3ac80e3688399f6bfde2c5e1b14860bb7bb
Introduce a FastHTML-style component model alongside the existing function-based one, purely additive: - Node: base renderable; __html__/__str__ render lazily so str()/f-string composition keeps working during migration. - Element: the single class for any HTML element (tag + attrs + children), rendering via the existing memoized _render_element. - Safe: wraps pre-rendered HTML (migration bridge for f-string components). - Fragment: ordered children with no wrapper tag (replaces str(a)+str(b)). - BaseComponent: base for higher-level components; render() returns a subtree, media declared via a Media attribute. - Media: declarative JS deps with order-preserving dedup merge. - collect_media()/render() helpers walk the tree. The legacy Component() function now builds an Element and is Node-aware in its child handling, so a tree mixing string- and node-returning components renders correctly with byte-identical output. No call sites changed yet. https://claude.ai/code/session_01BKurBhE3Qj25p7Bfsg7EeK
Timetracker
A simple game catalogue and play session tracker.
Development
The project uses uv to manage Python versions and dependencies.
Simply run:
make init
This installs the correct Python version, syncs all dependencies, and installs npm packages.
Afterwards, you can start the development server using make dev.
Description
Releases
23
Languages
Python
62.4%
JavaScript
17.5%
CSS
14.9%
HTML
3.8%
TypeScript
0.6%
Other
0.7%