local defaults = { nota_home = '~/.local/share/nota', -- Root location in which to store all notes default_keybinds = true, -- Whether or not to set the default keybinds periodic_locations = { daily = 'periodic/daily', -- Location to store daily notes, relative to nota_home weekly = 'periodic/weekly', -- Location to store weekly notes, relative to nota_home monthly = 'periodic/monthly', -- Location to store monthly notes, relative to nota_home seasonal = 'periodic/seasonal', -- Location to store seasonal notes, relative to nota_home yearly = 'periodic/yearly' -- Location to store yearly notes, relative to nota_home }, templates = { daily = 'templates/daily.md', -- Template for daily notes, relative to nota_home weekly = 'templates/weekly.md', -- Template for weekly notes, relative to nota_home monthly = 'templates/monthly.md', -- Template for monthly notes, relative to nota_home seasonal = 'templates/seasonal.md', -- Template for seasonal notes, relative to nota_home yearly = 'templates/yearly.md', -- Template for yearly notes, relative to nota_home plan = 'templates/plan.md' -- Template for plan notes, relative to nota_home }, tasks = { inbox = 'inbox.md', -- Location of the file in which to store newly captured tasks, relative to nota_home someday = 'someday.md' -- Location of the file in which to store indefinitely deferred tasks, relative to nota_home }, learning = { learning_file = 'learning.md', -- Location of the file in which to store learning entries, relative to nota_home prefix = '%Y-%x-%d: ' -- Prefix to add when capturing learning entries }, plan = { archive = 'plans', -- Location of the plan archives. plan_file = '~/.plan' -- Location of the active plan, the default is what is expected by finger. } } -- Recursively extends a table with another local function extend(target, extender) for key, value in pairs(extender) do if type(target[key]) == "table" and type(value) == "table" then extend(target[key], value) else target[key] = value end end end function configure(user_configuration) return extend(defaults, extender) end