{ html, data, lib, ... }: let software = data.software; format = softwarePiece: with html; with softwarePiece; { inherit id title abstract; url = URL; } // (let authorsOther = lib.remove data.basics.name (builtins.map (author: "${author.given} ${author.family}") author); in lib.optionalAttrs (authorsOther != [ ]) { authors = "With ${lib.concatStringsSep ", " authorsOther}"; }); in { title = "Software"; priority = 15; body = with html; dl (for (sort.byPath [ "title" ] software) (softwarePiece: let formatted = format softwarePiece; in with formatted; [ (dt { id = "Software#${id}"; } (href { target = "_blank"; } url title)) (dd abstract) ])); }