diff options
| author | aristote <quentin.aristote@irif.fr> | 2025-12-09 17:04:45 +0100 |
|---|---|---|
| committer | aristote <quentin.aristote@irif.fr> | 2025-12-09 17:04:45 +0100 |
| commit | 76728c3faefa6791158824062401973762659fc2 (patch) | |
| tree | 9a01d6ec239f39cd8cb7922b26b7931cc5a27032 /lib | |
| parent | 142720d405ceec1d768a56b8c9273621ac967c4c (diff) | |
format
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/default.nix | 5 | ||||
| -rw-r--r-- | lib/latex.nix | 137 |
2 files changed, 74 insertions, 68 deletions
diff --git a/lib/default.nix b/lib/default.nix index 6926374..24267b1 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,3 +1,4 @@ -{lib}: { - pp.latex = import ./latex.nix {inherit lib;}; +{ lib }: +{ + pp.latex = import ./latex.nix { inherit lib; }; } diff --git a/lib/latex.nix b/lib/latex.nix index 1524620..e3d0597 100644 --- a/lib/latex.nix +++ b/lib/latex.nix @@ -1,47 +1,42 @@ -{lib, ...}: let - lines = content: - if lib.isList content - then +{ lib, ... }: +let + lines = + content: + if lib.isList content then ( - if content == [] - then "" - else lines (builtins.head content) + "\n" + lines (builtins.tail content) + if content == [ ] then "" else lines (builtins.head content) + "\n" + lines (builtins.tail content) ) - else content; + else + content; sortByFun = cmp: f: lib.sort (x: y: cmp (f x) (f y)); sortByPath = cmp: keys: sortByFun cmp (lib.getAttrFromPath keys); - sortByKey = cmp: key: sortByPath cmp [key]; - for = iterable: f: - if lib.isList iterable - then builtins.map f iterable - else lib.mapAttrsToList f iterable; + sortByKey = cmp: key: sortByPath cmp [ key ]; + for = + iterable: f: if lib.isList iterable then builtins.map f iterable else lib.mapAttrsToList f iterable; setOptionalArg = name: value: "${name}=${value}"; - expandArgsPrefixed = numArgs: prefix: - if numArgs <= 0 - then prefix + expandArgsPrefixed = + numArgs: prefix: + if numArgs <= 0 then + prefix else - arg: let + arg: + let appendToPrefix = - if lib.isAttrs arg - then - "[" - + lib.concatStringsSep "," (lib.mapAttrsToList setOptionalArg arg) - + "]" - else "{${arg}}"; - newNumArgs = - if lib.isAttrs arg - then numArgs - else numArgs - 1; + if lib.isAttrs arg then + "[" + lib.concatStringsSep "," (lib.mapAttrsToList setOptionalArg arg) + "]" + else + "{${arg}}"; + newNumArgs = if lib.isAttrs arg then numArgs else numArgs - 1; in - expandArgsPrefixed newNumArgs (prefix + appendToPrefix); + expandArgsPrefixed newNumArgs (prefix + appendToPrefix); macroWithOpts = name: numArgs: expandArgsPrefixed numArgs "\\${name}"; - macro = name: content: let - contentExpanded = - if lib.isList content - then lib.concatStringsSep "}{" content - else content; - in "\\${name}{${contentExpanded}}"; + macro = + name: content: + let + contentExpanded = if lib.isList content then lib.concatStringsSep "}{" content else content; + in + "\\${name}{${contentExpanded}}"; sectionMacro = type: name: content: '' \${type}{${name}} @@ -72,7 +67,7 @@ email = macroWithOpts "email" 1; extrainfo = macroWithOpts "extrainfo" 1; photo = macroWithOpts "photo" 1; - makecvtitle = macro "makecvtitle" []; + makecvtitle = macro "makecvtitle" [ ]; cventry = macroWithOpts "cventry" 6; cvlistitem = macroWithOpts "cvlistitem" 1; cvline = macroWithOpts "cvline" 2; @@ -83,42 +78,52 @@ file = path: "files/${path}"; href = latex.href; - timerange = startdate: enddate: let - print = builtins.mapAttrs (_: x: builtins.toString x); - # let str = builtins.toString x; - # in if name == "year" then - # builtins.substring 2 4 str - # else - # (if name == "month" && x < 10 then "0${str}" else str)); - start = print startdate; - end = print enddate; - months = { - "1" = "jan"; - "2" = "feb"; - "3" = "mar"; - "4" = "apr"; - "5" = "may"; - "6" = "jun"; - "7" = "jul"; - "8" = "aug"; - "9" = "sep"; - "10" = "oct"; - "11" = "nov"; - "12" = "dec"; - }; - in + timerange = + startdate: enddate: + let + print = builtins.mapAttrs (_: x: builtins.toString x); + # let str = builtins.toString x; + # in if name == "year" then + # builtins.substring 2 4 str + # else + # (if name == "month" && x < 10 then "0${str}" else str)); + start = print startdate; + end = print enddate; + months = { + "1" = "jan"; + "2" = "feb"; + "3" = "mar"; + "4" = "apr"; + "5" = "may"; + "6" = "jun"; + "7" = "jul"; + "8" = "aug"; + "9" = "sep"; + "10" = "oct"; + "11" = "nov"; + "12" = "dec"; + }; + in "${months."${start.month}"}." + lib.optionalString (start.year != end.year) " ${start.year}" + " -- ${months."${end.month}"}. ${end.year}"; in - latex - // { - inherit for file href lines timerange; - code = x: x; - sort = let +latex +// { + inherit + for + file + href + lines + timerange + ; + code = x: x; + sort = + let lt = x: y: x < y; gt = x: y: x > y; - in { + in + { byKey = sortByKey lt; byPath = sortByPath lt; byFun = sortByFun lt; @@ -128,4 +133,4 @@ in byFun = sortByFun gt; }; }; - } +} |
