{ config, lib, ... }:
let
  inherit (config) pages;
in
{
  imports = lib.nixFiles ./.;

  collections.news.type = config.content-types.article;

  pages.index = { link, ... }: {
    title = "Fediversity";
    locations = [
      "index.html"
    ];
    description = "Fediversity web site";
    summary = ''
      This web site hosts up-to-date information about the the NGI Zero Fediversity project.
    '';
    body = ''
      # Welcome to the Fediversity project

      ${pages.fediversity.summary}

      [Learn more about Fediversity](${link pages.fediversity})

      # Fediversity grants

      ${pages.grants.summary}

      [Learn more about Fediversity grants](${link pages.grants})

      # Consortium

      The Consortium behind the Fediversity project is a cooperation between NLnet, Open Internet Discourse Foundation, NORDUnet and Tweag.

      ${toString (map (partner: ''
      ## ${partner.title}

      ${partner.description}

      [Read more about ${partner.title}](${link partner})
      '') (with pages; [ nlnet oid tweag nordunet ]))}

      # News

      ${
        let
          sorted = with lib; reverseList (sortOn (entry: entry.date) config.collections.news.entry);
        in
        lib.join "\n" (map (article: ''
          - ${article.date} [${article.title}](${article})
        '') sorted)
      }
    '';
  };
}