diff options
| author | Quentin Aristote <quentin@aristote.fr> | 2022-11-11 17:27:34 +0100 |
|---|---|---|
| committer | Quentin Aristote <quentin@aristote.fr> | 2022-11-11 17:27:34 +0100 |
| commit | 102ed4e7d78dd17ce8ce9e0b928f5123e94d0cfa (patch) | |
| tree | 357bafdd2f40ca3504748998e8c9d704198a485d /publications/default.nix | |
add initial data
Diffstat (limited to 'publications/default.nix')
| -rw-r--r-- | publications/default.nix | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/publications/default.nix b/publications/default.nix new file mode 100644 index 0000000..2c85dff --- /dev/null +++ b/publications/default.nix @@ -0,0 +1,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 |
