summaryrefslogtreecommitdiffstats
path: root/beamer/flake.nix
diff options
context:
space:
mode:
authorMinijackson <minijackson@riseup.net>2021-11-03 16:04:03 +0100
committerMinijackson <minijackson@riseup.net>2021-11-03 16:05:52 +0100
commit7784b511e0d40964f9867dcbb209841d8de20815 (patch)
tree6cacc174e72c87bbff04c5ea81927f633be55094 /beamer/flake.nix
downloadpandoc-nix-templates-7784b511e0d40964f9867dcbb209841d8de20815.tar.gz
pandoc-nix-templates-7784b511e0d40964f9867dcbb209841d8de20815.zip
init with beamer template
Diffstat (limited to 'beamer/flake.nix')
-rw-r--r--beamer/flake.nix105
1 files changed, 105 insertions, 0 deletions
diff --git a/beamer/flake.nix b/beamer/flake.nix
new file mode 100644
index 0000000..3bfc9b3
--- /dev/null
+++ b/beamer/flake.nix
@@ -0,0 +1,105 @@
1{
2 description = "My epic presentation";
3
4 inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
5 inputs.beamertheme-metropolis = {
6 url = "github:matze/mtheme";
7 flake = false;
8 };
9 inputs.draculaTheme = {
10 url = "github:dracula/pygments";
11 flake = false;
12 };
13
14 outputs = { self, nixpkgs, beamertheme-metropolis, draculaTheme, }:
15 let
16 pkgs = nixpkgs.legacyPackages.x86_64-linux;
17 in
18 {
19
20 packages.x86_64-linux.pygments = pkgs.python3Packages.pygments.overrideAttrs (oldAttrs: {
21 postPatch = ''
22 cp ${draculaTheme}/dracula.py pygments/styles/
23 sed -i 's/bg:.\+ //' pygments/styles/inkpot.py
24 '';
25 });
26
27 defaultPackage.x86_64-linux =
28 let
29 beamertheme-metropolis' = pkgs.stdenvNoCC.mkDerivation {
30 pname = "texlive-beamertheme-metropolis";
31 version = "${builtins.substring 0 8 beamertheme-metropolis.lastModifiedDate}-${beamertheme-metropolis.shortRev or "dirty"}";
32
33 src = beamertheme-metropolis;
34
35 outputs = [ "out" "doc" ];
36
37 nativeBuildInputs = with pkgs; [
38 (texlive.combine {
39 inherit (texlive)
40 scheme-small
41 enumitem
42 fileinfo
43 latexmk;
44 })
45 ];
46
47 passthru = {
48 pname = "beamertheme-metropolis";
49 tlType = "run";
50 };
51
52 DESTDIR = placeholder "out";
53
54 dontConfigure = true;
55 };
56 in
57 pkgs.runCommand "slides"
58 {
59 src = ./.;
60 nativeBuildInputs = with pkgs; [
61 pandoc
62 self.packages.x86_64-linux.pygments
63 fira-code
64 which
65 (texlive.combine {
66 inherit (texlive)
67 scheme-medium
68 latexmk
69
70 beamercolorthemeowl
71
72 fvextra pgfopts minted catchfile upquote xstring framed;
73 beamertheme-metropolis = { pkgs = [ beamertheme-metropolis' ]; };
74 })
75 ];
76
77 FONTCONFIG_FILE = pkgs.makeFontsConf {
78 fontDirectories = with pkgs; [ lmodern freefont_ttf fira fira-code ];
79 };
80 } ''
81 unpackFile $src
82 cd */
83 chmod -R u+w .
84
85 pandoc slides.md -t beamer -so slides.tex \
86 --template=template.latex \
87 --lua-filter=${pkgs.pandoc-lua-filters}/share/pandoc/filters/minted.lua \
88 --pdf-engine=xelatex \
89 --pdf-engine-opt=-aux-directory=./build \
90 --pdf-engine-opt=-shell-escape
91
92 latexmk \
93 -shell-escape \
94 -xelatex \
95 -8bit \
96 -interaction=nonstopmode \
97 -verbose \
98 -file-line-error \
99 -output-directory=./build slides
100
101 cp build/slides.pdf $out
102 '';
103 # TODO: diagram-generator?
104 };
105}