summaryrefslogtreecommitdiff
path: root/dot_config/nvim.new/lua/ibrahim/plugins/obsidian.lua
blob: 661a85972768e57494c8269fe3b4b99f61f41fd9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
-- vim:ft=lua

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"
    --   "BufReadPre path/to/my-vault/**.md",
    --   "BufNewFile path/to/my-vault/**.md",
    -- },
    keys = {
        { "<leader>ob", vim.cmd.ObsidianBacklinks,   desc = "Open Obsidian backlinks" },
        { "<leader>o/", vim.cmd.ObsidianSearch,      desc = "Open Obsidian search" },
        { "<leader>op", vim.cmd.ObsidianQuickSwitch, desc = "Open Obsidian find files" },
        { "<leader>on", vim.cmd.ObsidianNew,         desc = "Create new Obsidian note" },
        { "<leader>ot", vim.cmd.ObsidianToday,       desc = "Open today's Obsidian daily note" },
        { "<leader>oy", vim.cmd.ObsidianYesterday,       desc = "Open yesterday's Obsidian daily note" },
        { "<leader>ow", vim.cmd.ObsidianTomorrow,       desc = "Open tomorrow's Obsidian daily note" },
        { "<leader>od", vim.cmd.ObsidianDailyNote,   desc = "Open daily Obsidian note" },
    },
    dependencies = {
        -- Required.
        "nvim-lua/plenary.nvim",

        -- Optional
        "hrsh7th/nvim-cmp",
        "nvim-telescope/telescope.nvim",
        "nvim-treesitter/nvim-treesitter",
    },
    opts = {
        workspaces = {
            {
              name = "personal",
              path = "~/Documents/Vaults/Personal",
            },
            
        },

        ---@param title string
        ---@return string
        note_id_func = function(title)
            local id = title:gsub(" ", "%-"):lower()
            return id
        end,

        templates = {
            folder = "templates",
            date_format = "%Y-%m-%d-%a",
            substitutions = {
                friendly_date_format = function()
                    return os.date("%A %B %d, %Y")
                end
            },
        },

        daily_notes = {
            folder = "dailies",
            date_format = "%Y-%m-%d-%a",
            alias_format = "%Y-%m-%d-%a",
            template = "daily.md",
        },

        callbacks = {
            enter_note = function()
                -- The folds are too much for these notes
                vim.opt_local.foldlevel = 99
                vim.opt_local.foldlevelstart = 99
            end,
        },

    },
}