Files
dotfiles/config/nvim/plugin/obsidian.lua
T

77 lines
3.5 KiB
Lua

require("obsidian").setup({
legacy_commands = false,
picker = {
name = "snacks.pick",
},
ui = {
enable = true,
},
workspaces = {
{
name = "Steve Beaulac 2nd Brain",
path = vim.fn.expand "~" .. "/Documents/sjb-brain/",
},
},
notes_subdir = "Inbox",
daily_notes = {
folder = "Dailies",
date_format = "%Y-%m-%d-%a",
alias_fomat = "%B %-d, %Y",
default_tags = { "daily-notes" },
},
new_notes_location = "notes_subdir",
templates = {
subdir = "Templates",
date_format = "%Y-%m-%d-%a",
time_format = "%H:%M",
tags = "",
},
completion = {
-- nvim_cmp = false,
-- blink = true,
min_chars = 2,
},
link = {
style = "wiki",
},
note_id_func = function(title)
local suffix = ""
if title ~= nil then
suffix = title:gsub(" ", "-"):gsub("[^A-Za-z0-9-]", ""):lower()
else
for _ = 1, 4 do
suffix = suffix .. string.char(math.random(65, 90))
suffix = tostring(os.time()) .. "-" .. suffix
end
end
return suffix
end,
callbacks = {
enter_note = function(note)
vim.keymap.set('n', '<leader>k.', '<CMD>Obsidian toggle_checkbox<CR>', { desc = 'toggle checkbox', buffer = note.bufnr, silent = true })
vim.keymap.set('n', '<leader>kp', '<CMD>Obsidian paste_img<CR>', { desc = 'paste img', buffer = note.bufnr, silent = true })
vim.keymap.set('n', '<leader>kt', '<CMD>Obsidian tags<CR>', { desc = 'tags', buffer = note.bufnr, silent = true })
vim.keymap.set('n', '<leader>k`', '<CMD>Obsidian backlinks<CR>', { desc = 'backlinks', buffer = note.bufnr, silent = true })
vim.keymap.set('n', '<leader>kx', '<CMD>Obsidian follow_link<CR>', { desc = 'follow link', buffer = note.bufnr, silent = true })
vim.keymap.set('n', '<leader>ksl', '<CMD>Obsidian links<CR>', { desc = 'links', buffer = note.bufnr, silent = true })
vim.keymap.set('n', '<leader>kr', '<CMD>Obsidian rename<CR>', { desc = 'rename', buffer = note.bufnr, silent = true })
vim.keymap.set('n', '<leader>ksc', '<CMD>Obsidian toc<CR>', { desc = 'toc', buffer = note.bufnr, silent = true })
vim.keymap.set('v', '<leader>kx', '<CMD>Obsidian link<CR>', { desc = 'links', buffer = note.bufnr, silent = true })
vim.keymap.set('v', '<leader>kl', '<CMD>Obsidian link_new<CR>', { desc = 'links', buffer = note.bufnr, silent = true })
end,
},
})
vim.keymap.set("v", "<leader>kx", "<cmd>Obsidian extract_note<cr>", { desc = "Extract Note" })
vim.keymap.set("n", "<leader>knn", "<cmd>Obsidian new<cr>", { desc = "New Obsidian note" })
vim.keymap.set("n", "<leader>knt", "<cmd>Obsidian new_from_template<cr>", { desc = "New from template" })
vim.keymap.set("n", "<leader>ksq", "<cmd>Obsidian quick_switch<cr>", { desc = "Quick Switch" })
vim.keymap.set("n", "<leader>kss", "<cmd>Obsidian search<cr>", { desc = "Search Obsidian notes" })
vim.keymap.set("n", "<leader>kdt", "<cmd>Obsidian today<cr>", { desc = "Daily Today" })
vim.keymap.set("n", "<leader>kdy", "<cmd>Obsidian yesterday<cr>", { desc = "Daily Yesterday" })
vim.keymap.set("n", "<leader>kdw", "<cmd>Obsidian tomorrow<cr>", { desc = "Daily Tomorrow" })
vim.keymap.set("n", "<leader>kdd", "<cmd>Obsidian dailies<cr>", { desc = "Dailies" })
vim.keymap.set("n", "<leader>kw", "<cmd>Obsidian workspace<cr>", { desc = "Change Workspace" })