Files
dotfiles/nvim/lua/plugins/obsidian.lua
2025-07-10 15:18:37 -04:00

91 lines
3.0 KiB
Lua

return {
"epwalsh/obsidian.nvim",
version = "*", -- recommended, use latest release instead of latest commit
-- Disable lazy so that I can open daily notes from any directory and from outside of nvim.
lazy = false,
-- Below will load the plugin only for markdown files.
-- ft = "markdown",
-- Replace the above line with this if you only want to load obsidian.nvim for markdown files in your vault:
-- event = {
-- "BufReadPre /home/shaun/Obsidian/*.md",
-- "BufNewFile /home/shaun/Obsidian/*.md",
-- },
dependencies = {
-- Required.
"nvim-lua/plenary.nvim",
-- Recommended.
"nvim-telescope/telescope.nvim",
"nvim-treesitter/nvim-treesitter",
},
opts = {
workspaces = {
{
name = "Obsidian",
path = "~/Obsidian",
},
},
-- Optional, completion of wiki links, local markdown links, and tags using nvim-cmp.
completion = {
-- Set to false to disable completion.
nvim_cmp = false,
-- Trigger completion at 4 chars.
min_chars = 4,
},
daily_notes = {
-- Optional, if you keep daily notes in a separate directory.
folder = "0. 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 workant to change the date format of the default alias of daily notes.
alias_format = "%B %-d, %Y",
-- Optional, default tags to add to each new daily note created.
default_tags = { "daily-notes" },
-- Optional, if you want to automatically insert a template from your template directory like 'daily.md'
template = "98. Templates/Daily Note.md",
},
templates = {
folder = "98. Templates",
date_format = "YYYY.MM.DD",
time_format = "HHMM",
-- A map for custom variables, the key should be the variable and the value a function
substitutions = {},
},
-- Optional, configure key mappings. These are the defaults. If you don't want to set any keymappings this
-- way then set 'mappings = {}'.
mappings = {
-- Overrides the 'gf' mapping to work on markdown/wiki links within your vault.
["gf"] = {
action = function()
return require("obsidian").util.gf_passthrough()
end,
opts = { noremap = false, expr = true, buffer = true },
},
-- Toggle check-boxes.
["<leader>ch"] = {
action = function()
return require("obsidian").util.toggle_checkbox()
end,
opts = { buffer = true },
},
-- Smart action depending on context, either follow link or toggle checkbox.
["<cr>"] = {
action = function()
return require("obsidian").util.smart_action()
end,
opts = { buffer = true, expr = true },
},
},
-- Optional, configure additional syntax highlighting / extmarks.
-- This requires you have `conceallevel` set to 1 or 2. See `:help conceallevel` for more details.
ui = {
enable = false, -- set to false to disable all additional syntax features
},
},
}