diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..1d953f4 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use nix diff --git a/.gitignore b/.gitignore index 776df56..e223d8f 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,5 @@ # reveal js (generated) /revealjs/*/index.html + +/result diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..9952cf8 --- /dev/null +++ b/default.nix @@ -0,0 +1,56 @@ +let + pkgs = import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/24c9b05ac53e422f1af81a156f1fd58499eb27fb.tar.gz") {}; + + # reproducible source + gitignoreSrc = pkgs.fetchFromGitHub { + owner = "hercules-ci"; + repo = "gitignore"; + rev = "c4662e662462e7bf3c2a968483478a665d00e717"; + sha256 = "sha256:1npnx0h6bd0d7ql93ka7azhj40zgjp815fw2r6smg8ch9p7mzdlx"; + }; + inherit (import gitignoreSrc { inherit (pkgs) lib; }) gitignoreSource; + + 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 + datetime + enumitem + fmtcount + pgfopts; + }; +in +pkgs.stdenv.mkDerivation { + name = "presis"; + + nativeBuildInputs = [ + python + texlive + ]; + + src = gitignoreSource ./.; + + FONTCONFIG_FILE = pkgs.makeFontsConf { + fontDirectories = with pkgs; [ + fira + iosevka + ]; + }; + + enableParallelBuilding = true; + + dontFixup = true; + + installPhase = '' + cp -r . $out; + ''; +} diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..95da550 --- /dev/null +++ b/shell.nix @@ -0,0 +1 @@ +import ./default.nix