Initial commit, setting up emanote using flake parts

main
Bill Ewanick 2025-07-20 15:59:50 -04:00
commit 5da750f81c
5 changed files with 557 additions and 0 deletions

1
.envrc Normal file
View File

@ -0,0 +1 @@
use flake

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.direnv

3
README.md Normal file
View File

@ -0,0 +1,3 @@
# Nix Flake Parts Emanote Site
Migrating the OSDS site content to an Emanote site.

451
flake.lock Normal file
View File

@ -0,0 +1,451 @@
{
"nodes": {
"commonmark-simple": {
"flake": false,
"locked": {
"lastModified": 1742576519,
"narHash": "sha256-/Vauu9JiLcJOElH/brswcF1XbEXq8yA2q/8rcXzj+kE=",
"owner": "srid",
"repo": "commonmark-simple",
"rev": "1d69703c7f625905a84cfb79983ca2a5817743bc",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "commonmark-simple",
"type": "github"
}
},
"commonmark-wikilink": {
"flake": false,
"locked": {
"lastModified": 1738248145,
"narHash": "sha256-UN2Nh+uf+DzM336Ojzr6YZV4RJy8BPx9Q5GZpax3wt0=",
"owner": "srid",
"repo": "commonmark-wikilink",
"rev": "1d7aa327fb33b41f3c4899d5b29aa122780c900f",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "commonmark-wikilink",
"type": "github"
}
},
"devshell": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1741473158,
"narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=",
"owner": "numtide",
"repo": "devshell",
"rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"ema": {
"flake": false,
"locked": {
"lastModified": 1745123527,
"narHash": "sha256-FD6GJaiiKkH65N7iDjHtOtaEcWMf1P/t98kktILSkcg=",
"owner": "srid",
"repo": "ema",
"rev": "8590cc91e1f3dc3e10409d914c40a484645a2680",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "ema",
"type": "github"
}
},
"emanote": {
"inputs": {
"commonmark-simple": "commonmark-simple",
"commonmark-wikilink": "commonmark-wikilink",
"ema": "ema",
"emanote-template": "emanote-template",
"flake-parts": "flake-parts",
"flake-root": "flake-root",
"haskell-flake": "haskell-flake",
"heist-extra": "heist-extra",
"lvar": "lvar",
"nixos-unified": "nixos-unified",
"nixpkgs": "nixpkgs_2",
"treefmt-nix": "treefmt-nix",
"unionmount": "unionmount"
},
"locked": {
"lastModified": 1753040695,
"narHash": "sha256-dpOcuQ1eIF6mmjA4b3eGreoYIpffevdhqxs/ykq/IxI=",
"owner": "srid",
"repo": "emanote",
"rev": "fa5d7125fe32c3b25ee271f3b4013753880519f0",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "emanote",
"type": "github"
}
},
"emanote-template": {
"flake": false,
"locked": {
"lastModified": 1745726040,
"narHash": "sha256-cLL9ylGe1OoN/KSX7+FRW3j8rm5iPTCleOJGSdOfdE0=",
"owner": "srid",
"repo": "emanote-template",
"rev": "1475b182fc136fc5da3a3b3e2b9be90795af19bb",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "emanote-template",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"emanote",
"nixpkgs"
]
},
"locked": {
"lastModified": 1751413152,
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1751413152,
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-root": {
"locked": {
"lastModified": 1723604017,
"narHash": "sha256-rBtQ8gg+Dn4Sx/s+pvjdq3CB2wQNzx9XGFq/JVGCB6k=",
"owner": "srid",
"repo": "flake-root",
"rev": "b759a56851e10cb13f6b8e5698af7b59c44be26e",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "flake-root",
"type": "github"
}
},
"git-hooks-nix": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1750779888,
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"git-hooks-nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"haskell-flake": {
"locked": {
"lastModified": 1752499668,
"narHash": "sha256-Yif99ho8GNgXP0l9vxPHCKi7X16Cf7rwVd+HW1cMVeQ=",
"owner": "srid",
"repo": "haskell-flake",
"rev": "39065472d2587af93a502423276bfb98c2c6fb09",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "haskell-flake",
"type": "github"
}
},
"heist-extra": {
"flake": false,
"locked": {
"lastModified": 1737313814,
"narHash": "sha256-WCXhs/xhCR4CKBEadQjqqgUb47bLzDY7P7oL5cSgDHc=",
"owner": "srid",
"repo": "heist-extra",
"rev": "6f73e000a34b7c054b516b9504b5a7ed08ce6a2d",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "heist-extra",
"type": "github"
}
},
"lvar": {
"flake": false,
"locked": {
"lastModified": 1745122737,
"narHash": "sha256-ZnYXkkPmnNvt4tA45JgSC7dpttmqhUo4AHfEjB1r1gE=",
"owner": "srid",
"repo": "lvar",
"rev": "047a24c4dcd7f85f9c18058f6be991cea531870e",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "lvar",
"type": "github"
}
},
"nixos-unified": {
"locked": {
"lastModified": 1751174231,
"narHash": "sha256-OLPo3ZI/gKH0C6P6l2W9RYm1ow/Jl4qBrasQ3rjAA0E=",
"owner": "srid",
"repo": "nixos-unified",
"rev": "05eb3d59d3b48460ea01c419702d4fc0c3210805",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "nixos-unified",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1722073938,
"narHash": "sha256-OpX0StkL8vpXyWOGUD6G+MA26wAXK6SpT94kLJXo6B4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e36e9f57337d0ff0cf77aceb58af4c805472bfae",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1751159883,
"narHash": "sha256-urW/Ylk9FIfvXfliA1ywh75yszAbiTEVgpPeinFyVZo=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "14a40a1d7fb9afa4739275ac642ed7301a9ba1ab",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1752900028,
"narHash": "sha256-dPALCtmik9Wr14MGqVXm+OQcv7vhPBXcWNIOThGnB/Q=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "6b4955211758ba47fac850c040a27f23b9b4008f",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1730768919,
"narHash": "sha256-8AKquNnnSaJRXZxc5YmF/WfmxiHX6MMZZasRP6RRQkE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a04d33c0c3f1a59a2c1cb0c6e34cd24500e5a1dc",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1752950548,
"narHash": "sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c87b95e25065c028d31a94f06a62927d18763fdf",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1747958103,
"narHash": "sha256-qmmFCrfBwSHoWw7cVK4Aj+fns+c54EBP8cGqp/yK410=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "fe51d34885f7b5e3e7b59572796e1bcb427eccb1",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"devshell": "devshell",
"emanote": "emanote",
"flake-parts": "flake-parts_2",
"git-hooks-nix": "git-hooks-nix",
"nixpkgs": "nixpkgs_4",
"treefmt-nix": "treefmt-nix_2"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"emanote",
"nixpkgs"
]
},
"locked": {
"lastModified": 1752909129,
"narHash": "sha256-Eh8FkMvGRaY71BU/oyZTTzt9RsBIq2E6j0r3eLZ/2kY=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "0043b95d80b5bf6d61e84d237e2007727f4dd38d",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"treefmt-nix_2": {
"inputs": {
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1753006367,
"narHash": "sha256-tzbhc4XttkyEhswByk5R38l+ztN9UDbnj0cTcP6Hp9A=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "421b56313c65a0815a52b424777f55acf0b56ddf",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"unionmount": {
"flake": false,
"locked": {
"lastModified": 1742156722,
"narHash": "sha256-5oRYBxnxo/YK2nUdrRdDCatkPWDwSGw4zG67mOATxcU=",
"owner": "srid",
"repo": "unionmount",
"rev": "0349ae3e16e803101cbdd9c056e6b052f8817cba",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "unionmount",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

101
flake.nix Normal file
View File

@ -0,0 +1,101 @@
{
description = '''';
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
devshell.url = "github:numtide/devshell";
emanote.url = "github:srid/emanote";
git-hooks-nix.url = "github:cachix/git-hooks.nix";
treefmt-nix.url = "github:numtide/treefmt-nix";
};
outputs =
inputs@{ flake-parts, ... }:
flake-parts.lib.mkFlake { inherit inputs; } {
imports = [
# To import a flake module
# 1. Add foo to inputs
# 2. Add foo as a parameter to the outputs function
# 3. Add here: foo.flakeModule
inputs.devshell.flakeModule
inputs.emanote.flakeModule
inputs.git-hooks-nix.flakeModule
inputs.treefmt-nix.flakeModule
];
systems = [
"x86_64-linux"
# "aarch64-linux"
# "aarch64-darwin"
# "x86_64-darwin"
];
perSystem =
{
config,
self',
inputs',
pkgs,
system,
...
}:
{
# Per-system attributes can be defined here. The self' and inputs'
# module parameters provide easy access to attributes of the same
# system.
# Equivalent to inputs'.nixpkgs.legacyPackages.hello;
packages.default = pkgs.hello;
pre-commit = {
settings.hooks = {
mdformat.enable = true;
nixfmt-rfc-style.enable = true;
prettier.enable = true;
prettier.excludes = [
".*\.md"
"flake.lock"
];
stylish-haskell.enable = true;
};
};
devshells.default = {
packages = with pkgs; [
cowsay
];
};
emanote.sites = {
osds-site = {
layers = [
{
path = ./osds-src;
pathString = "osds-src";
}
];
baseUrl = "127.0.0.1";
port = 8000;
};
};
treefmt = {
programs = {
mdformat.enable = true;
nixfmt.enable = true;
nixfmt.package = pkgs.nixfmt-rfc-style;
prettier.enable = true;
prettier.excludes = [ "*.md" ];
stylish-haskell.enable = true;
};
};
};
flake = {
# The usual flake attributes can be defined here, including system-
# agnostic ones like nixosModule and system-enumerating ones, although
# those are more easily expressed in perSystem.
};
};
}