From 5b81645f575f8a76e44744f73c9e9c0551a047e3 Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Fri, 11 Oct 2024 12:50:31 +0200 Subject: [PATCH] extract main document conversion --- lib.nix | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/lib.nix b/lib.nix index 7e8e1b1..c3d6fbd 100644 --- a/lib.nix +++ b/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);