summaryrefslogtreecommitdiff
path: root/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'default.nix')
-rw-r--r--default.nix120
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
+ '') {}