From 23b911e176fcb91436159691cf2fcf60a29f0200 Mon Sep 17 00:00:00 2001 From: 409 <409dev@protonmail.com> Date: Fri, 23 May 2025 06:48:22 +0200 Subject: [PATCH] load obsidian.nvim workspaces from `.obsidian_vaults` file this decouples the user-specific vaults from the repo the `.obsidian_vaults` file is expected to be in the root of the nvim config --- .gitignore | 1 + lua/409/plugins/obsidian.lua | 28 ++++++++++++++++++++++------ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index f84e7ed..8743e0a 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ spell/ +.obsidian_vaults diff --git a/lua/409/plugins/obsidian.lua b/lua/409/plugins/obsidian.lua index 5d5dbbd..feac3df 100644 --- a/lua/409/plugins/obsidian.lua +++ b/lua/409/plugins/obsidian.lua @@ -41,11 +41,27 @@ return { ui = { enable = false, }, - workspaces = { - { - name = "personal", - path = "~/obsidian/409", - }, - }, + workspaces = (function() + local vaults = {} + + local vaults_file_path = vim.fn.stdpath("config") .. "/.obsidian_vaults" + local vaults_file = io.open(vaults_file_path, "r") + + if vaults_file == nil then + return vaults + end + + for line in vaults_file:lines() do + for vault_name, vault_path in string.gmatch(line, "%s*(%S+)%s*=%s*(.+)%s*") do + vaults[#vaults + 1] = { + name = vault_name, + path = vault_path, + } + vim.print(vaults[#vaults]) + end + end + + return vaults + end)(), }, }