A minimal static site generator tailored to my needs.
CI: https://hydra.emile.space/project/vokobe
Build
; cargo build --releaseUsage/Examples
; ./target/release/vokobe --help vokobe 0.1.0 A static site generator USAGE: vokobe [FLAGS] <in-path> <out-path> <site-name> FLAGS: -a, --analytics Activate sending analytics to stats.emile.space -h, --help Prints help information -V, --version Prints version information ARGS: <in-path> Input path <out-path> Output path <site-name> Site name (e.g. emile.space)
Deployment
The following subsections contain some example for small shell scripts that might be useful for Deployment.
build.sh
Remove the output dir, build it from scratch and update the perms.
I'm actually considering rebuilding vokobe with incremental builds in mind, as it can take a bit to create some really large projects.
rm -rf out/ vokobe -a ./in ./out emile.space chmod -R +r out/
sync.sh
Syncronize the generated output to the remote host for hosting it.
rsync -avz --delete <out-path>/* <user>@<host>:<path>
publish.sh
Build and Syncronize.
./build.sh ./sync.sh
host.sh
Host the local version
python3 -m http.server 8081 -d <outpath>/ -b 0.0.0.0
watchbuild.sh
rebuild on changes
#! /usr/bin/env nix-shell #! nix-shell -i bash -p fd entr while sleep 0.5; do fd . in | entr -d ./build.sh done
local.sh
run a script updating it on changes and one hosting the output.
sh ./watchbuild.sh &
sh ./host.shContributing
Send patches!