From 05f16167f76c16d6ccd2977e84cbc56e8c1a0722 Mon Sep 17 00:00:00 2001 From: ibizaman Date: Thu, 30 Nov 2023 09:06:42 -0800 Subject: [PATCH] build docs with nmd --- docs/manual.xml | 13 +++++++++++++ flake.lock | 38 ++++++++++++++++++++++++++++++++++++++ flake.nix | 39 ++++++++++++++++++++++++++++++++++++++- 3 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 docs/manual.xml diff --git a/docs/manual.xml b/docs/manual.xml new file mode 100644 index 0000000..7057dbc --- /dev/null +++ b/docs/manual.xml @@ -0,0 +1,13 @@ + + + A simple example + + + A simple example + Hello, world! + + diff --git a/flake.lock b/flake.lock index 982099d..ecb8910 100644 --- a/flake.lock +++ b/flake.lock @@ -81,14 +81,52 @@ "type": "github" } }, + "nmd": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "scss-reset": "scss-reset" + }, + "locked": { + "lastModified": 1687627428, + "narHash": "sha256-7zGfXuNS5RHqhpEdz2fwrtqvF86JRo5U1hrxZSYgcm8=", + "ref": "refs/heads/master", + "rev": "824a380546b5d0d0eb701ff8cd5dbafb360750ff", + "revCount": 63, + "type": "git", + "url": "https://git.sr.ht/~rycee/nmd" + }, + "original": { + "type": "git", + "url": "https://git.sr.ht/~rycee/nmd" + } + }, "root": { "inputs": { "flake-utils": "flake-utils", "nix-flake-tests": "nix-flake-tests", "nixpkgs": "nixpkgs", + "nmd": "nmd", "sops-nix": "sops-nix" } }, + "scss-reset": { + "flake": false, + "locked": { + "lastModified": 1631450058, + "narHash": "sha256-muDlZJPtXDIGevSEWkicPP0HQ6VtucbkMNygpGlBEUM=", + "owner": "andreymatin", + "repo": "scss-reset", + "rev": "0cf50e27a4e95e9bb5b1715eedf9c54dee1a5a91", + "type": "github" + }, + "original": { + "owner": "andreymatin", + "repo": "scss-reset", + "type": "github" + } + }, "sops-nix": { "inputs": { "nixpkgs": "nixpkgs_2", diff --git a/flake.nix b/flake.nix index 895028d..ab0d0c4 100644 --- a/flake.nix +++ b/flake.nix @@ -6,9 +6,11 @@ sops-nix.url = "github:Mic92/sops-nix"; nix-flake-tests.url = "github:antifuchs/nix-flake-tests"; flake-utils.url = "github:numtide/flake-utils"; + nmd.url = "git+https://git.sr.ht/~rycee/nmd"; + nmd.inputs.nixpkgs.follows = "nixpkgs"; }; - outputs = { nixpkgs, nix-flake-tests, flake-utils, ... }: flake-utils.lib.eachDefaultSystem (system: + outputs = { nixpkgs, nix-flake-tests, flake-utils, nmd, ... }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; in @@ -36,6 +38,41 @@ ]; }; + # Inspiration from https://github.com/nix-community/nix-on-droid/blob/039379abeee67144d4094d80bbdaf183fb2eabe5/docs/default.nix#L22 + packages.manualHtml = let + nmdlib = import nmd { inherit pkgs; }; + + setupModule = { + _module.args.pkgs = pkgs.lib.mkForce (nmdlib.scrubDerivations "pkgs" pkgs); + _module.check = false; + }; + + modulesDocs = nmdlib.buildModulesDocs { + modules = [ + setupModule + ./modules/blocks/ssl.nix + ]; + moduleRootPaths = [ ../. ]; + mkModuleUrl = path: "https://myproject.foo/${path}"; + channelName = "selfhostblocks"; + docBook = { id = "selfhostblocks-options"; optionIdPrefix = "shb-opt"; }; + }; + + manual = nmdlib.buildDocBookDocs { + pathName = "SelfHostBlocks"; + modulesDocs = [ modulesDocs ]; + documentsDirectory = ./docs; + chunkToc = '' + + + + + + ''; + }; + in + manual.html; + checks = let importFiles = files: