chore: update telekasten config
add helper commands for additional note creation (review templates) fix markdown wrap re-enable note link commands
This commit is contained in:
@@ -4,9 +4,12 @@ local o = vim.opt_local
|
|||||||
|
|
||||||
-- ──────────────────[ set options for markdown files ]───────────────
|
-- ──────────────────[ set options for markdown files ]───────────────
|
||||||
autocmd('FileType', {
|
autocmd('FileType', {
|
||||||
pattern = 'markdown',
|
pattern = { 'markdown', 'telekasten' },
|
||||||
callback = function()
|
callback = function()
|
||||||
-- o.colorcolumn = '+1,+2'
|
o.colorcolumn = '81'
|
||||||
|
o.wrap = true
|
||||||
|
o.linebreak = true
|
||||||
|
o.breakindent = true
|
||||||
o.textwidth = 80
|
o.textwidth = 80
|
||||||
o.spell = true
|
o.spell = true
|
||||||
end,
|
end,
|
||||||
@@ -32,4 +35,4 @@ autocmd('TextYankPost', {
|
|||||||
callback = function()
|
callback = function()
|
||||||
vim.highlight.on_yank({ higroup = 'IncSearch', timeout = '800' })
|
vim.highlight.on_yank({ higroup = 'IncSearch', timeout = '800' })
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ local g = vim.g
|
|||||||
g.netrw_liststyle = 3
|
g.netrw_liststyle = 3
|
||||||
g.netrw_banner = 0
|
g.netrw_banner = 0
|
||||||
o.clipboard:append('unnamedplus') -- use system clipboard as the default register
|
o.clipboard:append('unnamedplus') -- use system clipboard as the default register
|
||||||
o.cdhome = false -- :cd shows cwd
|
o.cdhome = false -- :cd shows cwd
|
||||||
o.backspace = 'indent,eol,start'
|
o.backspace = 'indent,eol,start'
|
||||||
o.spelllang = 'en_us'
|
o.spelllang = 'en_us'
|
||||||
-- ───────────────────────────────────────────────────── appearance ──
|
-- ───────────────────────────────────────────────────── appearance ──
|
||||||
@@ -73,4 +73,4 @@ o.ignorecase = true
|
|||||||
o.smartcase = true
|
o.smartcase = true
|
||||||
o.iskeyword:append('-') -- consider string-string as a whole word
|
o.iskeyword:append('-') -- consider string-string as a whole word
|
||||||
-- ───────────────────────────────────────────────────── completion ──
|
-- ───────────────────────────────────────────────────── completion ──
|
||||||
o.completeopt = 'menu,preview,noselect'
|
o.completeopt = 'menu,preview,noselect'
|
||||||
|
|||||||
@@ -1,20 +1,99 @@
|
|||||||
|
local zettel = os.getenv('HOME') .. '/zettel'
|
||||||
|
|
||||||
|
local function render_template(template_path, vars)
|
||||||
|
local lines = vim.fn.readfile(template_path)
|
||||||
|
local text = table.concat(lines, '\n')
|
||||||
|
|
||||||
|
for key, value in pairs(vars) do
|
||||||
|
text = text:gsub('{{' .. key .. '}}', value)
|
||||||
|
end
|
||||||
|
|
||||||
|
return vim.split(text, '\n', { plain = true })
|
||||||
|
end
|
||||||
|
|
||||||
|
local function open_review(kind, filename, template, vars)
|
||||||
|
local path = zettel .. '/journal/' .. kind .. '/' .. filename .. '.md'
|
||||||
|
|
||||||
|
vim.fn.mkdir(vim.fn.fnamemodify(path, ':h'), 'p')
|
||||||
|
vim.cmd('edit ' .. vim.fn.fnameescape(path))
|
||||||
|
|
||||||
|
if vim.fn.filereadable(path) == 0 or vim.fn.getfsize(path) == 0 then
|
||||||
|
local lines = render_template(zettel .. '/templates/' .. template, vars)
|
||||||
|
vim.api.nvim_buf_set_lines(0, 0, -1, false, lines)
|
||||||
|
vim.cmd('write')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<leader>zM', function()
|
||||||
|
local y = os.date('%Y')
|
||||||
|
local m = os.date('%m')
|
||||||
|
|
||||||
|
open_review('monthly', y .. '-' .. m, 'monthly-review.md', {
|
||||||
|
title = os.date('%B %Y'),
|
||||||
|
date = os.date('%Y-%m-%d'),
|
||||||
|
year = y,
|
||||||
|
month = m,
|
||||||
|
})
|
||||||
|
end, { desc = 'Open monthly review' })
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<leader>zQ', function()
|
||||||
|
local y = os.date('%Y')
|
||||||
|
local m = tonumber(os.date('%m'))
|
||||||
|
local q = tostring(math.floor((m - 1) / 3) + 1)
|
||||||
|
|
||||||
|
open_review('quarterly', y .. '-Q' .. q, 'quarterly-review.md', {
|
||||||
|
title = y .. ' Q' .. q,
|
||||||
|
date = os.date('%Y-%m-%d'),
|
||||||
|
year = y,
|
||||||
|
quarter = q,
|
||||||
|
})
|
||||||
|
end, { desc = 'Open quarterly review' })
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<leader>zY', function()
|
||||||
|
local y = os.date('%Y')
|
||||||
|
|
||||||
|
open_review('yearly', y, 'yearly-review.md', {
|
||||||
|
title = y .. ' Yearly Review',
|
||||||
|
date = os.date('%Y-%m-%d'),
|
||||||
|
year = y,
|
||||||
|
})
|
||||||
|
end, { desc = 'Open yearly review' })
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd('BufEnter', {
|
||||||
|
callback = function(args)
|
||||||
|
local file = vim.api.nvim_buf_get_name(args.buf)
|
||||||
|
|
||||||
|
if vim.startswith(file, zettel .. '/') and file:match('%.md$') then
|
||||||
|
vim.keymap.set('i', '[[', function()
|
||||||
|
vim.cmd('stopinsert')
|
||||||
|
vim.cmd('Telekasten insert_link')
|
||||||
|
end, {
|
||||||
|
buffer = args.buf,
|
||||||
|
desc = 'Telekasten insert note link',
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'renerocksai/telekasten.nvim',
|
'renerocksai/telekasten.nvim',
|
||||||
enabled = true,
|
dependencies = {
|
||||||
dependencies = { 'nvim-telescope/telescope.nvim', 'nvim-telekasten/calendar-vim' },
|
'nvim-telescope/telescope.nvim',
|
||||||
|
'nvim-telekasten/calendar-vim',
|
||||||
|
},
|
||||||
event = 'VeryLazy',
|
event = 'VeryLazy',
|
||||||
cmd = 'Telekasten',
|
cmd = 'Telekasten',
|
||||||
opts = {
|
opts = {
|
||||||
-- default vault (notebook)
|
-- default vault (notebook)
|
||||||
home = os.getenv('HOME') .. '/notes',
|
home = zettel,
|
||||||
dailies = 'dailies/',
|
dailies = 'journal/daily',
|
||||||
weeklies = 'weeklies/',
|
weeklies = 'journal/weekly',
|
||||||
templates = 'templates/',
|
templates = 'templates',
|
||||||
|
|
||||||
-- default templates
|
-- default templates
|
||||||
template_new_note = nil,
|
template_new_note = zettel .. '/templates/zettel.md',
|
||||||
template_new_daily = os.getenv('HOME') .. '/notes/templates/dailytemplate.md',
|
template_new_daily = zettel .. '/templates/journal-entry.md',
|
||||||
template_new_weekly = os.getenv('HOME') .. '/notes/templates/weeklytemplate.md',
|
template_new_weekly = zettel .. '/templates/weekly-review.md',
|
||||||
|
|
||||||
image_subdir = '_resources',
|
image_subdir = '_resources',
|
||||||
image_link_style = 'wiki',
|
image_link_style = 'wiki',
|
||||||
@@ -26,14 +105,15 @@ return {
|
|||||||
subdirs_in_links = false,
|
subdirs_in_links = false,
|
||||||
|
|
||||||
extension = '.md',
|
extension = '.md',
|
||||||
auto_set_filetype = true,
|
auto_set_filetype = false,
|
||||||
new_note_filename = 'uuid-title', -- possible choices 'title', 'uuid', 'uuid-title', 'title-uuid'
|
new_note_filename = 'uuid-title', -- possible choices 'title', 'uuid', 'uuid-title', 'title-uuid'
|
||||||
uuid_type = '%Y%m%d%H%M%S',
|
uuid_type = '%Y%m%d%H%M%S',
|
||||||
uuid_sep = ' ',
|
-- uuid_sep = ' ',
|
||||||
filename_small_case = true,
|
filename_small_case = true,
|
||||||
sort = 'modified', -- or 'filename'
|
filename_space_subst = '-',
|
||||||
|
sort = 'filename', -- or 'modified' or 'created'
|
||||||
command_palette_theme = 'dropdown',
|
command_palette_theme = 'dropdown',
|
||||||
show_tags_theme = 'get_cursor',
|
show_tags_theme = 'ivy',
|
||||||
rename_update_links = true,
|
rename_update_links = true,
|
||||||
|
|
||||||
follow_creates_nonexisting = true,
|
follow_creates_nonexisting = true,
|
||||||
@@ -43,7 +123,7 @@ return {
|
|||||||
-- enter any additional vaults here
|
-- enter any additional vaults here
|
||||||
vaults = {
|
vaults = {
|
||||||
blog = {
|
blog = {
|
||||||
home = os.getenv('HOME') .. '/blog/content/posts',
|
home = os.getenv('HOME') .. '/code/projects/blog-danesi.dev/content/posts',
|
||||||
dailies = nil,
|
dailies = nil,
|
||||||
weeklies = nil,
|
weeklies = nil,
|
||||||
templates = vim.fn.expand('~/Templates/blog/'),
|
templates = vim.fn.expand('~/Templates/blog/'),
|
||||||
@@ -57,9 +137,6 @@ return {
|
|||||||
auto_set_filetype = false,
|
auto_set_filetype = false,
|
||||||
install_syntax = false,
|
install_syntax = false,
|
||||||
},
|
},
|
||||||
testing = {
|
|
||||||
home = os.getenv('HOME') .. '/Evernote Export.2/notes',
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
|
||||||
media_extensions = {
|
media_extensions = {
|
||||||
@@ -132,5 +209,6 @@ return {
|
|||||||
),
|
),
|
||||||
vim.keymap.set({ 'n', 'v' }, '<leader>zt', '<cmd>Telekasten toggle_todo<cr>', { desc = 'Toggle todo' }),
|
vim.keymap.set({ 'n', 'v' }, '<leader>zt', '<cmd>Telekasten toggle_todo<cr>', { desc = 'Toggle todo' }),
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<leader>zl', '<cmd>Telekasten insert_link<cr>', { desc = 'Link to a note' }),
|
||||||
-- vim.keymap.set('i', '[[', '<ESC><cmd>Telekasten insert_link<cr>', { desc = 'Link to a note' }),
|
-- vim.keymap.set('i', '[[', '<ESC><cmd>Telekasten insert_link<cr>', { desc = 'Link to a note' }),
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user