blob: 2c85dffc90f9dc0a5668449e65745bb5a4f69e5e (
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
|
{ pkgs, lib, ... }:
let
csl = lib.importJSON ./publications.json;
export = id: publication: format:
let
publicationJSON =
builtins.toFile "${id}.json" (builtins.toJSON [ publication ]);
publicationOut = pkgs.runCommand "${id}.${format}" { } ''
"${pkgs.pandoc}/bin/pandoc" "${publicationJSON}" --from csljson --to "${format}" --output "$out"
'';
in builtins.readFile publicationOut;
tryInherit = inheritFrom: attrs:
with lib;
foldl' (tmp: next:
tmp ++ optional (hasAttr next inheritFrom) (getAttr next inheritFrom)) [ ]
attrs;
in builtins.map (publication:
with publication;
let exportThisTo = export id publication;
in publication // {
year = with builtins; toString (head (head issued.date-parts));
url = URL;
cite = {
bibtex = exportThisTo "bibtex";
biblatex = exportThisTo "biblatex";
csljson = exportThisTo "csljson";
};
}) csl
|