aboutsummaryrefslogtreecommitdiff
path: root/lua/muwiki/utils.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/muwiki/utils.lua')
-rw-r--r--lua/muwiki/utils.lua18
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)