diff --git a/README.md b/README.md index 370cd45..14b973f 100644 --- a/README.md +++ b/README.md @@ -225,12 +225,13 @@ require('telekasten').setup({ -- and thus the telekasten syntax will not be loaded either auto_set_filetype = true, + -- dir names for special notes (absolute path or subdir name) dailies = home .. '/' .. 'daily', weeklies = home .. '/' .. 'weekly', templates = home .. '/' .. 'templates', - -- image subdir for pasting - -- subdir name + -- image (sub)dir for pasting + -- dir name (absolute path or subdir name) -- or nil if pasted images shouldn't go into a special subdir image_subdir = "img", diff --git a/doc/telekasten.txt b/doc/telekasten.txt index 65596d2..1ed71f0 100644 --- a/doc/telekasten.txt +++ b/doc/telekasten.txt @@ -158,18 +158,21 @@ telekasten.setup({opts}) *telekasten.settings.daily* daily: ~ Path to your daily notes, to separate them from 'normal' notes. + Accepts absolute path or sub-directory name. Default: '~/zettelkasten/daily' *telekasten.settings.weekly* weekly: ~ Path to your weekly notes, to separate them from 'normal' notes. + Accepts absolute path or sub-directory name. Default: '~/zettelkasten/weekly' *telekasten.settings.templates* templates: ~ Path to your note templates. + Accepts absolute path or sub-directory name. Default: '~/zettelkasten/templates' @@ -181,8 +184,9 @@ telekasten.setup({opts}) *telekasten.settings.image_subdir* image_subdir: ~ - Sub-directory where pasted images should go to. Set to `nil` if images - should not go into a sub-directory. + Path to the directory where pasted images should go to. Accepts + absolute path or sub-directory name.Set to `nil` if images should not + go into a sub-directory. Default: `nil` diff --git a/lua/telekasten.lua b/lua/telekasten.lua index efad941..267b86e 100644 --- a/lua/telekasten.lua +++ b/lua/telekasten.lua @@ -39,12 +39,13 @@ M.Cfg = { -- and thus the telekasten syntax will not be loaded either auto_set_filetype = true, + -- dir names for special notes (absolute path or subdir name) dailies = home .. "/" .. "daily", weeklies = home .. "/" .. "weekly", templates = home .. "/" .. "templates", - -- image subdir for pasting - -- subdir name + -- image (sub)dir for pasting + -- dir name (absolute path or subdir name) -- or nil if pasted images shouldn't go into a special subdir image_subdir = nil, @@ -188,12 +189,13 @@ local function global_dir_check() ret = ret and check_dir_and_ask(M.Cfg.dailies, "dailies") ret = ret and check_dir_and_ask(M.Cfg.weeklies, "weeklies") ret = ret and check_dir_and_ask(M.Cfg.templates, "templates") + ret = ret and check_dir_and_ask(M.Cfg.image_subdir, "images") - local img_dir = M.Cfg.home - if M.Cfg.image_subdir then - img_dir = img_dir .. "/" .. M.Cfg.image_subdir - end - ret = ret and check_dir_and_ask(img_dir, "image_subdir") + -- local img_dir = M.Cfg.home + -- if M.Cfg.image_subdir then + -- img_dir = img_dir .. "/" .. M.Cfg.image_subdir + -- end + -- ret = ret and check_dir_and_ask(img_dir, "M.Cfg.image_subdir") return ret end @@ -203,6 +205,14 @@ local function escape(s) return string.gsub(s, "[%%%]%^%-$().[*+?]", "%%%1") end +local function make_absolute_path(path) + local ret = path + if not (Path:new(path):is_absolute()) and path ~= nil then + ret = M.Cfg.home .. "/" .. path + end + return ret +end + -- ---------------------------------------------------------------------------- -- image stuff local function imgFromClipboard() @@ -251,10 +261,12 @@ local function imgFromClipboard() local relpath = pngname if M.Cfg.image_subdir then - relpath = M.Cfg.image_subdir .. "/" .. pngname - pngpath = M.Cfg.home .. "/" .. M.Cfg.image_subdir + relpath = Path:new(M.Cfg.image_subdir):make_relative(M.Cfg.home) + .. "/" + .. pngname + --pngpath = M.Cfg.home .. "/" .. M.Cfg.image_subdir end - pngpath = pngpath .. "/" .. pngname + pngpath = M.Cfg.image_subdir .. "/" .. pngname os.execute("xclip -selection clipboard -t image/png -o > " .. pngpath) if file_exists(pngpath) then @@ -2562,6 +2574,12 @@ local function Setup(cfg) print("-----------------") print(vim.inspect(M.Cfg)) end + + -- Convert all directories in full path + M.Cfg.image_subdir = make_absolute_path(M.Cfg.image_subdir) + M.Cfg.dailies = make_absolute_path(M.Cfg.dailies) + M.Cfg.weeklies = make_absolute_path(M.Cfg.weeklies) + M.Cfg.templates = make_absolute_path(M.Cfg.templates) end M.find_notes = FindNotes