diff options
Diffstat (limited to 'tvix/website/default.nix')
-rw-r--r-- | tvix/website/default.nix | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tvix/website/default.nix b/tvix/website/default.nix new file mode 100644 index 000000000000..a2fc247e4a48 --- /dev/null +++ b/tvix/website/default.nix @@ -0,0 +1,46 @@ +{ depot, lib, pkgs, ... }: + +let + description = "Rust implementation of the purely-functional Nix package manager"; + + # https://developers.google.com/search/docs/advanced/structured-data/ + # https://schema.org/SoftwareApplication + structuredData = { + "@context" = "https://schema.org"; + "@type" = "SoftwareApplication"; + name = "Tvix"; + url = "https://tvix.dev"; + abstract = description; + applicationCategory = "DeveloperApplication"; + contributor = "https://tvl.fyi"; + image = "https://tvix.dev/logo.webp"; + }; + + # All Tvix-related blog posts from the main TVL website + tvixPosts = builtins.filter + (post: !(post.draft or false) && (lib.hasInfix "Tvix" post.title)) + depot.web.tvl.blog.posts; + + postListEntries = map (p: "* [${p.title}](https://tvl.fyi/blog/${p.key})") tvixPosts; + + landing = depot.web.tvl.template { + title = "Tvix - A new implementation of Nix"; + content = '' + ${builtins.readFile ./landing-en.md} + ${builtins.concatStringsSep "\n" postListEntries} + ''; + + extraHead = '' + <meta name="description" content="${description}"> + <script type="application/ld+json"> + ${builtins.toJSON structuredData} + </script> + ''; + }; + +in +pkgs.runCommand "tvix-website" { } '' + mkdir $out + cp ${landing} $out/index.html + cp ${depot.tvix.logo}/logo.webp $out/ +'' |