summaryrefslogtreecommitdiff
path: root/dot_config/nvim.new/lua/ibrahim/plugins/obsidian.lua.tmpl
blob: 24982a64ab48cb03b376502c4326c8f418391c81 (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
77
78
79
80
81
82
-- 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 = {
            {{- if eq .chezmoi.os "windows" }}
            {
                name = "work",
                path = "~/Documents/Vaults/Work",
            },
            {{ else }}
            {
              name = "personal",
              path = "~/Documents/Vaults/Personal",
            },
            {{ end }}
        },

        ---@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,
        },

    },
}