diff options
author | Vincent Ambo <mail@tazj.in> | 2020-08-10T23·16+0100 |
---|---|---|
committer | tazjin <mail@tazj.in> | 2020-08-10T23·24+0000 |
commit | 574d62c4b9f4314971dd32ee68ad22c3faa661b4 (patch) | |
tree | 2c855eb07b486b41489b2d0f40a12fde3f64bd0a /users/tazjin/homepage/feed.nix | |
parent | 1d699fdc5c606924c8d45762afadcb6ac9da4542 (diff) |
feat(tazjin/homepage): Add non-blog-post entries to Atom feed r/1639
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 <rikingcoding@gmail.com>
Diffstat (limited to 'users/tazjin/homepage/feed.nix')
-rw-r--r-- | users/tazjin/homepage/feed.nix | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/users/tazjin/homepage/feed.nix b/users/tazjin/homepage/feed.nix index 1f9d7c91fbce..5e1fa15da6eb 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) |