# Veltox
**Veltox** is a blazing-fast, themeable static site generator written in Rust β perfect for documentation, blogs, and technical sites. It converts Markdown files into HTML using customizable templates, generates a dynamic sidebar, and builds a searchable index for client-side search or content listing.
---
## β¨ Features
- π **Markdown to HTML** conversion with YAML frontmatter support
- π¨ **Theme system** with Tera templates and custom CSS
- π **Dynamic sidebar** generation based on your content structure
- π **Search index** (`search-index.json`) for building search bars or blog listings
- π¦ **Self-contained output** β all assets and templates copied into `public/`
- β‘ **Fast and minimal** β no JavaScript required, no runtime dependencies
---
## π¦ Installation
Install via Cargo:
```bash
cargo install veltox
```
Or build from source:
```bash
git clone https://github.com/yourname/veltox
cd veltox
cargo build --release
```
---
## π Usage
Place your Markdown files in a `content/` folder:
```markdown
# content/intro.md
---
title: "Welcome"
template: "page.html"
---
# Hello
This is your first Veltox page.
```
Then run:
```bash
veltox
```
Veltox will generate your site in the `public/` folder.
---
## π¨ Themes
Themes live in `themes/<name>/` and include:
```
themes/
βββ docs/
βββ templates/
β βββ page.html
βββ theme.css
```
Set your theme in `veltox.toml`:
```toml
theme = "docs"
```
Veltox copies the selected template and CSS into `public/`, ensuring all links are relative and portable.
---
## π Search Index
Veltox automatically generates a `search-index.json` containing:
```json
[
{
"title": "Welcome",
"url": "./intro.html",
"content": "Markdown content here..."
}
]
```
Use this for client-side search, blog listings, or tag filters.
---
## π§© Plugin System (Planned)
Veltox is designed to be extensible. A plugin system is planned to allow hooks like:
- `on_load`
- `on_render`
- `on_index`
- `on_finish`
Stay tuned!
---
## π License
MIT
---
## β€οΈ Built With
- [Rust](https://www.rust-lang.org/)
- [Tera](https://keats.github.io/tera/)
- [Pulldown-Cmark](https://github.com/raphlinus/pulldown-cmark)
- [Walkdir](https://docs.rs/walkdir)
---
Veltox is built to document real Rust projects β like the web framework it was born to support. Use it, fork it, extend it. Itβs yours.