diff --git a/content/default.nix b/content/default.nix index 5ad084d7..6cd93043 100644 --- a/content/default.nix +++ b/content/default.nix @@ -19,59 +19,107 @@ in ${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.summary} - - [Read more about ${partner.title}](${link partner}) - '') (with pages; [ nlnet oid tweag nordunet ]))} - - # Fediverse explained - - ${toString (map (role: '' - ## ${role.title} - - ${role.summary} - - [Read more about ${role.title}](${link role}) - '') (with pages; [ individuals developers european-commission ]))} - - # News - - ${ - let - sorted = with lib; reverseList (sortOn (entry: entry.date) cfg.collections.news.entry); - in - lib.join "\n" (map (article: '' - - ${article.date} [${article.title}](${link article}) - '') sorted) - } - - # Events - - ${ - let - sorted = with lib; reverseList (sortOn (entry: entry.start-date) cfg.collections.events.entry); - in - lib.join "\n" (map (article: '' - - ${article.start-date} [${article.title}](${link article}) - '') sorted) - } ''; - outputs.html = (cfg.templates.html.page config).override { - html.head.title.text = "Fediversity"; - }; + outputs.html = (cfg.templates.html.page config).override (final: prev: { + html = { + head.title.text = "Fediversity"; + body.content = + let + prev-content = prev.html.body.content; + to-section = { heading, body, attrs ? { } }: { + section = { + heading.content = heading; + inherit attrs; + content = [ + (cfg.templates.html.markdown { + name = "${config.name}-${lib.slug heading}"; + inherit body; + }) + ]; + }; + }; + in + [ + (lib.head prev-content) # header + { + section = { + attrs = { }; + heading.content = config.title; + content = [ + (cfg.templates.html.markdown { inherit (config) name body; }) + ] + ++ + (map to-section [ + { + heading = "Fediversity grants"; + body = '' + ${pages.grants.summary} + + [Learn more about Fediversity grants](${link pages.grants}) + ''; + } + { + heading = "Consortium"; + body = '' + The Consortium behind the Fediversity project is a cooperation between NLnet, Open Internet Discourse Foundation, NORDUnet and Tweag. + + ${toString (map (partner: '' + ### ${partner.title} + + ${partner.summary} + + [Read more about ${partner.title}](${link partner}) + '') (with pages; [ nlnet oid tweag nordunet ]))} + ''; + } + { + heading = "Fediverse explained"; + body = '' + ${toString (map (role: '' + ### ${role.title} + + ${role.summary} + + [Read more about ${role.title}](${link role}) + '') (with pages; [ individuals developers european-commission ]))} + ''; + } + ]); + }; + } + ] + ++ + (map to-section [ + { + heading = "News"; + attrs = { class = [ "collection" ]; }; + body = + let + sorted = with lib; reverseList (sortOn (entry: entry.date) cfg.collections.news.entry); + in + lib.join "\n" (map + (article: '' + - ${article.date} [${article.title}](${link article}) + '') + sorted); + } + { + heading = "Events"; + attrs = { class = [ "collection" ]; }; + body = + let + sorted = with lib; reverseList (sortOn (entry: entry.start-date) cfg.collections.events.entry); + in + lib.join "\n" (map + (article: '' + - ${article.start-date} [${article.title}](${link article}) + '') + sorted); + } + ]); + }; + + }); }; + }