Unreact
A static site generation framework for Rust using Handlebars and Scss.
Submit issue here
Usage
For a quick start, check out Unreact Template
Add the latest version to your Cargo.toml
dependencies
= "*"
Using "dev"
feature
Features:
unreact/dev
- Creates local dev server to host files.unreact/watch
- Superset ofunreact/dev
. Also listens for file changes and reloads server.
Run with --dev
or -d
arguments, for unreact::is_dev()
function to return true
. Only works if unreact/dev
or unreact/watch
features are enabled.
# Run with `watch` feature, and dev mode
# Run without `watch` (for a production server)
Hot-reloading in dev mode
With the "watch"
feature enabled, the dev server will watch for changes in asset folders (templates
, styles
, and public
; Can be changed with config).
The client will reload if a change was detected.
NOTE: This will NOT reload the client if Rust files (in
src
) were changed! (See below)
Watching router in dev mode
This will watch file in src
, and reload the program. The client should automatically try to reconnect.
cargo watch -x "run --features unreact/watch -- --dev" -w src -w Cargo.toml
Small Example
Create an site with a single index page
use *;
Larger Example
use *;
Automatic Compilation with Github Pages
In .github/workflows/build.yaml
:
name: Build
on:
# Triggers the workflow on push or pull request events but only for the "main" branch
push:
branches:
pull_request:
branches:
jobs:
build:
runs-on: ubuntu-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout 🛎️
uses: actions/checkout@v3
# Run compilation script with Rust
- name: Build 🔧
run: cargo run
# Push changes with plugin
- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
# This must be the build directory
folder: ./build