From 574d62c4b9f4314971dd32ee68ad22c3faa661b4 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Tue, 11 Aug 2020 00:16:29 +0100 Subject: feat(tazjin/homepage): Add non-blog-post entries to Atom feed Adds the same entries that are also listed on the homepage itself to the feed. Change-Id: I6586dcb899d40536777ac5a5dfcac4bb1cc8cee5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1715 Tested-by: BuildkiteCI Reviewed-by: kanepyork --- users/tazjin/homepage/default.nix | 5 +++-- users/tazjin/homepage/feed.nix | 22 +++++++++++++++++++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/users/tazjin/homepage/default.nix b/users/tazjin/homepage/default.nix index 1b0044391b..8f53eba67e 100644 --- a/users/tazjin/homepage/default.nix +++ b/users/tazjin/homepage/default.nix @@ -64,8 +64,9 @@ let ++ [ (builtins.readFile ./footer.html) ] )); - homepage = index ((map postToEntry users.tazjin.blog.posts) ++ (import ./entries.nix)); - atomFeed = import ./feed.nix args; + pageEntries = import ./entries.nix; + homepage = index ((map postToEntry users.tazjin.blog.posts) ++ pageEntries); + atomFeed = import ./feed.nix (args // { inherit entry pageEntries; }); in runCommandNoCC "website" {} '' mkdir $out cp ${homepage} $out/index.html diff --git a/users/tazjin/homepage/feed.nix b/users/tazjin/homepage/feed.nix index 1f9d7c91fb..5e1fa15da6 100644 --- a/users/tazjin/homepage/feed.nix +++ b/users/tazjin/homepage/feed.nix @@ -1,10 +1,10 @@ # Creates the Atom feed for my homepage. -{ depot, lib, pkgs, ... }: +{ depot, lib, pkgs, entry, pageEntries, ... }: with depot.nix.yants; let - inherit (builtins) map readFile; + inherit (builtins) map readFile sort; inherit (lib) singleton; inherit (pkgs) writeText; inherit (depot.users.tazjin) atom-feed blog renderMarkdown; @@ -22,9 +22,25 @@ let }; }); + pageEntryToEntry = defun [ entry atom-feed.entry ] (e: { + id = "tazjin:${e.class}:${toString e.date}"; + updated = e.date; + published = e.date; + title = e.title; + summary = e.description; + + links = singleton { + rel = "alternate"; + href = e.url; + }; + }); + + allEntries = (map postToEntry blog.posts) ++ (map pageEntryToEntry pageEntries); + feed = { id = "https://tazj.in/"; title = "tazjin's interblag"; + subtitle = "my posts, projects and other interesting things"; # TODO(tazjin): Take the most recently updated entry time instead. updated = builtins.currentTime; rights = "© 2020 tazjin"; @@ -35,6 +51,6 @@ let href = "https://tazjin/feed.atom"; }; - entries = map postToEntry blog.posts; + entries = sort (a: b: a.published > b.published) allEntries; }; in writeText "feed.atom" (atom-feed.renderFeed feed) -- cgit 1.4.1