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

@@ -2,6 +2,7 @@
*/.obsidian/app.json */.obsidian/app.json
*/.obsidian/appearance.json */.obsidian/appearance.json
*/.obsidian/core-plugins*.json */.obsidian/core-plugins*.json
*/.obsidian/snippets
// Dynamic // Dynamic
*/.obsidian/graph.json */.obsidian/graph.json

View File

@@ -15,6 +15,22 @@
enable = true; enable = true;
sharedSettings = { sharedSettings = {
app = {
defaultViewMode = "preview";
livePreview = false;
readableLineLength = false;
showLineNumber = true;
tabSize = 2;
promptDelete = false;
trashOption = "local";
alwaysUpdateLinks = true;
newFileLocation = "folder";
newFileFolderPath = "inbox";
newLinkFormat = "absolute";
showUnsupportedFiles = true;
attachmentFolderPath = "./assets";
};
corePlugins = [ corePlugins = [
"bookmarks" "bookmarks"
"canvas" "canvas"
@@ -31,6 +47,11 @@
"switcher" "switcher"
"tag-pane" "tag-pane"
]; ];
cssSnippets = [
./snippets/editor-monospace.css
./snippets/file-explorer-separators.css
];
}; };
}; };

View File

@@ -83,6 +83,12 @@ in
"word-count" "word-count"
]; ];
}; };
cssSnippets = mkOption {
description = "CSS snippets to install.";
type = raw;
default = [ ];
};
}; };
vaults = mkOption { vaults = mkOption {
@@ -122,6 +128,12 @@ in
type = listOf (enum corePlugins); type = listOf (enum corePlugins);
default = cfg.sharedSettings.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: { mkAppearance = vault: {
name = "${vault.target}/.obsidian/appearance.json"; name = "${vault.target}/.obsidian/appearance.json";
value = { 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: [ 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 in
builtins.listToAttrs ( builtins.listToAttrs (
lib.lists.flatten ( lib.lists.flatten (
@@ -183,6 +210,7 @@ in
(mkApp vault) (mkApp vault)
(mkAppearance vault) (mkAppearance vault)
(mkCorePlugins vault) (mkCorePlugins vault)
(mkCssSnippets vault)
]) vaults ]) vaults
) )
); );

View File

@@ -0,0 +1,3 @@
.markdown-source-view.mod-cm6 .cm-scroller {
font-family: var(--font-monospace);
}

View File

@@ -0,0 +1,18 @@
:root {
--replete-custom-separators-vertical-padding: 4px;
--replete-custom-separators-left-margin: -12px;
}
.nav-files-container [class*=nav-]:has(:is(
[data-path="Inbox"],
[data-path="Dreams"],
[data-path="Work"],
[data-path="Random"],
))::after {
content:'';
display:block;
height:1px;
width:calc(100% + 32px);
background:linear-gradient(to right, var(--tab-outline-color), transparent);
margin:var(--replete-custom-separators-vertical-padding) 0 var(--replete-custom-separators-vertical-padding) var(--replete-custom-separators-left-margin);
}