diff options
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) |