diff options
| author | moxie <moxie@3kgcat.fi> | 2026-03-16 01:32:23 +0200 |
|---|---|---|
| committer | moxie <moxie@3kgcat.fi> | 2026-03-16 01:32:23 +0200 |
| commit | d4eec399dea52337e166b9cfd43f719433418cce (patch) | |
| tree | 57213b425c37f268522566310fcbabcfbcdaaacf /lua/muwiki/utils.lua | |
| parent | a3bec7841215098ca4492a2a38336be76e7fbf4c (diff) | |
refactor: simplify resolve()
Diffstat (limited to 'lua/muwiki/utils.lua')
| -rw-r--r-- | lua/muwiki/utils.lua | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/lua/muwiki/utils.lua b/lua/muwiki/utils.lua index 273a466..c3da4eb 100644 --- a/lua/muwiki/utils.lua +++ b/lua/muwiki/utils.lua @@ -57,17 +57,17 @@ function M.open_index(name) M.open_in_buffer(index_path) end -function M.resolve(filepath, wiki_root) +function M.resolve(filepath) local path = filepath:gsub('^file://', '') - local path_type = path:sub(1, 1) - if path_type == '.' then - local current_dir = vim.fs.dirname(vim.api.nvim_buf_get_name(0)) - path = vim.fs.joinpath(current_dir, path) - elseif path_type ~= '/' and path_type ~= '~' then - local base = wiki_root or vim.fs.dirname(vim.api.nvim_buf_get_name(0)) - path = vim.fs.joinpath(base, path) + + -- Absolute paths: normalize directly + if path:sub(1, 1) == '/' or path:sub(1, 1) == '~' then + return vim.fs.normalize(path) end - return vim.fs.normalize(path) + + -- Relative paths: resolve against current buffer's directory + local current_dir = vim.fs.dirname(vim.api.nvim_buf_get_name(0)) + return vim.fs.normalize(vim.fs.joinpath(current_dir, path)) end function M.normalize_filename(text) |
