summaryrefslogtreecommitdiffstats
path: root/overlay.nix
blob: 85be7b73bdc07270a12980183baaff876786eebb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
inputs:

final: prev:

{
  inherit (inputs) pandoc-templates;

  pygments = prev.python3Packages.pygments.overrideAttrs (oldAttrs: {
    postPatch = ''
      cp ${inputs.draculaTheme}/dracula.py pygments/styles/
      sed -i \
        -e 's/bg:.\+ //' \
        -e 's/000080/808bed/' \
        -e 's/800080/ff8bff/' \
        -e 's/A00000/ce4e4e/' \
        -e 's/ff0000/ce4e4e/' \
        -e 's/ffff00/ffcd00/' \
        -e 's/008400/8fff8b/' \
        pygments/styles/inkpot.py
    '';
  });

  texlive = (prev.texlive or { }) // {
    beamertheme-metropolis =
      let
        date = builtins.substring 0 8 inputs.beamertheme-metropolis.lastModifiedDate;
        shortRev = inputs.beamertheme-metropolis.shortRev or "dirty";

        pkg = final.stdenvNoCC.mkDerivation {
          pname = "texlive-beamertheme-metropolis";
          version = "${date}-${shortRev}";

          src = inputs.beamertheme-metropolis;

          outputs = [ "out" "doc" ];

          nativeBuildInputs = [
            (final.texlive.combine {
              inherit (final.texlive)
                scheme-small
                enumitem
                fileinfo
                latexmk;
            })
          ];

          passthru = {
            pname = "beamertheme-metropolis";
            tlType = "run";
          };

          DESTDIR = placeholder "out";

          dontConfigure = true;
        };
      in
      { pkgs = [ pkg ]; };
  };

  mkPandocPdf = final.callPackage ./latex.nix { };
  mkPandocBeamerPdf = final.callPackage ./latex.nix { documentType = "beamer"; };
}