70 lines
1.3 KiB
Markdown
70 lines
1.3 KiB
Markdown
# 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
|