From a777982b17ca555cb2a33e5828f8dc9cca302430 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Thu, 4 Nov 2021 10:45:06 +0100 Subject: factorize build instructions --- beamer/flake.nix | 116 +++++-------------------------------------------------- 1 file changed, 10 insertions(+), 106 deletions(-) (limited to 'beamer') diff --git a/beamer/flake.nix b/beamer/flake.nix index d5e1614..b2c472e 100644 --- a/beamer/flake.nix +++ b/beamer/flake.nix @@ -2,115 +2,19 @@ description = "My epic presentation"; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - inputs.beamertheme-metropolis = { - url = "github:matze/mtheme"; - flake = false; - }; - inputs.draculaTheme = { - url = "github:dracula/pygments"; - flake = false; - }; - inputs.pandoc-templates = { - url = "github:minijackson/pandoc-templates"; - flake = false; - }; + inputs.pandoc-nix-templates.url = "github:minijackson/pandoc-nix-templates"; - outputs = { self, nixpkgs, beamertheme-metropolis, draculaTheme, pandoc-templates, }: + outputs = { self, nixpkgs, pandoc-nix-templates, }: let - pkgs = nixpkgs.legacyPackages.x86_64-linux; + pkgs = import nixpkgs { + system = "x86_64-linux"; + overlays = [ pandoc-nix-templates.overlay ]; + }; in { - - packages.x86_64-linux.pygments = pkgs.python3Packages.pygments.overrideAttrs (oldAttrs: { - postPatch = '' - cp ${draculaTheme}/dracula.py pygments/styles/ - sed -i 's/bg:.\+ //' pygments/styles/inkpot.py - ''; - }); - - defaultPackage.x86_64-linux = - let - beamertheme-metropolis' = pkgs.stdenvNoCC.mkDerivation { - pname = "texlive-beamertheme-metropolis"; - version = "${builtins.substring 0 8 beamertheme-metropolis.lastModifiedDate}-${beamertheme-metropolis.shortRev or "dirty"}"; - - src = beamertheme-metropolis; - - outputs = [ "out" "doc" ]; - - nativeBuildInputs = with pkgs; [ - (texlive.combine { - inherit (texlive) - scheme-small - enumitem - fileinfo - latexmk; - }) - ]; - - passthru = { - pname = "beamertheme-metropolis"; - tlType = "run"; - }; - - DESTDIR = placeholder "out"; - - dontConfigure = true; - }; - in - pkgs.runCommand "slides" - { - src = ./.; - nativeBuildInputs = with pkgs; [ - pandoc - self.packages.x86_64-linux.pygments - fira-code - which - (texlive.combine { - inherit (texlive) - scheme-medium - latexmk - - beamercolorthemeowl - - # For framed code listings - tcolorbox environ - - # Optional pandoc dependencies - microtype upquote parskip xurl bookmark footnotehyper - - # Some dependencies - fvextra pgfopts minted catchfile xstring framed; - beamertheme-metropolis = { pkgs = [ beamertheme-metropolis' ]; }; - }) - ]; - - FONTCONFIG_FILE = pkgs.makeFontsConf { - fontDirectories = with pkgs; [ lmodern freefont_ttf fira fira-code ]; - }; - } '' - unpackFile $src - cd */ - chmod -R u+w . - - pandoc slides.md -t beamer -so slides.tex \ - --template=${pandoc-templates}/default.latex \ - --lua-filter=${pkgs.pandoc-lua-filters}/share/pandoc/filters/minted.lua \ - --pdf-engine=xelatex \ - --pdf-engine-opt=-aux-directory=./build \ - --pdf-engine-opt=-shell-escape - - latexmk \ - -shell-escape \ - -xelatex \ - -8bit \ - -interaction=nonstopmode \ - -verbose \ - -file-line-error \ - -output-directory=./build slides - - cp build/slides.pdf $out - ''; - # TODO: diagram-generator? + defaultPackage.x86_64-linux = pkgs.mkPandocBeamerPdf { + name = "slides"; + src = ./.; + }; }; } -- cgit v1.2.3