Add Nix flake for reproducible dev and CI/CD

- flake.nix pins the full toolchain (asciidoctor + pdf/epub3/diagram/
  mathematical, plantuml, graphviz, jre, vale, epubcheck) via bundlerEnv
- Gemfile/Gemfile.lock/gemset.nix lock the Ruby gems; work around the
  vendored mtex2MML cmake_minimum_required incompatibility
- 'nix build' produces book.pdf + book.epub; 'nix develop' gives a shell
  where all existing make targets work
- CI/CD workflows now install Nix and build/lint/validate through the flake
- devcontainer uses Nix; add .envrc for direnv; document in README

Co-authored-by: Shelley <shelley@exe.dev>
This commit is contained in:
Dunya Kirkali
2026-08-08 15:36:51 +00:00
committed by Dunya Kirkali
parent c0c95fdff5
commit 0f64b1133e
13 changed files with 822 additions and 31 deletions

View File

@@ -1,11 +1,19 @@
{
"image": "asciidoctor/docker-asciidoctor:latest",
"image": "nixpkgs/devcontainer@sha256:423dabf2e17c6710bf9bb6160bf1c63be33c73672d31c884dcc47238f42f4eba",
"features": {
"ghcr.io/devcontainers/features/nix:1": {
"extraNixConfig": "experimental-features = nix-command flakes"
}
},
"onCreateCommand": "nix develop --command true",
"customizations": {
"vscode": {
"extensions": [
"asciidoctor.asciidoctor-vscode",
"ms-vscode.makefile-tools",
"chrischinchilla.vale-vscode"
"chrischinchilla.vale-vscode",
"jnoortheen.nix-ide",
"mkhl.direnv"
]
}
}