alpha
This commit is contained in:
127
README.md
Normal file
127
README.md
Normal file
@@ -0,0 +1,127 @@
|
||||
# Fes
|
||||
|
||||
A lightweight static site generator built with Go and Lua. Write your websites in Lua and generate beautiful HTML with a modern dark theme.
|
||||
|
||||
## Features
|
||||
|
||||
- 🚀 **Simple & Fast**: Minimal setup, fast development workflow
|
||||
- 🎨 **Beautiful Default Theme**: Modern dark theme with clean typography
|
||||
- 📝 **Lua-Powered**: Write your site logic in Lua for flexibility
|
||||
- ⚙️ **TOML Configuration**: Simple configuration via `Fes.toml`
|
||||
- 🔧 **Easy CLI**: Two simple commands to get started
|
||||
|
||||
## Installation
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Go 1.25.4 or later
|
||||
- Git (for author name detection)
|
||||
|
||||
### Build from Source
|
||||
|
||||
```bash
|
||||
git clone <repository-url>
|
||||
cd fes
|
||||
go build -o fes
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Create a New Project
|
||||
|
||||
```bash
|
||||
fes new <project_dir>
|
||||
```
|
||||
|
||||
This creates a new project directory with:
|
||||
- `www/index.lua` - Your main Lua file
|
||||
- `Fes.toml` - Project configuration
|
||||
|
||||
### Run Development Server
|
||||
|
||||
```bash
|
||||
fes run <project_dir> [-p <port>]
|
||||
```
|
||||
|
||||
Starts a local development server (default port: 3000).
|
||||
|
||||
Example:
|
||||
```bash
|
||||
fes run my-site -p 8080
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
my-site/
|
||||
├── Fes.toml # Project configuration
|
||||
└── www/
|
||||
└── index.lua # Main Lua file
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Edit `Fes.toml` to configure your site:
|
||||
|
||||
```toml
|
||||
[site]
|
||||
name = "My Site"
|
||||
version = "0.0.1"
|
||||
authors = ["Your Name"]
|
||||
|
||||
[fes]
|
||||
version = "1.0.0"
|
||||
CUSTOM_CSS = "" # Optional custom CSS
|
||||
```
|
||||
|
||||
## Writing Your Site
|
||||
|
||||
Your `www/index.lua` file should use the Fes API to build your site:
|
||||
|
||||
```lua
|
||||
local fes = require("fes")
|
||||
local site = fes.site_builder()
|
||||
|
||||
site:h1("Hello, World!")
|
||||
site:h2("Welcome to Fes")
|
||||
site:custom("<p>This is a custom HTML paragraph.</p>")
|
||||
|
||||
return site
|
||||
```
|
||||
|
||||
### Available Methods
|
||||
|
||||
- `site:h1(text)` - Heading 1
|
||||
- `site:h2(text)` - Heading 2
|
||||
- `site:h3(text)` - Heading 3
|
||||
- `site:h4(text)` - Heading 4
|
||||
- `site:h5(text)` - Heading 5
|
||||
- `site:h6(text)` - Heading 6
|
||||
- `site:custom(html)` - Insert custom HTML
|
||||
- `site:version()` - Get site version from config
|
||||
|
||||
### Standard Library
|
||||
|
||||
Access version information via `fes.std`:
|
||||
|
||||
```lua
|
||||
local fes = require("fes")
|
||||
local site = fes.site_builder()
|
||||
|
||||
site:h2("Fes version: " .. fes.std.fes_version())
|
||||
site:h2("Site version: " .. fes.std.site_version())
|
||||
|
||||
return site
|
||||
```
|
||||
|
||||
## Example
|
||||
|
||||
See the `test/` directory for a complete example project.
|
||||
|
||||
## License
|
||||
|
||||
ISC License
|
||||
|
||||
Copyright (c) 2025 fSD
|
||||
|
||||
See `COPYING` for full license text.
|
||||
Reference in New Issue
Block a user