diff --git a/website/lib.nix b/website/lib.nix
index 7e8e1b18..c3d6fbdb 100644
--- a/website/lib.nix
+++ b/website/lib.nix
@@ -1,17 +1,38 @@
{ pkgs, lib, ... }:
-{
+rec {
+ /**
+ Convert a Nix document to HTML
+ */
+ html = document: name:
+ builtins.toFile "${name}.html" ''
+
+
+ ${document.title}
+
+
+ ${builtins.readFile (commonmark document.body name)}
+
+
+ '';
+
+ /**
+ Convert a commonmark string to HTML
+ */
+ commonmark = markdown: name:
+ pkgs.runCommand "${name}.html" { buildInputs = [ pkgs.cmark ]; } ''
+ cmark ${builtins.toFile "${name}.md" markdown} > $out
+ '';
+
files = dir: lib.mapAttrs'
(
- name: value:
+ attrname: value:
let
- html = "${lib.removeSuffix ".nix" name}.html";
- md = "${lib.removeSuffix ".nix" name}.md";
+ document = import (dir + "/${attrname}");
+ name = lib.removeSuffix ".nix" attrname;
in
{
- name = html;
- value = pkgs.runCommand html { buildInputs = with pkgs; [ cmark ]; } ''
- cmark ${builtins.toFile md (import (dir + "/${name}")).body} > $out
- '';
+ name = "${name}.html";
+ value = html document "${name}.html";
}
)
(builtins.readDir dir);