# nix-jekyll-builder A Nix flake for building Jekyll sites with reproducible builds and minified output. ## Features - Reproducible Jekyll site builds - HTML minification included - Bundler environment management - Configurable gem dependencies - Testing framework included ## Usage ### Basic Usage In your Jekyll site's `flake.nix`: ```nix { inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; nix-jekyll-builder.url = "git+https://git.chobble.com/chobble/nix-jekyll-builder"; }; outputs = { self, nixpkgs, nix-jekyll-builder }: let system = "x86_64-linux"; # or your system in { packages.${system}.default = nix-jekyll-builder.lib.${system}.mkJekyllSite { pname = "my-jekyll-site"; src = ./.; }; }; } ``` ### Custom Configuration You can customize the build by providing your own Gemfile, lockfile, and gemset: ```nix nix-jekyll-builder.lib.${system}.mkJekyllSite { pname = "my-jekyll-site"; version = "1.0.0"; # optional src = ./.; gemfile = ./Gemfile; lockfile = ./Gemfile.lock; gemset = ./gemset.nix; } ``` ### Generating gemset.nix ```bash # In your project directory with Gemfile present nix-shell -p bundix --run "bundix -l" ``` ## Running Tests ```nix nix run .#test ``` ## Requirements - Nix with flakes enabled - Ruby gems specified in your Gemfile