Fediversity/website/content/default.nix

72 lines
1.8 KiB
Nix
Raw Normal View History

2024-11-13 15:24:41 +01:00
{ config, lib, ... }:
2024-11-13 15:24:40 +01:00
let
inherit (config) pages;
cfg = config;
2024-11-13 15:24:40 +01:00
in
{
2024-11-13 15:24:41 +01:00
imports = lib.nixFiles ./.;
2024-11-13 15:24:40 +01:00
collections.news.type = cfg.content-types.article;
2024-11-13 15:24:41 +01:00
pages.index = { config, link, ... }: {
2024-11-13 15:24:40 +01:00
title = "Fediversity";
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
2024-11-13 15:24:40 +01:00
${pages.fediversity.summary}
[Learn more about Fediversity](${link pages.fediversity})
2024-11-13 15:24:40 +01:00
2024-11-13 15:24:40 +01:00
# Fediversity grants
${pages.grants.summary}
[Learn more about Fediversity grants](${link pages.grants})
2024-11-13 15:24:40 +01:00
# Consortium
The Consortium behind the Fediversity project is a cooperation between NLnet, Open Internet Discourse Foundation, NORDUnet and Tweag.
${toString (map (partner: ''
## ${partner.title}
2024-11-13 15:24:41 +01:00
${partner.summary}
2024-11-13 15:24:40 +01:00
[Read more about ${partner.title}](${link partner})
2024-11-13 15:24:40 +01:00
'') (with pages; [ nlnet oid tweag nordunet ]))}
2024-11-13 15:24:41 +01:00
2024-11-13 15:24:41 +01:00
# Fediverse explained
${toString (map (role: ''
## ${role.title}
${role.summary}
[Read more about ${role.title}](${link role})
'') (with pages; [ individuals developers european-commission ]))}
2024-11-13 15:24:41 +01:00
# News
2024-11-13 15:24:41 +01:00
${
let
sorted = with lib; reverseList (sortOn (entry: entry.date) cfg.collections.news.entry);
2024-11-13 15:24:41 +01:00
in
lib.join "\n" (map (article: ''
2024-11-13 15:24:41 +01:00
- ${article.date} [${article.title}](${link article})
2024-11-13 15:24:41 +01:00
'') sorted)
}
2024-11-13 15:24:40 +01:00
'';
outputs.html = (cfg.templates.html.page config).override {
html.body.content = lib.mkForce [
# don't show the page title as a heading
(cfg.menus.main.outputs.html config)
(cfg.templates.html.markdown { inherit (config) name body; })
];
};
2024-11-13 15:24:40 +01:00
};
}