diff options
Diffstat (limited to 'users/tazjin/homepage')
-rw-r--r-- | users/tazjin/homepage/default.nix | 5 | ||||
-rw-r--r-- | 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) |