{
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 =
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;
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;
});
}