From e107311cb87fc219889f37f0c67cfea22b4a99e7 Mon Sep 17 00:00:00 2001 From: William Carroll Date: Mon, 27 Dec 2021 20:06:08 -0400 Subject: refactor(wpcarro/website): Prefer substituteAll `substituteAll` supports templating with @variables@, which I think really cleans things up. Change-Id: Icfad15ac9e174495ba02260d817f7330f1616c6f Reviewed-on: https://cl.tvl.fyi/c/depot/+/4722 Reviewed-by: wpcarro Autosubmit: wpcarro Tested-by: BuildkiteCI --- users/wpcarro/website/blog/default.nix | 47 ++++------- users/wpcarro/website/blog/fragments/.skip-subtree | 0 users/wpcarro/website/blog/fragments/post.html | 8 ++ users/wpcarro/website/blog/fragments/posts.html | 10 +++ users/wpcarro/website/default.nix | 36 ++++---- users/wpcarro/website/fragments/addendum.html | 13 --- users/wpcarro/website/fragments/footer.html | 20 ----- users/wpcarro/website/fragments/header.html | 57 ------------- users/wpcarro/website/fragments/template.html | 96 ++++++++++++++++++++++ 9 files changed, 148 insertions(+), 139 deletions(-) create mode 100644 users/wpcarro/website/blog/fragments/.skip-subtree create mode 100644 users/wpcarro/website/blog/fragments/post.html create mode 100644 users/wpcarro/website/blog/fragments/posts.html delete mode 100644 users/wpcarro/website/fragments/addendum.html delete mode 100644 users/wpcarro/website/fragments/footer.html delete mode 100644 users/wpcarro/website/fragments/header.html create mode 100644 users/wpcarro/website/fragments/template.html (limited to 'users/wpcarro/website') diff --git a/users/wpcarro/website/blog/default.nix b/users/wpcarro/website/blog/default.nix index bef06cad74..713c42a83b 100644 --- a/users/wpcarro/website/blog/default.nix +++ b/users/wpcarro/website/blog/default.nix @@ -6,16 +6,16 @@ let inherit (builtins) hasAttr filter readFile; inherit (depot.web.blog) post includePost renderPost; inherit (depot.users) wpcarro; - inherit (pkgs) runCommandNoCC; config = { name = "wpcarro's blog"; baseUrl = "https://wpcarro.dev/blog"; + footer = ""; }; posts = filter includePost (list post (import ./posts.nix)); - rendered = runCommandNoCC "wpcarros-blog" {} '' + rendered = pkgs.runCommandNoCC "wpcarros-blog-posts" {} '' mkdir -p $out ${lib.concatStringsSep "\n" (map (post: @@ -23,41 +23,26 @@ let ) posts)} ''; - formatDate = date: readFile (runCommandNoCC "date" {} '' + formatDate = date: readFile (pkgs.runCommandNoCC "date" {} '' date --date='@${toString date}' '+%B %e, %Y' > $out ''); - postsList = pkgs.writeText "index.html" '' -
-
-

Personal blog by wpcarro.

-

> Half-baked musings lossily encoded.

-

> - misc reviewer

-
-
    - ${lib.concatStringsSep "\n" (map (post: '' -
  • -

    - - ${post.title} - -

    -

    - ${formatDate post.date} -

    -
  • - '') posts)} -
