feat(tvix): add simple initial website

The website itself contains no useful information that we don't
already have published anywhere, but it's a decent landing place.

Mostly I want to have something on the root of tvix.dev, so that we
can start using it for other purposes.

Change-Id: Id2b4dabc7f6e4dd26b61484b86dbde2f39aa1719
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8296
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
This commit is contained in:
Vincent Ambo 2023-03-14 21:40:05 +03:00 committed by tazjin
parent 3370724062
commit 19c452875e
3 changed files with 68 additions and 0 deletions

32
tvix/website/default.nix Normal file
View file

@ -0,0 +1,32 @@
{ depot, lib, pkgs, ... }:
let
# https://developers.google.com/search/docs/advanced/structured-data/logo
structuredData = {
"@context" = "https://schema.org";
"@type" = "Organisation";
url = "https://tvl.fyi";
logo = "https://static.tvl.fyi/latest/logo-animated.svg";
};
# 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}
'';
};
in
pkgs.runCommand "tvix-website" { } ''
mkdir $out
cp ${landing} $out/index.html
cp ${./tvix-logo.webp} $out/tvix-logo.webp
''

View file

@ -0,0 +1,36 @@
<img class="tvl-logo" src="./tvix-logo.webp"
alt="A candy bar in different shades of blue that says 'Tvix by TVL' on it">
------------------
Tvix is a new implementation of Nix, a purely-functional package manager. It
aims to have a modular implementation, in which different components can be
reused or replaced based on the use-case.
Tvix is developed as a GPLv3-licensed open-source project by
[TVL][], with source code available in the [TVL monorepo][].
There are several projects within Tvix, such as:
* `//tvix/eval` - an implementation of the Nix programming language
* `//tvix/serde` - a Rust library for using the Nix language for config files
* `//tvix/nix-compat` - a Rust library for compatbility with C++ Nix
features like encodings and hashing schemes
* ... and a handful others!
The language evaluator can be toyed with in [Tvixbolt][], and you can check out
the [Tvix README][] ([GitHub mirror][gh]) for additional information on the
project and development workflows.
Developer documentation for some parts of Tvix is [available online][docs].
[TVL]: https://tvl.fyi
[TVL monorepo]: https://cs.tvl.fyi/depot/-/tree/tvix
[Tvixbolt]: https://tvixbolt.tvl.su
[Tvix README]: https://code.tvl.fyi/about/tvix
[gh]: https://github.com/tvlfyi/tvix/
[docs]: https://docs.tvix.dev
-------------------
Check out the latest Tvix-related blog posts from TVL's website:

BIN
tvix/website/tvix-logo.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB