{ inputs = { #nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; # At the time of writing, netlify-cli’s build is failing on unstable. nixpkgs.url = "github:sbruder/nixpkgs/fix-netlify-cli"; flake-utils.url = "github:numtide/flake-utils"; revealjs.url = "github:hakimel/reveal.js/4.1.0"; revealjs.flake = false; }; outputs = { self, flake-utils, nixpkgs, revealjs }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; in rec { packages.sbruder.presis = let python = (pkgs.python38.withPackages (ps: with ps; [ CommonMark jinja2 pyyaml ])); texlive = pkgs.texlive.combine { inherit (pkgs.texlive) scheme-medium appendixnumberbeamer beamertheme-focus beamertheme-metropolis biber biblatex csquotes datetime datetime2 datetime2-english datetime2-german enumitem fmtcount multirow pgfopts; }; in pkgs.stdenv.mkDerivation { name = "sbruder-presis"; nativeBuildInputs = [ python texlive ]; src = self; FONTCONFIG_FILE = pkgs.makeFontsConf { fontDirectories = with pkgs; [ fira iosevka ]; }; enableParallelBuilding = true; configurePhase = '' ln -sfT ${revealjs} revealjs/_assets/reveal.js ''; installPhase = '' cp -r . $out; ''; dontFixup = true; }; defaultPackage = packages.sbruder.presis; devShell = pkgs.mkShell { buildInputs = packages.sbruder.presis.nativeBuildInputs ++ (with pkgs; [ bash netlify-cli ]); shellHook = packages.sbruder.presis.configurePhase; }; }); }