-
- ''; + postsHtml = readFile (pkgs.substituteAll { + src = ./fragments/posts.html; + postsHtml = lib.concatStringsSep "\n" (map toPostHtml posts); + }); + + toPostHtml = post: readFile (pkgs.substituteAll { + src = ./fragments/post.html; + postUrl = "${config.baseUrl}/${post.key}.html"; + postTitle = post.title; + postDate = formatDate post.date; + }); in { inherit posts rendered config; - root = runCommandNoCC "wpcarros-blog" {} '' + root = pkgs.runCommandNoCC "wpcarros-blog" {} '' mkdir -p $out - - cat ${wpcarro.website.header} \ - ${postsList} \ - ${wpcarro.website.addendum} > $out/index.html + cp ${wpcarro.website.render postsHtml} $out/index.html ''; } diff --git a/users/wpcarro/website/blog/fragments/.skip-subtree b/users/wpcarro/website/blog/fragments/.skip-subtree new file mode 100644 index 0000000000..e69de29bb2 diff --git a/users/wpcarro/website/blog/fragments/post.html b/users/wpcarro/website/blog/fragments/post.html new file mode 100644 index 0000000000..44593094ec --- /dev/null +++ b/users/wpcarro/website/blog/fragments/post.html @@ -0,0 +1,8 @@ +
  • +

    + + @postTitle@ + +

    +

    @postDate@

    +
  • diff --git a/users/wpcarro/website/blog/fragments/posts.html b/users/wpcarro/website/blog/fragments/posts.html new file mode 100644 index 0000000000..699b28f366 --- /dev/null +++ b/users/wpcarro/website/blog/fragments/posts.html @@ -0,0 +1,10 @@ +
    +
    +

    + Personal blog by wpcarro. +

    +

    > Half-baked musings lossily encoded.

    +

    > - misc reviewer

    +
    +
      @postsHtml@
    +
    diff --git a/users/wpcarro/website/default.nix b/users/wpcarro/website/default.nix index 60d8dc19e7..e8f2161792 100644 --- a/users/wpcarro/website/default.nix +++ b/users/wpcarro/website/default.nix @@ -1,27 +1,27 @@ { pkgs, depot, ... }: -rec { +let + inherit (builtins) readFile; inherit (depot.users) wpcarro; - header = "${./fragments/header.html}"; - footer = "${./fragments/footer.html}"; - addendum = "${./fragments/addendum.html}"; + render = contentHtml: pkgs.substituteAll { + inherit contentHtml; + src = ./fragments/template.html; + }; +in { + inherit render; - root = pkgs.stdenv.mkDerivation { - name = "wpcarro.dev"; - src = builtins.path { path = ./.; name = "website"; }; - installPhase = '' - mkdir -p $out + root = pkgs.runCommandNoCC "wpcarro.dev" {} '' + mkdir -p $out - cat ${header} \ - ${./fragments/homepage.html} \ - ${footer} \ - ${addendum} > $out/index.html + # / + cp ${render (readFile ./fragments/homepage.html)} $out/index.html - mkdir -p $out/habits - cp -r ${wpcarro.website.habit-screens} $out/habits/index.html + # /habits + mkdir -p $out/habits + cp -r ${wpcarro.website.habit-screens} $out/habits/index.html - cp -r ${wpcarro.website.blog.root} $out/blog - ''; - }; + # /blog + cp -r ${wpcarro.website.blog.root} $out/blog + ''; } diff --git a/users/wpcarro/website/fragments/addendum.html b/users/wpcarro/website/fragments/addendum.html deleted file mode 100644 index 9623db9bf9..0000000000 --- a/users/wpcarro/website/fragments/addendum.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - diff --git a/users/wpcarro/website/fragments/footer.html b/users/wpcarro/website/fragments/footer.html deleted file mode 100644 index c0c9a3d7cc..0000000000 --- a/users/wpcarro/website/fragments/footer.html +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/users/wpcarro/website/fragments/header.html b/users/wpcarro/website/fragments/header.html deleted file mode 100644 index 42230ded1e..0000000000 --- a/users/wpcarro/website/fragments/header.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - wpcarro.dev - - - - - - - -
    - -
    -
    diff --git a/users/wpcarro/website/fragments/template.html b/users/wpcarro/website/fragments/template.html new file mode 100644 index 0000000000..96d19e8491 --- /dev/null +++ b/users/wpcarro/website/fragments/template.html @@ -0,0 +1,96 @@ + + + + wpcarro.dev + + + + + + + +
    + +
    +
    + @contentHtml@ + +
    + + + -- cgit 1.4.1