return { "epwalsh/obsidian.nvim", version = "*", -- recommended, use latest release instead of latest commit lazy = true, ft = "markdown", -- Replace the above line with this if you only want to load obsidian.nvim for markdown files in your vault: -- event = { -- -- If you want to use the home shortcut '~' here you need to call 'vim.fn.expand'. -- -- E.g. "BufReadPre " .. vim.fn.expand "~" .. "/my-vault/*.md" -- -- refer to `:h file-pattern` for more examples -- "BufReadPre path/to/my-vault/*.md", -- "BufNewFile path/to/my-vault/*.md", -- }, dependencies = { -- Required. "nvim-lua/plenary.nvim", -- For the picker "nvim-telescope/telescope.nvim", }, opts = { workspaces = { { name = "Notes", path = "~/Documents/Notes", }, }, -- Can I enable this somehow? I'm using blink.cmp but this is triggering -- it to look for nvim-cmp directly. -- completion = { -- nvim_cmp = true, -- min_chars = 2, -- }, daily_notes = { -- Optional, if you keep daily notes in a separate directory. folder = "Daily Notes", -- Optional, if you want to change the date format for the ID of daily notes. date_format = "%Y-%m-%d", -- Optional, if you want to automatically insert a template from your template directory like '' template = "Daily Note", }, templates = { folder = "Templates", date_format = "%Y-%m-%d", time_format = "%H:%M", }, ui = { -- Disable the UI features and let render-markdown.nvim handle it. enable = false, -- Even with UI disabled, this determines the order of checkbox states for the smart action. checkboxes = { [" "] = { char = "☐", hl_group = "ObsidianTodo" }, ["x"] = { char = "✔", hl_group = "ObsidianDone" }, ["/"] = { char = "⧗", hl_group = "ObsidianTodo" }, [">"] = { char = "»", hl_group = "ObsidianRightArrow" }, ["~"] = { char = "»", hl_group = "ObsidianTilde" }, ["!"] = { char = "⛝", hl_group = "ObsidianDone" }, }, }, -- Put the note ID in the wiki links wiki_link_func = "prepend_note_id", preferred_link_style = "wiki", -- Customize how note IDs are generated given an optional title. ---@param title string|? ---@return string note_id_func = function(title) if title ~= nil then -- If title is given, transform it into valid file name by removing most special characters -- Note that parens are not supported because they interfere with markdown links. return title:gsub("[^A-Za-z0-9-_]", ""):lower() else -- If title is nil, just put the date and four random characters for _ = 1, 4 do return os.date("%Y-%m-%d ") .. string.char(math.random(65, 90)) end end end, follow_url_func = function(url) vim.ui.open(url) -- Use the built-in open, need Neovim 0.10.0+ end, }, }