diff options
Diffstat (limited to 'html/research/talks.nix')
| -rw-r--r-- | html/research/talks.nix | 144 |
1 files changed, 73 insertions, 71 deletions
diff --git a/html/research/talks.nix b/html/research/talks.nix index 9e1fd56..a68e9f3 100644 --- a/html/research/talks.nix +++ b/html/research/talks.nix @@ -3,79 +3,81 @@ data, lib, ... -}: let - matchFirst = regexp: str: let - results = builtins.match regexp str; - in - if results == null - then null - else builtins.head results; - join = url: name: with html; lib.optionalString (url != null) " · ${href url "${icon "las la-paperclip"} ${name}"}"; - talks = data.publications.talks; +}: +let + matchFirst = + regexp: str: + let + results = builtins.match regexp str; + in + if results == null then null else builtins.head results; + join = + url: name: + with html; + lib.optionalString (url != null) " · ${href url "${icon "las la-paperclip"} ${name}"}"; + talks = data.research.talks; in - with html; - dl (for (sort.reverse.byPath ["issued" "date-parts"] talks) (item: - with item; let - date-parts = builtins.head issued.date-parts; - date = { - year = builtins.elemAt date-parts 0; - month = builtins.elemAt date-parts 1; - day = builtins.elemAt date-parts 2; - }; - extra = - if item ? note - then note - else ""; - abstractURL = matchFirst ".*abstract: ([^\n ]*).*" extra; - slidesURL = matchFirst ".*slides: ([^\n ]*).*" extra; +with html; +dl ( + for (sort.reverse.byPath [ "issued" "date-parts" ] talks) ( + item: + with item; + let + date-parts = builtins.head issued.date-parts; + date = { + year = builtins.elemAt date-parts 0; + month = builtins.elemAt date-parts 1; + day = builtins.elemAt date-parts 2; + }; + extra = if item ? note then note else ""; + abstractURL = matchFirst ".*abstract: ([^\n ]*).*" extra; + slidesURL = matchFirst ".*slides: ([^\n ]*).*" extra; + # broken because of tabs + # paperURL = let + # paperId = matchFirst "([A-z0-9]*[0-9]{4})[a-z]" id; + # in + # if paperId == null + # then null + # else "#Writings#${paperId}"; + in + [ + (dt [ + ((if abstractURL == null then (x: x) else href abstractURL) (em title)) + ]) + (dd [ + (with (makeDate date); tag pretty) + "@ ${href url event-title}, ${publisher-place}" + (join slidesURL "slides") # broken because of tabs - # paperURL = let - # paperId = matchFirst "([A-z0-9]*[0-9]{4})[a-z]" id; - # in - # if paperId == null - # then null - # else "#Writings#${paperId}"; - in [ - (dt [ - (( - if abstractURL == null - then (x: x) - else href abstractURL - ) (em title)) - ]) - (dd [ - (with (makeDate date); tag pretty) - "@ ${href url event-title}, ${publisher-place}" - (join slidesURL "slides") - # broken because of tabs - # (join paperURL "paper") - (details [ - (summary "More") - ( - dl ( - lib.optionals (item ? abstract) [ - (dt "Abstract.") - (dd (blockquote abstract)) - ] - ++ [ - (dt "Cite.") - (let - citeWith = title: type: - details [ - (summary title) - (pre (code ( - lib.readFile "${data.publications.files}/${type}/${id}" - ))) - ]; - in - dd [ - (citeWith "BibLaTeX" "biblatex") - (citeWith "BibTeX" "bibtex") - (citeWith "CSL JSON" "csljson") - ]) + # (join paperURL "paper") + (details [ + (summary "More") + (dl ( + lib.optionals (item ? abstract) [ + (dt "Abstract.") + (dd (blockquote abstract)) + ] + ++ [ + (dt "Cite.") + ( + let + citeWith = + title: type: + details [ + (summary title) + (pre (code (lib.readFile "${data.research.files}/${type}/${id}"))) + ]; + in + dd [ + (citeWith "BibLaTeX" "biblatex") + (citeWith "BibTeX" "bibtex") + (citeWith "CSL JSON" "csljson") ] ) - ) - ]) + ] + )) ]) - ])) + ]) + ] + ) +) |
