tvl-depot/web/tvl/template/default.nix
Vincent Ambo d0c0227a7b refactor(web/tvl/template): Don't forcefully embed title in page
This hands more layout control back to the page content instead of the
template. There are cases (currently experimenting with logo layout)
where it's visually nicer if there isn't a page title, but the rest of
the template still applies.

Change-Id: Ia3cd0c750beec5408e631760f1faeea8efec91db
2021-09-22 21:28:43 +03:00

62 lines
1.8 KiB
Nix

{ depot, pkgs, ... }:
{ # content of the <title> tag
title
# main part of the page, usually wrapped with <main>
, content
# optional extra html to inject into <head>
, extraHead ? null
# whether to use global URLs instead of absolute paths
, useUrls ? false
}@args:
let
inherit (pkgs) runCommandNoCC lib;
inherit (depot.tools) cheddar;
baseUrl = lib.optionalString useUrls "https://tvl.fyi";
in
runCommandNoCC "index.html" {
headerPart = ''
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="The Virus Lounge">
<link rel="stylesheet" type="text/css" href="${baseUrl}/static/tvl.css" media="all">
<link rel="icon" type="image/webp" href="${baseUrl}/static/favicon.webp">
<title>${title}</title>
'' + lib.optionalString (args ? extraHead) extraHead + ''
</head>
<body class="light">
'';
inherit content;
footerPart = ''
<hr>
<footer>
<p class="footer">
<a class="uncoloured-link" href="https://at.tvl.fyi/?q=%2F%2FREADME.md">code</a>
|
<a class="uncoloured-link" href="https://cl.tvl.fyi/">reviews</a>
|
<a class="uncoloured-link" href="https://tvl.fyi/builds">ci</a>
|
<a class="uncoloured-link" href="https://b.tvl.fyi/">bugs</a>
|
<a class="uncoloured-link" href="https://todo.tvl.fyi/">todos</a>
|
<a class="uncoloured-link" href="https://atward.tvl.fyi/">search</a>
</p>
<p class="lod">_</p>
</footer>
</body>
'';
passAsFile = [ "headerPart" "content" "footerPart" ];
} ''
${cheddar}/bin/cheddar --about-filter content.md < $contentPath > rendered.html
cat $headerPartPath rendered.html $footerPartPath > $out
''