nix-jekyll-builder/README.md

70 lines
1.3 KiB
Markdown
Raw Normal View History

2024-12-06 13:43:50 +00:00
# nix-jekyll-builder
2024-12-06 15:18:02 +00:00
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 = ./.;
};
};
}
2024-12-06 15:21:41 +00:00
```
### 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