summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authoraristote <quentin.aristote@irif.fr>2025-12-09 17:04:45 +0100
committeraristote <quentin.aristote@irif.fr>2025-12-09 17:04:45 +0100
commit76728c3faefa6791158824062401973762659fc2 (patch)
tree9a01d6ec239f39cd8cb7922b26b7931cc5a27032 /lib
parent142720d405ceec1d768a56b8c9273621ac967c4c (diff)
format
Diffstat (limited to 'lib')
-rw-r--r--lib/default.nix5
-rw-r--r--lib/latex.nix137
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;
};
};
- }
+}