merge docs, add yagcd
This commit is contained in:
parent
181edd92e5
commit
b1d987763c
|
@ -12,6 +12,8 @@
|
|||
|
||||
* [x] Split stuff into multiple files
|
||||
* [x] Make a flake
|
||||
* [x] merge hosted docs into a single subdomain
|
||||
* [ ] pre-commit hook with 'nix eval'
|
||||
* [ ] Setup some remote-development flow
|
||||
* [ ] users/pbsds: Support multiple profiles, like headless, nixpkgs-dev, various desktops, hpc, pvv, etc
|
||||
* [ ] nixos-generate-config instructions
|
||||
|
|
1
base.nix
1
base.nix
|
@ -32,6 +32,7 @@
|
|||
"-L" # print build logs
|
||||
];
|
||||
};
|
||||
# TODO: this doesn't work during 'nix eval' on a non-nixos machine
|
||||
#assertions = [
|
||||
# { assertion = builtins.pathExists "/etc/nixos/flake.nix"; message = "You have yet to test systems without a flake in /etc/nixos"; }
|
||||
#];
|
||||
|
|
|
@ -47,8 +47,11 @@
|
|||
#../../profiles/web/services/censordodge
|
||||
#../../profiles/web/services/openspeedtest
|
||||
|
||||
../../profiles/web/docs
|
||||
../../profiles/web/docs/pdoc
|
||||
../../profiles/web/docs/python-docs
|
||||
../../profiles/web/docs/yagcd
|
||||
|
||||
../../profiles/web/sites/linktree-pbsds
|
||||
../../profiles/web/sites/refleksjon-no
|
||||
../../profiles/web/sites/roroslyd-no
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
{ config, pkgs, lib, mkDomain, ... }:
|
||||
{
|
||||
options = with lib; {
|
||||
#services.docs-to-host.enable = mkEnable "docs-to-host";
|
||||
services.docs-to-host.docs = mkOption {
|
||||
type = types.listOf (types.submodule {
|
||||
options = {
|
||||
subdir = mkOption {
|
||||
type = types.str;
|
||||
example = "pdoc";
|
||||
description = lib.mdDoc "The path at which the documentation will be linked";
|
||||
};
|
||||
path = mkOption {
|
||||
type = types.path;
|
||||
example = lib.literalExpression "pkgs.fetchzip {...}";
|
||||
description = lib.mdDoc "The static html documentation to host";
|
||||
};
|
||||
desc = mkOption {
|
||||
type = types.str;
|
||||
#description = "A short decription about the hosted documentation in markdown.";
|
||||
description = "A short decription about the hosted documentation.";
|
||||
};
|
||||
};
|
||||
});
|
||||
default = [ ];
|
||||
#description = lib.mdDoc ''TODO'';
|
||||
};
|
||||
};
|
||||
|
||||
config = let
|
||||
cfg = config.services.docs-to-host;
|
||||
mkRow = {subdir, path, desc}: ''<tr><td><a href="${subdir}/">${subdir}/</a><td>${desc}'';
|
||||
mkEntry = {subdir, path, desc}: { name = subdir; path = path; };
|
||||
in {
|
||||
services.nginx.virtualHosts.${mkDomain "docs"} = {
|
||||
forceSSL = true; # addSSL = true;
|
||||
enableACME = true; #useACMEHost = acmeDomain;
|
||||
root = pkgs.linkFarm "docs-html" ([{name = "index.html"; path = pkgs.writeText "docs-index.html" ''
|
||||
<!DOCTYPE html>
|
||||
<table>
|
||||
<tr><th>URL<th>Desc
|
||||
${lib.concatStringsSep "\n" ( builtins.map mkRow cfg.docs ) }
|
||||
</table>
|
||||
'';
|
||||
}] ++ (builtins.map mkEntry cfg.docs));
|
||||
};
|
||||
};
|
||||
}
|
|
@ -252,11 +252,24 @@ let
|
|||
|
||||
in {
|
||||
|
||||
# lib.filter (x: lib.isDerivation x && (builtins.tryEval x.outPath).success) (lib.attrValues linuxPackages_latest))
|
||||
|
||||
# Pdoc
|
||||
# Auto-generate API documentation for Python projects.
|
||||
|
||||
services.docs-to-host.docs = [
|
||||
{
|
||||
subdir = "pdoc-docs";
|
||||
path = mkPdocs false;
|
||||
desc = "Documentation for various python modules, generated with pdoc";
|
||||
}
|
||||
{
|
||||
subdir = "pdoc3-docs";
|
||||
path = mkPdocs true;
|
||||
desc = "Documentation for various python modules, generated with pdoc";
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
/** /
|
||||
services.nginx.virtualHosts.${mkDomain "pdoc"} = {
|
||||
forceSSL = true; # addSSL = true;
|
||||
enableACME = true; #useACMEHost = acmeDomain;
|
||||
|
@ -267,5 +280,6 @@ in {
|
|||
enableACME = true; #useACMEHost = acmeDomain;
|
||||
root = mkPdocs true;
|
||||
};
|
||||
/**/
|
||||
|
||||
}
|
||||
|
|
|
@ -1,24 +1,12 @@
|
|||
{ config, pkgs, lib, mkDomain, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
python-versions = (lib.attrNames pkgs.pythonDocs.html);
|
||||
mkLinkFarmEntry = python-version: {
|
||||
name = python-version;
|
||||
python-versions = lib.attrNames (lib.filterAttrs (k: v: lib.isDerivation v) pkgs.pythonDocs.html);
|
||||
mkDocsEntry = python-version: {
|
||||
subdir = "${python-version}";
|
||||
path = "${builtins.toString pkgs.pythonDocs.html.${python-version}}/share/doc/${python-version}/html";
|
||||
desc = "Documentation for Python ${pkgs.${python-version}.version}";
|
||||
};
|
||||
in
|
||||
{
|
||||
services.nginx.virtualHosts.${mkDomain "python-docs"} = {
|
||||
forceSSL = true; # addSSL = true;
|
||||
enableACME = true; #useACMEHost = acmeDomain;
|
||||
root = pkgs.linkFarm "python-docs" ([
|
||||
{ name = "index.html"; path = pkgs.writeText "my-file" ''
|
||||
<!DOCTYPE html>
|
||||
<ul>
|
||||
${lib.concatStringsSep "\n" (
|
||||
builtins.map (name: ''<li><a href="${name}/">${name}/</a>'') python-versions
|
||||
)}
|
||||
</ul>
|
||||
''; }
|
||||
] ++ (builtins.map mkLinkFarmEntry python-versions));
|
||||
};
|
||||
services.docs-to-host.docs = builtins.map mkDocsEntry python-versions;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
{ config, pkgs, lib, mkDomain, ... }:
|
||||
let
|
||||
yagcd = pkgs.fetchzip {
|
||||
url = "http://hitmen.c02.at/files/yagcd/yagcd.tar.gz";
|
||||
hash = "sha256-6/0oh7Xvbq1eAk2fCtKU+IXm0FbmgXIwAUjXuUKicus=";
|
||||
stripRoot = false;
|
||||
};
|
||||
in
|
||||
{
|
||||
services.docs-to-host.docs = [{
|
||||
desc = "Yet another Gamecube Documentation";
|
||||
subdir = "yagcd";
|
||||
path = "${yagcd}/yagcd";
|
||||
}];
|
||||
|
||||
/** /
|
||||
services.nginx.virtualHosts.${mkDomain "yagcd"} = {
|
||||
forceSSL = true; # addSSL = true;
|
||||
enableACME = true; #useACMEHost = acmeDomain;
|
||||
root = yagcd;
|
||||
};
|
||||
/**/
|
||||
}
|
|
@ -10,6 +10,7 @@ let
|
|||
www = "wwwwwwwwwwwwwww";
|
||||
${config.networking.hostName} = www;
|
||||
shlink = "Url shortener";
|
||||
docs = "Various documentation";
|
||||
};
|
||||
in
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue