feat(web/tvl): Render blog posts and atom feed for TVL
Includes the blog posts and feed in the $out directory, but without linking them from the TVL homepage yet. Change-Id: If9c094b29e43e9a81b0cc3d731261dc4b10557c1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3776 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
This commit is contained in:
parent
4b33401a36
commit
674603f6c8
1 changed files with 33 additions and 2 deletions
|
@ -1,7 +1,20 @@
|
||||||
{ depot, pkgs, ... }:
|
{ depot, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with depot.nix.yants;
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (pkgs) graphviz runCommandNoCC writeText;
|
inherit (pkgs) graphviz runCommandNoCC writeText;
|
||||||
|
inherit (depot.web) blog atom-feed;
|
||||||
|
|
||||||
|
blogConfig = {
|
||||||
|
name = "TVL's blog";
|
||||||
|
footer = depot.web.tvl.footer {};
|
||||||
|
};
|
||||||
|
|
||||||
|
postRenderingCommands = defun [ (list blog.post) string ] (posts:
|
||||||
|
lib.concatStringsSep "\n"
|
||||||
|
(map (p: "cp ${blog.renderPost blogConfig p} $out/blog/${p.key}.html") posts)
|
||||||
|
);
|
||||||
|
|
||||||
tvlGraph = runCommandNoCC "tvl.svg" {
|
tvlGraph = runCommandNoCC "tvl.svg" {
|
||||||
nativeBuildInputs = with pkgs; [ fontconfig freetype cairo jetbrains-mono ];
|
nativeBuildInputs = with pkgs; [ fontconfig freetype cairo jetbrains-mono ];
|
||||||
|
@ -9,6 +22,22 @@ let
|
||||||
${graphviz}/bin/neato -Tsvg ${./tvl.dot} > $out
|
${graphviz}/bin/neato -Tsvg ${./tvl.dot} > $out
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
feed = {
|
||||||
|
id = "https://tvl.fyi/";
|
||||||
|
title = "TVL blog";
|
||||||
|
subtitle = "Thoughts and news from The Virus Lounge";
|
||||||
|
authors = [ "tazjin" ]; # TODO(tazjin): Extract from post info
|
||||||
|
|
||||||
|
links = lib.singleton {
|
||||||
|
rel = "self";
|
||||||
|
href = "https://tvl.fyi/feed.atom";
|
||||||
|
};
|
||||||
|
|
||||||
|
entries = map blog.toFeedEntry depot.web.tvl.blog.posts;
|
||||||
|
};
|
||||||
|
|
||||||
|
atomFeed = writeText "feed.atom" (atom-feed.renderFeed feed);
|
||||||
|
|
||||||
homepage = depot.web.tvl.template {
|
homepage = depot.web.tvl.template {
|
||||||
title = "The Virus Lounge";
|
title = "The Virus Lounge";
|
||||||
content = ''
|
content = ''
|
||||||
|
@ -78,6 +107,8 @@ let
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
in runCommandNoCC "website" {} ''
|
in runCommandNoCC "website" {} ''
|
||||||
mkdir -p $out/static
|
mkdir -p $out/blog
|
||||||
cp ${homepage} $out/index.html
|
cp ${homepage} $out/index.html
|
||||||
|
${postRenderingCommands depot.web.tvl.blog.posts}
|
||||||
|
cp ${atomFeed} $out/feed.atom
|
||||||
''
|
''
|
||||||
|
|
Loading…
Reference in a new issue