From 04662204f18feed19f71a6210f6d94df9eaf6bf2 Mon Sep 17 00:00:00 2001 From: cnshsliu Date: Mon, 20 Feb 2023 14:16:06 +0800 Subject: [PATCH] Add "telekasten" https://github.com/renerocksai/telekasten.nvim --- .../version-1.2/plugins/extra-plugins.md | 165 ++++++++++++++++++ 1 file changed, 165 insertions(+) diff --git a/versioned_docs/version-1.2/plugins/extra-plugins.md b/versioned_docs/version-1.2/plugins/extra-plugins.md index d6228224..2b34f4e3 100644 --- a/versioned_docs/version-1.2/plugins/extra-plugins.md +++ b/versioned_docs/version-1.2/plugins/extra-plugins.md @@ -814,6 +814,171 @@ table.insert(lvim.builtin.cmp.sources, 1, { name = "copilot" }) {"oberblastmeister/neuron.nvim"}, ``` +### [Telekasten](https://github.com/renerocksai/telekasten.nvim) + +**A Neovim (lua) plugin for working with a markdown zettelkasten / wiki and mixing it with a journal, based on telescope.nvim** + +```lua + { 'renerocksai/telekasten.nvim' }, +``` + +```lua +lvim.builtin.which_key.mappings.z = { + name = "+Telekasten", + t = { "lua require('telekasten').toggle_todo()", "Toggle todo" }, + f = { "lua require('telekasten').find_notes()", "Find notes" }, + d = { "lua require('telekasten').find_daily_notes()", "Find daily notes" }, + g = { "lua require('telekasten').search_notes()", "Search notes" }, + z = { "lua require('telekasten').follow_link()", "Follow link" }, + T = { "lua require('telekasten').goto_today()", "Goto today" }, + W = { "lua require('telekasten').goto_thisweek()", "Goto thisweek" }, + w = { "lua require('telekasten').find_weekly_notes()", "Find weekly notes" }, + n = { "lua require('telekasten').new_note()", "New note" }, + N = { "lua require('telekasten').new_templated_note()", "New templated note" }, + y = { "lua require('telekasten').yank_notelink()", "Yank notelink" }, + c = { "lua require('telekasten').show_calendar()", "Show calendar" }, + C = { "CalendarT", "CalendarT" }, + i = { "lua require('telekasten').paste_img_and_link()", "Paste img and link" }, + b = { "lua require('telekasten').show_backlinks()", "Show backlinks" }, + F = { "lua require('telekasten').find_friends()", "Find friends" }, + I = { "lua require('telekasten').insert_img_link({ i=true })", "Insert img link" }, + p = { "lua require('telekasten').preview_img()", "Preview img" }, + m = { "lua require('telekasten').browse_media()", "Browse media" }, + ['#'] = { "lua require('telekasten').show_tags()", "Show tags" }, + r = { "lua require('telekasten').rename_note()", "Rename note" }, + ["."] = { "lua require('telekasten').panel()", "Show Panel" } +} + +vim.keymap.set("i", ";[]", ":lua require('telekasten').insert_link({ i=true })") +vim.keymap.set("i", ";zt", ":lua require('telekasten').toggle_todo({ i=false })") +vim.keymap.set("i", ";#", "lua require('telekasten').show_tags({i = true})") + +local home = vim.fn.expand("~/zettelkasten") +require('telekasten').setup({ + home = home, + -- if true, telekasten will be enabled when opening a note within the configured home + take_over_my_home = true, + -- auto-set telekasten filetype: if false, the telekasten filetype will not be used + -- and thus the telekasten syntax will not be loaded either + auto_set_filetype = true, + -- dir names for special notes (absolute path or subdir name) + dailies = home .. '/' .. 'daily', + weeklies = home .. '/' .. 'weekly', + templates = home .. '/' .. 'templates', + -- image (sub)dir for pasting + -- dir name (absolute path or subdir name) + -- or nil if pasted images shouldn't go into a special subdir + image_subdir = "img", + -- markdown file extension + extension = ".md", + -- Generate note filenames. One of: + -- "title" (default) - Use title if supplied, uuid otherwise + -- "uuid" - Use uuid + -- "uuid-title" - Prefix title by uuid + -- "title-uuid" - Suffix title with uuid + new_note_filename = "title", + --[[ file UUID type + - "rand" + - string input for os.date() + - or custom lua function that returns a string + --]] + uuid_type = "%Y%m%d%H%M", + -- UUID separator + uuid_sep = "-", + -- if not nil, this string replaces spaces in the title when generating filenames + filename_space_subst = nil, + -- following a link to a non-existing note will create it + follow_creates_nonexisting = true, + dailies_create_nonexisting = true, + weeklies_create_nonexisting = true, + -- skip telescope prompt for goto_today and goto_thisweek + journal_auto_open = false, + -- template for new notes (new_note, follow_link) + -- set to `nil` or do not specify if you do not want a template + template_new_note = home .. '/' .. 'templates/new_note.md', + -- template for newly created daily notes (goto_today) + -- set to `nil` or do not specify if you do not want a template + template_new_daily = home .. '/' .. 'templates/daily.md', + -- template for newly created weekly notes (goto_thisweek) + -- set to `nil` or do not specify if you do not want a template + template_new_weekly = home .. '/' .. 'templates/weekly.md', + -- image link style + -- wiki: ![[image name]] + -- markdown: ![](image_subdir/xxxxx.png) + image_link_style = "markdown", + -- default sort option: 'filename', 'modified' + sort = "filename", + -- integrate with calendar-vim + plug_into_calendar = true, + calendar_opts = { + -- calendar week display mode: 1 .. 'WK01', 2 .. 'WK 1', 3 .. 'KW01', 4 .. 'KW 1', 5 .. '1' + weeknm = 4, + -- use monday as first day of week: 1 .. true, 0 .. false + calendar_monday = 1, + -- calendar mark: where to put mark for marked days: 'left', 'right', 'left-fit' + calendar_mark = 'left-fit', + }, + -- telescope actions behavior + close_after_yanking = false, + insert_after_inserting = true, + -- tag notation: '#tag', ':tag:', 'yaml-bare' + tag_notation = "#tag", + -- command palette theme: dropdown (window) or ivy (bottom panel) + command_palette_theme = "dropdown", + -- tag list theme: + -- get_cursor: small tag list at cursor; ivy and dropdown like above + show_tags_theme = "ivy", + -- when linking to a note in subdir/, create a [[subdir/title]] link + -- instead of a [[title only]] link + subdirs_in_links = true, + -- template_handling + -- What to do when creating a new note via `new_note()` or `follow_link()` + -- to a non-existing note + -- - prefer_new_note: use `new_note` template + -- - smart: if day or week is detected in title, use daily / weekly templates (default) + -- - always_ask: always ask before creating a note + template_handling = "smart", + -- path handling: + -- this applies to: + -- - new_note() + -- - new_templated_note() + -- - follow_link() to non-existing note + -- + -- it does NOT apply to: + -- - goto_today() + -- - goto_thisweek() + -- + -- Valid options: + -- - smart: put daily-looking notes in daily, weekly-looking ones in weekly, + -- all other ones in home, except for notes/with/subdirs/in/title. + -- (default) + -- + -- - prefer_home: put all notes in home except for goto_today(), goto_thisweek() + -- except for notes with subdirs/in/title. + -- + -- - same_as_current: put all new notes in the dir of the current note if + -- present or else in home + -- except for notes/with/subdirs/in/title. + new_note_location = "smart", + -- should all links be updated when a file is renamed + rename_update_links = true, + vaults = { + vault2 = { + -- alternate configuration for vault2 here. Missing values are defaulted to + -- default values from telekasten. + -- e.g. + -- home = "/home/user/vaults/personal", + }, + }, + -- how to preview media files + -- "telescope-media-files" if you have telescope-media-files.nvim installed + -- "catimg-previewer" if you have catimg installed + media_previewer = "telescope-media-files", + -- A customizable fallback handler for urls. + follow_url_fallback = nil, +}) + +``` ### [nvim-lastplace](https://github.com/ethanholz/nvim-lastplace) **pick up where you left off**