From 7fb435bc01099f88812439511a2063ad9c91ddfa Mon Sep 17 00:00:00 2001 From: Rene Schallner Date: Sat, 25 Dec 2021 13:59:40 +0100 Subject: [PATCH] u r + h --- README.md | 2 +- doc/telekasten.txt | 158 +++++++++++++++++++++++++++++---------------- 2 files changed, 105 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index 51cf442..3a3b9ba 100644 --- a/README.md +++ b/README.md @@ -301,7 +301,7 @@ require('telekasten').setup({ -- (default) -- -- - prefer_home: put all notes in home except for goto_today(), goto_thisweek() - -- except for notes/with/subdirs/in/title. + -- 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 diff --git a/doc/telekasten.txt b/doc/telekasten.txt index 1a6f3b5..e51f6bc 100644 --- a/doc/telekasten.txt +++ b/doc/telekasten.txt @@ -55,14 +55,14 @@ telekasten.setup({opts}) Usage: > require("telekasten").setup({ - home = '/path/to/directory', -- path to main markdown folder + home = '/path/to/directory', -- path to main markdown folder daily = '/path/to/directory', -- path to daily notes weekly = '/path/to/directory', -- path to weekly notes -- image subdir for pasting - -- subdir name + -- subdir name -- or nil if pasted images shouldn't go into a special subdir - image_subdir = "img", + image_subdir = "img", -- markdown file extension extension = ".md", @@ -91,7 +91,7 @@ telekasten.setup({opts}) plug_into_calendar = true, -- use calendar integration calendar_opts = { - weeknm = 4, -- calendar week display mode: + weeknm = 4, -- calendar week display mode: -- 1 .. 'WK01' -- 2 .. 'WK 1' -- 3 .. 'KW01' @@ -116,8 +116,8 @@ telekasten.setup({opts}) -- command palette theme: dropdown (window) or ivy (bottom panel) command_palette_theme = "ivy", - - -- tag list theme: + + -- tag list theme: -- get_cursor: small tag list at cursor; ivy and dropdown like above show_tags_theme = "ivy", @@ -143,7 +143,15 @@ telekasten.setup({opts}) If set to `true`, telekasten.nvim will take over your home. Any notes from the configured `home` directory will receive a `set` `filetype=telekasten`, no matter if opened by telekasten or another - way. + way. + + Default: `true` + + *telekasten.settings.auto_set_filetype* + auto_set_filetype: ~ + If `false` (not recommended), the telekasten filetype will not be used + and the telekasten syntax not be loaded; markdown files will get the + markdown filetype. Default: `true` @@ -229,7 +237,7 @@ telekasten.setup({opts}) *telekasten.settings.template_new_weekly* template_new_weekly: ~ - Markdown template for new weekly notes. Set to `nil` if you don't want + Markdown template for new weekly notes. Set to `nil` if you don't want a template. Default: `nil` @@ -260,8 +268,50 @@ telekasten.setup({opts}) subdirs_in_links:~ Include subdirs (if applicable) in generated (yanked, inserted) links. + Valid options are: + - `'tag'` + - `':tag:'` + - `'yaml-bare'` + Default: `true` + *telekasten.settings.template_handling* + template_handling:~ + Strategy for telekasten to pick a template when a new note is created + via `new_note()`, or by `follow_link()` to a non-existing note. + + Valid options are: + - `'smart'`: if day or week is detected in title, use daily / weekly + templates, else the new note template. + + - `'prefer_new_note'`: use the new note template. + + - `'always_ask'`: always ask for a template via template picker. + + Default: `smart` + + *telekasten.settings.new_note_location* + new_note_location:~ + Path handling for `new_note()`, `new_templated_note()`, `follow_link()` + to non-existing note. + + Valid options are: + - `'smart'`: put daily-looking (date as title) into the daily folder, + weekly-looking notes into the weekly folder, all other notes + into the home folder, except for notes with `sub/folders` in + the title. + + - `'prefer_home'`: put all notes in home folder except for + `goto_today()` and `goto_thisweek()`, and notes with + `sub/folders` in the title. + + - `'same_as_current'`: put all new notes in the directory of the + currently open note (where the cursor is) if + present or else into the home folder, except for + notes with `sub/folders` in the title. + + Default: `smart` + *telekasten.calendar_opts* ----------------------------------- Valid keys for {opts.calendar_opts} @@ -279,7 +329,7 @@ telekasten.setup({opts}) - 4 -> `KW 1` - 5 -> `1` - Default: 4 + Default: 4 *telekasten.calendar_opts.calendar_monday* calendar_monday: ~ @@ -289,18 +339,18 @@ telekasten.setup({opts}) - 0 -> weeks start on Sundays - 1 -> weeks start on Mondays - Default: 1 + Default: 1 *telekasten.calendar_opts.calendar_mark* calendar_mark: ~ - Where to place marks such as `+` and `*`, relative to the day. + Where to place marks such as `+` and `*`, relative to the day. Valid values are: - 'left' -> ugly - 'right' -> right to the day - 'left-fit' -> left of the day - - Default: 'left-fit' + + Default: 'left-fit' -------------------------------------------------------------------------------- Section 2: Colors *telekasten.colors* @@ -324,16 +374,16 @@ You can assign colors to the new syntax groups in your `init.vim`: " just blue and gray links hi tkLink ctermfg=Blue cterm=bold,underline guifg=blue gui=bold,underline hi tkBrackets ctermfg=gray guifg=gray - + " for gruvbox hi tklink ctermfg=72 guifg=#689d6a cterm=bold,underline gui=bold,underline hi tkBrackets ctermfg=gray guifg=gray - + " real yellow hi tkHighlight ctermbg=yellow ctermfg=darkred cterm=bold guibg=yellow guifg=darkred gui=bold " gruvbox "hi tkHighlight ctermbg=214 ctermfg=124 cterm=bold guibg=#fabd2f guifg=#9d0006 gui=bold - + hi link CalNavi CalRuler hi tkTagSep ctermfg=gray guifg=gray hi tkTag ctermfg=175 guifg=#d3869B @@ -358,11 +408,11 @@ telekasten.new_note()~ *telekasten.new_templated_note()* telekasten.new_templated_note()~ Promts for a title and then uses Telescope for choosing a template. When a - template is selected, a new note is created with it and opened. + template is selected, a new note is created with it and opened. Should the note already exist before running `new_templated_note()`, it is opened immediately. - + See also:~ - |telekasten.template_files| *telekasten.find_notes()* @@ -372,16 +422,16 @@ telekasten.find_notes()~ *telekasten.find_daily_notes()* telekasten.find_daily_notes()~ Find daily notes by date, via Telescope. File names are sorted by file name, - most recent file first. + most recent file first. If today's daily note is not present, will be created if - `dailies_create_nonexisting` is set to `true`. + `dailies_create_nonexisting` is set to `true`. See also:~ - |telekasten.settings.dailies_create_nonexisting| New daily notes are created with the template specified in the - `template_new_daily` setting. + `template_new_daily` setting. See also:~ - |telekasten.settings.template_new_daily| @@ -393,13 +443,13 @@ telekasten.goto_today()~ Pops up a Telescope finder with today's daily note pre-selected. If today's daily note is not present, will be created if - `dailies_create_nonexisting` is set to `true`. + `dailies_create_nonexisting` is set to `true`. See also:~ - |telekasten.settings.dailies_create_nonexisting| New daily notes are created with the template specified in the - `template_new_daily` setting. + `template_new_daily` setting. See also:~ - |telekasten.settings.template_new_daily| @@ -409,16 +459,16 @@ telekasten.goto_today()~ *telekasten.find_weekly_notes()* telekasten.find_weekly_notes()~ Find weekly notes by week, via Telescope. File names are sorted by file - name, most recent file first. + name, most recent file first. If this week's daily note is not present, will be created if - `weeklies_create_nonexisting` is set to `true`. + `weeklies_create_nonexisting` is set to `true`. See also:~ - |telekasten.settings.weeklies_create_nonexisting| New weekly notes are created with the template specified in the - `template_new_weekly` setting. + `template_new_weekly` setting. See also:~ - |telekasten.settings.template_new_weekly| @@ -430,16 +480,16 @@ telekasten.goto_thisweek()~ Pops up a Telescope finder with this week's daily note pre-selected. If this week's daily note is not present, will be created if - `weeklies_create_nonexisting` is set to `true`. + `weeklies_create_nonexisting` is set to `true`. See also:~ - |telekasten.settings.weeklies_create_nonexisting| New weekly notes are created with the template specified in the - `template_new_weekly` setting. + `template_new_weekly` setting. See also:~ - - |telekasten.settings.template_new_weekly| + - |telekasten.settings.template_new_weekly| - |telekasten.templates| - |telekasten.template_files| @@ -451,10 +501,10 @@ telekasten.search_notes()~ *telekasten.insert_link()* telekasten.insert_link({opts})~ Select a note by title (file name), via Telescope, and place a `[[link]]` at - the current cursor position. + the current cursor position. Valid keys for {opts} - + i:~ If `true`, it will enter input mode by pressing the key. This is useful when being used in a simple `inoremap` key mapping like shown in @@ -490,11 +540,11 @@ telekasten.show_calendar()~ *telekasten.toggle_todo()* telekasten.toggle_todo({opts})~ - Turns a line into a `- [ ] ` todo line, or toggle between `- [ ]`, `- [x]`, + Turns a line into a `- [ ] ` todo line, or toggle between `- [ ]`, `- [x]`, and `-` . Valid keys for {opts} - + i:~ If `true`, it will enter input mode by pressing the key. This is useful when being used in a simple `inoremap` key mapping like shown in @@ -521,7 +571,7 @@ telekasten.insert_img_link({opts})~ images / media files will be given during the search. Valid keys for {opts} - + i:~ If `true`, it will enter input mode by pressing the key. This is useful for being able to continue typing after the link has been inserted. @@ -563,26 +613,26 @@ Note links~ `[[#Heading 27]]` .................. links to the heading 'Heading 27' within all notes - + `[[#^xxxxxxxx]]` ................... links to the paragraph with id ^xxxxxxxx within all notes Optionally, notes can live in specific sub-directories: -`[[some/subdirectory/A cool title]]`: links to note named 'A cool title' +`[[some/subdirectory/A cool title]]`: links to note named 'A cool title' in some/subdirectory `[[some/subdirectory/A cool title#Heading 27]]`: links to the heading - 'Heading 27' within the note named + 'Heading 27' within the note named 'A cool title' in some/subdirectory `[[some/subdirectory/A cool title#^xxxxxxxx]]` : links to the paragraph - with id ^xxxxxxxx within the note named + with id ^xxxxxxxx within the note named 'A cool title' in some/subdirectory Note that notes linked to with headings or paragraph IDs **will not be created automatically**. Non-existing notes will be ignored in this case, a global -telescope search wil be performed instead. +telescope search wil be performed instead. Media links~ Use these for images, PDF files, videos. If telescope-media-files is installed, @@ -595,14 +645,14 @@ Section 3.2: Tag Notation *telekasten.tag_notation* Telekasten supports the following tag notations: -1. `#tag` -2. `:tag:` +1. `#tag` +2. `:tag:` 3. bare tags in a tag collection in the yaml metadata: > - --- title: My awesome note - date: 2021-12-06 - tags: [ example, note-taking, foo, bar ] - --- + --- title: My awesome note + date: 2021-12-06 + tags: [ example, note-taking, foo, bar ] + --- < Tag syntax:~ @@ -614,15 +664,15 @@ Tag syntax:~ - snake_case: `#note_taking` - kebab-case: `#note-taking` - The only symbols allowed are: + The only symbols allowed are: - underscore : `_` - dash : `-` - forward slash : `/` - + Numbers are allowed in tags, as long as a tag is not purely numeric. For example, #1984 is not a valid tag, but `#y1984` is. -Note:~ +Note:~ For proper highlighting, the `install_syntax` option is set to `true` by default. This automatically sets the syntax of filetype `markdown` to `telekasten`, and also registers this syntax with telescope previewers for @@ -633,7 +683,7 @@ Section 3.3: Templates *telekasten.templates* Telekasten.nvim can create non-existing notes, providing this is enabled in the settings - which it is by default. Auto-creation of notes is useful when -you jump to today's or this week's note, or when you typed a +you jump to today's or this week's note, or when you typed a `[[link to a new note]]` and jump to it. The specific templates and settings used are: @@ -748,7 +798,7 @@ entire window, you can issue the following command in vim: < Note:~ Calendar functions are only available if you have the plugin `calendar-vim` - installed, which you can find at https://github.com/renerocksai/calendar-vim + installed, which you can find at https://github.com/renerocksai/calendar-vim -------------------------------------------------------------------------------- Section 3.5: Picker mappings *telekasten.picker_mappings* @@ -774,7 +824,7 @@ the following mappings apply: ================================================================================ Section 4: Suggested Mappings *telekasten.mappings* -Telekasten.nvim does not come with pre-defined mappings. +Telekasten.nvim does not come with pre-defined mappings. However, here are some suggestions: > @@ -812,12 +862,12 @@ However, here are some suggestions: " colors suitable for gruvbox color scheme hi tklink ctermfg=72 guifg=#689d6a cterm=bold,underline gui=bold,underline hi tkBrackets ctermfg=gray guifg=gray - + " real yellow hi tkHighlight ctermbg=yellow ctermfg=darkred cterm=bold guibg=yellow guifg=darkred gui=bold " gruvbox "hi tkHighlight ctermbg=214 ctermfg=124 cterm=bold guibg=#fabd2f guifg=#9d0006 gui=bold - + hi link CalNavi CalRuler hi tkTagSep ctermfg=gray guifg=gray hi tkTag ctermfg=175 guifg=#d3869B @@ -830,7 +880,7 @@ Credits go to: * {Conni2461} on GitHub for the awesome pull request and support! * {NeoVim} and its awesome community * {Telescope.nvim} and its awesome community -* {ThePrimeagen} and {TJ} aka {teej_dv} aka {TJDeVries} of twitch +* {ThePrimeagen} and {TJ} aka {teej_dv} aka {TJDeVries} of twitch (and vimconf and ...) fame for being awesome and inspiring!