summaryrefslogtreecommitdiff
path: root/html/research/talks.nix
diff options
context:
space:
mode:
Diffstat (limited to 'html/research/talks.nix')
-rw-r--r--html/research/talks.nix144
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")
]
)
- )
- ])
+ ]
+ ))
])
- ]))
+ ])
+ ]
+ )
+)