diff options
| author | quentin@aristote.fr <quentin@aristote.fr> | 2023-09-30 21:24:54 +0200 |
|---|---|---|
| committer | quentin@aristote.fr <quentin@aristote.fr> | 2023-09-30 21:24:54 +0200 |
| commit | add6bcd3c1984068e7122fa07a8f3e35ebaf58a9 (patch) | |
| tree | 00f07b6a9ed1f8e46cd01de0e4a715a7c1f22c9e /default.nix | |
| parent | 164185033f0f6db94b8bd5fe4fc668001073959e (diff) | |
classless.css: fix implementation
Diffstat (limited to 'default.nix')
| -rw-r--r-- | default.nix | 120 |
1 files changed, 65 insertions, 55 deletions
diff --git a/default.nix b/default.nix index 4abdca3..2eaa55e 100644 --- a/default.nix +++ b/default.nix @@ -1,46 +1,56 @@ -{ pkgs, html, data }: - -let +{ + pkgs, + html, + data, +}: let commonArgs = { inherit data html make; inherit (pkgs) lib; }; - make = path: overrides: - let f = import path; - in f ((builtins.intersectAttrs (builtins.functionArgs f) commonArgs) + make = path: overrides: let + f = import path; + in + f ((builtins.intersectAttrs (builtins.functionArgs f) commonArgs) // overrides); - indexHTML = builtins.toFile "index.html" (make ./html { }); + indexHTML = builtins.toFile "index.html" (make ./html {}); classlessCSS = let - setOption = option: value: { "${option}" = value; }; + setOption = option: value: {"${option}" = value;}; setOptions = options: value: - builtins.foldl' (tmp: option: tmp // setOption option value) { } options; + builtins.foldl' (tmp: option: tmp // setOption option value) {} options; enable = options: setOptions options true; disable = options: setOptions options false; - in builtins.toFile "classless.css" (make ./css/classless.nix - (disable [ "tables" "hr" ] // enable [ - "headings-advanced" - "tooltip-citations" - "navbar" - "details-cards" - "big-first-letter" - "printing" - "grid" - ])); + in + builtins.toFile "classless.css" (make ./css/classless.nix + (disable ["tables" "hr"] + // enable [ + "tooltip-citations" + "navbar" + "details-cards" + "big-first-letter" + "printing" + "grid" + ])); robotsTXT = builtins.toFile "robots.txt" '' user-agent: * disallow: /static/ allow: /static/icon.png ''; - -in pkgs.callPackage ({ - # Packages - line-awesome, line-awesome-css, uncss, yuicompressor, imagemagick, - # Source files - index-html ? indexHTML, classless-css ? classlessCSS, files ? data.files - , icon ? ./static/icon.png }: - let +in + pkgs.callPackage ({ + # Packages + line-awesome, + line-awesome-css, + uncss, + yuicompressor, + imagemagick, + # Source files + index-html ? indexHTML, + classless-css ? classlessCSS, + files ? data.files, + icon ? ./static/icon.png, + }: let compress = "${yuicompressor}/bin/yuicompressor"; clean = "${uncss}/bin/uncss"; compressJPEG = size: '' @@ -52,35 +62,35 @@ in pkgs.callPackage ({ -resize ${size} \ -colorspace sRGB \ ''; - in pkgs.runCommand "webpage" { } '' - set -o xtrace - mkdir $out && pushd "$_" - ln -sT ${index-html} index.html - ln -sT ${robotsTXT} robots.txt - popd - - mkdir $out/static && pushd "$_" - ln -sT ${icon} icon.png - cp -r ${files} files - chmod a+w files - pushd files - ${compressJPEG "128x128"} avatar.jpg avatar.jpg.128 - ${compressJPEG "256x256"} avatar.jpg avatar.jpg.256 - ${compressJPEG "512x512"} avatar.jpg avatar.jpg.512 - popd - chmod a-w files - popd + in + pkgs.runCommand "webpage" {} '' + set -o xtrace + mkdir $out && pushd "$_" + ln -sT ${index-html} index.html + ln -sT ${robotsTXT} robots.txt + popd - mkdir -p $out/static/css && pushd "$_" - ${clean} ${index-html} --stylesheets file://${classless-css} \ - | ${compress} --type css >classless.min.css - popd + mkdir $out/static && pushd "$_" + ln -sT ${icon} icon.png + cp -r ${files} files + chmod a+w files + pushd files + ${compressJPEG "128x128"} avatar.jpg avatar.jpg.128 + ${compressJPEG "256x256"} avatar.jpg avatar.jpg.256 + ${compressJPEG "512x512"} avatar.jpg avatar.jpg.512 + popd + chmod a-w files + popd - mkdir -p $out/static/css/fonts/line-awesome && pushd "$_" - ln -sT ${line-awesome}/share/fonts/woff2 webfonts - ${clean} ${index-html} --stylesheets file://${line-awesome-css} \ - | ${compress} --type css >line-awesome.min.css - popd + mkdir -p $out/static/css && pushd "$_" + ${clean} ${index-html} --stylesheets file://${classless-css} \ + | ${compress} --type css >classless.min.css + popd - '') { } + mkdir -p $out/static/css/fonts/line-awesome && pushd "$_" + ln -sT ${line-awesome}/share/fonts/woff2 webfonts + ${clean} ${index-html} --stylesheets file://${line-awesome-css} \ + | ${compress} --type css >line-awesome.min.css + popd + '') {} |
