From f615dd0fbd858ce5ac51dcb5a96c32db77f33c47 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Fri, 30 Apr 2021 16:46:03 +0200 Subject: [PATCH] Update readme --- README.md | 88 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 47 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index 3f8aa94..7f18b41 100644 --- a/README.md +++ b/README.md @@ -4,39 +4,27 @@ To develop / debug: start neovim with `nvim --cmd "set rtp+=$(pwd)" .` to automatically load the files in project dir as if they were on path -next up: -[ ] fix link following: - * [x] empty space (e.g. in link text, or link itself) disrupts link regex search - * [x] line-end following breaks if cursor is in the MIDDLE of the link - * [x] extract anchor from link/string (anchor.lua) - * [x] probably stop hardcoding anchor regex, make an option - * [ ] implement custom anchor creation function to go with custom regex - * [ ] opening zettel should use generated link table for full filename anchor search - * [x] need a default zettel directory to look in - * [ ] link following order should be: - * [x] look up & follow anchor - * [ ] look for filename in current dir (or relative/absolute link loc) - * [ ] implement fallback to filename in any of zettel subdirs - ## TODO: needed functionality * [ ] note creation (new anchor) * [x] create anchor * [ ] *unique* anchor creation + * [ ] implement custom anchor creation function to go with custom anchor regex * [x] create link (md / wiki) * [ ] note listing (anchors / titles, no anchor) * [ ] list anchors * [ ] list filenames -* [ ] link following (to existing anchor) - * [ ] fallback to filename if anchor invalid / not found +* [x] link following (to existing anchor) + * [x] fallback to filename if anchor invalid / not found * [ ] link creation (to existing note) * [ ] list existing * [ ] create link (md / wiki) * [ ] link switching (point to another existing note) * [ ] note search (title / full-text) -* [ ] jump to zettel (open existing anchor) - * [ ] select by anchor - * [ ] select by (fuzzy) title match +* [x] jump to zettel (open existing anchor) + * [x] select by anchor + * [x] select by link/title match + * [ ] Opt: select by fuzzy title match * [ ] options * [x] zettel anchor separator * [x] zettel extension @@ -46,6 +34,24 @@ next up: * [ ] recursive dir lookup for zettel * [ ] zettel anchor regex +## TODO: maintenance + +* [ ] remove hard-coding of option vimnames in tests, now that we can dynamically change this through a single table + +* anchor creation + * *must* be unique + * default: 10 digits, usually current date+time (YYMMDDHHmm) + * but, if multiple links created within one minute (or other circumstances), this would duplicate + * thus, duplicate-check before creating a new anchor + * if duplicated, generate first *non*-duplicated link (recursive?) + * try to move *backwards* through minutes not forward + * i.e. if 2030101200 exists move to 2030101159, 2030101158, ... + * if moving backwards, we do not take away id space from *future* note creation + * if moving forwards, every zettel created within a minute would delay next zettel creation *another* minute +* to decide: should zettel creation create a zettel in current working dir or at zettel root dir? or set by option? + +* [ ] (CODE) switch -- comments to --- doc comments for function descriptions etc + ## TODO: nice-to-haves * [ ] refactor parsers (md/wiki) to be tables of functions/regex in options, so e.g. valid link detection can call `options.parser.isValidLink(link)` or transformation `options.parser.styleLink(anchor, text)` @@ -67,29 +73,29 @@ next up: * [ ] file/directory exception list for gathering files, which will be ignored * [ ] 'strict' mode *only* matching and following valid anchor links -## TODO: maintenance - -* [ ] remove hard-coding of option vimnames in tests, now that we can dynamically change this through a single table - -* anchor creation - * *must* be unique - * default: 10 digits, usually current date+time (YYMMDDHHmm) - * but, if multiple links created within one minute (or other circumstances), this would duplicate - * thus, duplicate-check before creating a new anchor - * if duplicated, generate first *non*-duplicated link (recursive?) - * try to move *backwards* through minutes not forward - * i.e. if 2030101200 exists move to 2030101159, 2030101158, ... - * if moving backwards, we do not take away id space from *future* note creation - * if moving forwards, every zettel created within a minute would delay next zettel creation *another* minute -* to decide: should zettel creation create a zettel in current working dir or at zettel root dir? or set by option? - -* [ ] (CODE) switch -- comments to --- doc comments for function descriptions etc - ## Options -atm: +Options can currently be set via lua: + +```lua +vim.g["zettel_extension"] = ".wiki" ``` -anchor_separator = vim.g["zettel_anchor_separator"] or vim.b["zettel_anchor_separator"] or "_", -zettel_extension = vim.g["zettel_extension"] or vim.b["zettel_extension"] or ".md", -zettel_root = vim.g["zettel_root"] or vim.b["zettel_root"] or "~/documents/notes", + +or via vimscript: + +```vim +let g:zettel_extension = ".wiki" ``` + +The functionality is the same. The plugin will look up options by precedence buffer > global > default. + +```lua +anchor_separator = vim.b["zettel_anchor_separator"] or vim.g["zettel_anchor_separator"] or "_", +zettel_extension = vim.b["zettel_extension"] or vim.g["zettel_extension"] or ".md", +zettel_root = vim.b["zettel_root"] or vim.g["zettel_root"] or "~/documents/notes", +``` + +Since, as long as the api still changes rapidly, +a list of options would quickly be outdated, +what you can instead is to look into `options.lua`, +where at the top the currently effective options with their defaults and available values are defined.