refactor(nvim): obsidian extra

This commit is contained in:
Sergio Laín 2025-06-08 21:28:17 +02:00
parent 0f6a99667f
commit 19164d6333
No known key found for this signature in database
GPG key ID: 51BB28D8B42FB438

View file

@ -7,22 +7,21 @@ return {
"obsidian-nvim/obsidian.nvim", -- NOTE: Using a fork from the community "obsidian-nvim/obsidian.nvim", -- NOTE: Using a fork from the community
ft = "markdown", ft = "markdown",
keys = { keys = {
{ prefix .. "o", "<cmd>ObsidianOpen<CR>", desc = "Open on App" }, { prefix .. "o", "<cmd>Obsidian open<CR>", desc = "Open on App" },
{ prefix .. "g", "<cmd>ObsidianSearch<CR>", desc = "Grep" }, { prefix .. "g", "<cmd>Obsidian search<CR>", desc = "Grep" },
{ "<leader>sO", "<cmd>ObsidianSearch<CR>", desc = "Obsidian Grep" }, { prefix .. "n", "<cmd>Obsidian new<CR>", desc = "New Note" },
{ prefix .. "n", "<cmd>ObsidianNew<CR>", desc = "New Note" }, { prefix .. "<space>", "<cmd>Obsidian quick_switch<CR>", desc = "Find Files" },
{ prefix .. "<space>", "<cmd>ObsidianQuickSwitch<CR>", desc = "Find Files" }, { prefix .. "b", "<cmd>Obsidian backlinks<CR>", desc = "Backlinks" },
{ prefix .. "b", "<cmd>ObsidianBacklinks<CR>", desc = "Backlinks" }, { prefix .. "t", "<cmd>Obsidian tags<CR>", desc = "Tags" },
{ prefix .. "t", "<cmd>ObsidianTags<CR>", desc = "Tags" }, { prefix .. "t", "<cmd>Obsidian template<CR>", desc = "Template" },
{ prefix .. "t", "<cmd>ObsidianTemplate<CR>", desc = "Template" }, { prefix .. "L", "<cmd>Obsidian link<CR>", mode = "v", desc = "Link" },
{ prefix .. "l", "<cmd>ObsidianLink<CR>", mode = "v", desc = "Link" }, { prefix .. "l", "<cmd>Obsidian links<CR>", desc = "Links" },
{ prefix .. "L", "<cmd>ObsidianLinks<CR>", desc = "Links" }, { prefix .. "l", "<cmd>Obsidian link_new<CR>", mode = "v", desc = "New Link" },
{ prefix .. "N", "<cmd>ObsidianLinkNew<CR>", mode = "v", desc = "New Link" }, { prefix .. "e", "<cmd>Obsidian extract_note<CR>", mode = "v", desc = "Extract Note" },
{ prefix .. "e", "<cmd>ObsidianExtractNote<CR>", mode = "v", desc = "Extract Note" }, { prefix .. "w", "<cmd>Obsidian workspace<CR>", desc = "Workspace" },
{ prefix .. "w", "<cmd>ObsidianWorkspace<CR>", desc = "Workspace" }, { prefix .. "r", "<cmd>Obsidian rename<CR>", desc = "Rename" },
{ prefix .. "r", "<cmd>ObsidianRename<CR>", desc = "Rename" }, { prefix .. "i", "<cmd>Obsidian paste_img<CR>", desc = "Paste Image" },
{ prefix .. "i", "<cmd>ObsidianPasteImg<CR>", desc = "Paste Image" }, { prefix .. "d", "<cmd>Obsidian dailies<CR>", desc = "Daily Notes" },
{ prefix .. "d", "<cmd>ObsidianDailies<CR>", desc = "Daily Notes" },
}, },
opts = { opts = {
workspaces = { workspaces = {
@ -48,6 +47,18 @@ return {
picker = { picker = {
name = "snacks.pick", name = "snacks.pick",
note_mappings = {
-- Create a new note from your query.
new = "<C-x>",
-- Insert a link to the selected note.
insert_link = "<C-l>",
},
tag_mappings = {
-- Add tag(s) to current note.
tag_note = "<C-x>",
-- Insert a tag at the current location.
insert_tag = "<C-l>",
},
}, },
mappings = { mappings = {
@ -71,12 +82,36 @@ return {
}, },
}, },
new_notes_location = "notes_subdir",
templates = { templates = {
subdir = "00 - Data/Plantillas", subdir = "00 - Data/Plantillas",
date_format = "%Y-%m-%d-%a", date_format = "%Y-%m-%d-%a",
time_format = "%H:%M", time_format = "%H:%M",
}, },
---@param spec { id: string, dir: obsidian.Path, title: string|? }
---@return string|obsidian.Path The full path to the new note.
note_path_func = function(spec)
return spec.title
end,
note_frontmatter_func = function(note)
if note.title then
note:add_alias(note.title)
end
local out = { aliases = note.aliases }
if note.metadata ~= nil and not vim.tbl_isempty(note.metadata) then
for k, v in pairs(note.metadata) do
out[k] = v
end
end
return out
end,
follow_url_func = function(url) follow_url_func = function(url)
vim.fn.jobstart({ "xdg-open", url }) vim.fn.jobstart({ "xdg-open", url })
end, end,
@ -85,7 +120,12 @@ return {
img_folder = "00 - Data/Documentos", img_folder = "00 - Data/Documentos",
}, },
ui = { enable = false }, ui = { enable = true },
statusline = {
enabled = true,
format = "{{backlinks}} backlinks | {{words}} words",
},
}, },
}, },
{ {
@ -96,4 +136,11 @@ return {
}, },
}, },
}, },
{
"nvim-lualine/lualine.nvim",
optional = true,
opts = function(_, opts)
table.insert(opts.sections.lualine_x, 1, "g:obsidian")
end,
},
} }