Update project structure

This commit is contained in:
2025-10-01 14:42:08 +02:00
parent 1969c4ac8d
commit 8cb3efef8d
38 changed files with 13 additions and 17 deletions

View File

@@ -7,19 +7,18 @@ Luxtools is a minimal-but-complete scaffold for a retro-styled web application b
- **Nim**: Nim's ahead-of-time compilation and small standard library make it ideal for producing a single self-contained binary. Its async HTTP primitives provide great performance with minimal boilerplate.
- **HTMX**: HTMX keeps the frontend simple by embracing hypermedia. We can ship almost entirely server-rendered HTML snippets, allowing Nim to stay in control without a bulky SPA build step.
- **TUI.CSS**: This lightweight CSS framework offers a retro terminal aesthetic with zero JavaScript and a tiny footprint—perfect for a nostalgic interface while remaining easy to customize.
- **Single binary delivery**: HTML templates and the entire `static/` tree of vendored assets are embedded at compile time via `staticRead`, so the server ships with everything it needs. The compiled binary serves those resources directly from an in-memory table, while a separate `www/` directory remains available for user-provided uploads.
- **Single binary delivery**: HTML templates and the entire `src/static/` tree of vendored assets are embedded at compile time via `staticRead`, so the server ships with everything it needs. The compiled binary serves those resources directly from an in-memory table, while a separate `assets/` directory remains available for user-provided uploads.
## Project layout
```
luxtools/
├── bin/ # Output directory for release binaries
├── static/ # Vendored assets compiled into the binary static table
├── src/
── luxtools.nim # Main server entrypoint
├── templates/
│ └── index.html # HTMX-powered landing page (compiled into the binary)
├── www/ # Runtime asset directory served from disk
── luxtools.nim # Main server entrypoint
│ ├── static/ # Vendored assets compiled into the binary static table
│ └── templates/ # HTMX-powered landing page (compiled into the binary)
├── assets/ # Runtime asset directory served from disk
├── tests/
│ └── test_rendering.nim# Lightweight regression tests for HTML helpers
├── luxtools.nimble # Nimble manifest with build/test tasks