local M = {} M.options = { dirs = nil, index_file = 'index.md', text_extensions = { 'txt', 'py', 'rb', 'js', 'ts', 'lua', 'sh', 'bash', 'zsh', 'vim', 'json', 'yaml', 'yml', 'toml', 'xml', 'html', 'css' }, } function M.setup(opts) opts = opts or {} if opts.dirs then M.options.dirs = {} for _, dir in ipairs(opts.dirs) do local path = vim.fs.normalize(dir.path) if not vim.endswith(path, '/') then path = path .. '/' end table.insert(M.options.dirs, { name = dir.name, path = path }) end end for key, value in pairs(opts) do if key == 'dirs' then -- handled above elseif M.options[key] ~= nil then M.options[key] = value end end for _, dir in ipairs(M.options.dirs or {}) do local stat = vim.uv.fs_stat(dir.path) if not (stat and stat.type == 'directory') then vim.notify('Wiki directory not found: ' .. dir.path, vim.log.levels.WARN) end end end return M