- New tagline: "The Language That Changes Everything" - Highlight 6 key features: algebraic effects, behavioral types, schema evolution, dual compilation, native performance, batteries included - Add sections for behavioral types (is pure, is total, is idempotent) - Add section for schema evolution with migration examples - Add section for dual compilation (C and JavaScript) - Add "Why Lux?" comparisons (vs Haskell, Rust, Go, TypeScript, Elm, Zig) - Add built-in effects showcase (Console, File, Http, Sql, etc.) - Add developer tools section (package manager, LSP, REPL, etc.) - Fix navigation to use anchor links (single-page site) - Update footer to link to GitHub docs/examples - Add README with local testing instructions Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
73 lines
1.7 KiB
Markdown
73 lines
1.7 KiB
Markdown
# Lux Website
|
|
|
|
## Testing Locally
|
|
|
|
The website is a static HTML site. To test it with working navigation:
|
|
|
|
### Option 1: Python (simplest)
|
|
```bash
|
|
cd website/lux-site/dist
|
|
python -m http.server 8000
|
|
# Open http://localhost:8000
|
|
```
|
|
|
|
### Option 2: Node.js
|
|
```bash
|
|
npx serve website/lux-site/dist
|
|
# Open http://localhost:3000
|
|
```
|
|
|
|
### Option 3: Nix
|
|
```bash
|
|
nix-shell -p python3 --run "cd website/lux-site/dist && python -m http.server 8000"
|
|
```
|
|
|
|
### Option 4: Direct file (limited)
|
|
Open `website/lux-site/dist/index.html` directly in a browser. Navigation links will work since they're anchor links (`#features`, `#effects`, etc.), but this won't work for multi-page setups.
|
|
|
|
## Structure
|
|
|
|
```
|
|
website/lux-site/
|
|
├── dist/
|
|
│ ├── index.html # Main website
|
|
│ └── static/
|
|
│ └── style.css # Styles
|
|
├── src/
|
|
│ ├── components.lux # Lux components (for future generation)
|
|
│ ├── pages.lux # Page templates
|
|
│ └── generate.lux # Site generator
|
|
├── LUX_WEAKNESSES.md # Issues found during development
|
|
└── README.md # This file
|
|
```
|
|
|
|
## Building with Lux
|
|
|
|
Once the module system is working (fixed!), you can generate the site:
|
|
|
|
```bash
|
|
./target/release/lux website/lux-site/src/generate.lux
|
|
```
|
|
|
|
The HTML module is now functional and can render HTML from Lux code:
|
|
|
|
```lux
|
|
import stdlib/html
|
|
|
|
let page = html.div([html.class("container")], [
|
|
html.h1([], [html.text("Hello!")])
|
|
])
|
|
|
|
Console.print(html.render(page))
|
|
// Output: <div class="container"><h1>Hello!</h1></div>
|
|
```
|
|
|
|
## Deployment
|
|
|
|
For GitHub Pages or any static hosting:
|
|
|
|
```bash
|
|
# Copy dist folder to your hosting
|
|
cp -r website/lux-site/dist/* /path/to/deploy/
|
|
```
|