Add obsidian css snippets

Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
2024-07-11 11:45:31 +03:00
parent 62e062cd73
commit 99c4ee3e36
5 changed files with 72 additions and 1 deletions

View File

@@ -83,6 +83,12 @@ in
"word-count"
];
};
cssSnippets = mkOption {
description = "CSS snippets to install.";
type = raw;
default = [ ];
};
};
vaults = mkOption {
@@ -122,6 +128,12 @@ in
type = listOf (enum corePlugins);
default = cfg.sharedSettings.corePlugins;
};
cssSnippets = mkOption {
description = "CSS snippets to install.";
type = listOf path;
default = cfg.sharedSettings.cssSnippets;
};
};
};
@@ -152,7 +164,14 @@ in
mkAppearance = vault: {
name = "${vault.target}/.obsidian/appearance.json";
value = {
source = (pkgs.formats.json { }).generate "appearance.json" vault.settings.appearance;
source = (pkgs.formats.json { }).generate "appearance.json" (
vault.settings.appearance
// {
enabledCssSnippets = builtins.map (
snippet: lib.strings.removeSuffix ".css" (builtins.baseNameOf snippet)
) vault.settings.cssSnippets;
}
);
};
};
mkCorePlugins = vault: [
@@ -176,6 +195,14 @@ in
};
}
];
mkCssSnippets =
vault:
builtins.map (snippet: {
name = "${vault.target}/.obsidian/snippets/${builtins.baseNameOf snippet}";
value = {
source = snippet;
};
}) vault.settings.cssSnippets;
in
builtins.listToAttrs (
lib.lists.flatten (
@@ -183,6 +210,7 @@ in
(mkApp vault)
(mkAppearance vault)
(mkCorePlugins vault)
(mkCssSnippets vault)
]) vaults
)
);