feat: fennelize obsidian

This commit is contained in:
Youwen Wu 2025-02-01 14:44:45 -08:00
parent 168dd73429
commit 98be3f4254
Signed by: youwen5
GPG key ID: 865658ED1FE61EC3
2 changed files with 39 additions and 39 deletions

24
fnl/plugins/obsidian.fnl Normal file
View file

@ -0,0 +1,24 @@
(fn get-workspaces []
(let [all-workspaces [{:name :vault
:path (vim.fs.normalize "~/Documents/vaults/vault")}
{:name :alexandria
:path (vim.fs.normalize "~/Documents/alexandria/content")}]
existing-workspaces {}]
(each [i x (ipairs all-workspaces)]
(when (= (vim.fn.isdirectory x.path) 1)
(table.insert existing-workspaces (. all-workspaces i))
(vim.notify (.. "Detected Obsidian workspace " x.path ", adding "
(vim.inspect (. all-workspaces i))
" to obsidian workspaces")
vim.log.levels.DEBUG)))
existing-workspaces))
{1 :obsidian.nvim
:after (fn []
(local workspaces (get-workspaces))
(when (> (length workspaces) 0)
(local opts {:completion {:nvim_cmp false}
:ui {:enable false}
: workspaces})
((. (require :obsidian) :setup) opts)))
:ft [:markdown]}

View file

@ -1,47 +1,23 @@
-- [nfnl] Compiled from ./fnl/plugins/obsidian.fnl by https://github.com/Olical/nfnl, do not edit.
local function get_workspaces()
local all_workspaces = {
{
name = "vault",
path = vim.fs.normalize("~/Documents/vaults/vault"),
},
{
name = "alexandria",
path = vim.fs.normalize("~/Documents/alexandria/content"),
},
}
local all_workspaces = {{name = "vault", path = vim.fs.normalize("~/Documents/vaults/vault")}, {name = "alexandria", path = vim.fs.normalize("~/Documents/alexandria/content")}}
local existing_workspaces = {}
for i, x in ipairs(all_workspaces) do
if vim.fn.isdirectory(x.path) == 1 then
if (vim.fn.isdirectory(x.path) == 1) then
table.insert(existing_workspaces, all_workspaces[i])
vim.notify(
[[Detected Obsidian workspace ]]
.. x.path
.. [[, adding ]]
.. vim.inspect(all_workspaces[i])
.. [[ to obsidian workspaces]],
vim.log.levels.DEBUG
)
vim.notify(("Detected Obsidian workspace " .. x.path .. ", adding " .. vim.inspect(all_workspaces[i]) .. " to obsidian workspaces"), vim.log.levels.DEBUG)
else
end
end
return existing_workspaces
end
return {
"obsidian.nvim",
ft = { "markdown" },
after = function()
local workspaces = get_workspaces()
if #workspaces > 0 then
local opts = {
ui = { enable = false },
workspaces = workspaces,
completion = { nvim_cmp = false },
}
require("obsidian").setup(opts)
end
end,
}
local function _2_()
local workspaces = get_workspaces()
if (#workspaces > 0) then
local opts = {completion = {nvim_cmp = false}, ui = {enable = false}, workspaces = workspaces}
return require("obsidian").setup(opts)
else
return nil
end
end
return {"obsidian.nvim", after = _2_, ft = {"markdown"}}