#+TITLE: Cadmus ToDo List * Main Executable ** TODO [#B] Add support for different configs Basically I would like to be able to change the note directory to manage seperate knowledge bases, for example: + Personal Wiki + Static Site + Wiki for Project + School Project public knowledge base etc. This should be fed in as a ~-c~ option. [[file:bin/cadmus::NOTES_DIR="~/Notes/MD" ## TODO Global Variables are bad][Refer to this line here]] ** Main Help *** TODO [#C] Move Emojis I should move the emojis to the end so that they don't interfere when using tty *** TODO [#B] Should interactive elements of scripts be preserved and use the clipboard As opposed to having no feedback and just operating on STDIN and STDOUT. Could a similar effect be acheived using /tmp or /dev/shm? *** TODO [#A] Should subscripts be exptected to be relative or absolute? *** TODO [#A] Should the Notes directory be a global variable or an argument **** TODO Should we set the Notes directory in a TOML? see [[https://github.com/freshautomations/stoml][the stoml package]]. *** TODO Why do I keep getting Argument has no definition? ** Aliases *** [#B] Readme Add Recommended Aliases to the [[file:README.md::Recommended Aliases][readme]] as well as fish functions. * SubFunctions ** TODO Restructure should I restructure the subfunctions to accept only 1 argument either help or directory and fail in the absence of any given argument? *** Pros + Much Simpler to implement and maintain *** Cons + Less clean to pass in functions + Less Extensible * WAIT Switch back to MDCat When [[https://github.com/lunaryorn/mdcat/issues/155][this issue]] is resolved switch back to MDCat * TODO Fix Export The export is such that the links are absolute, this is going to require some forethought but it seems like I'm going to need seperate functions for self-contained PDF/HTML and a folder of extracted media. * HOLD [#A] NoteFind.sh ** KeyBindings *** TODO [#B] Should Implement keybindings for Exports [[file:NoteFind.sh::ramtmp="$(mktemp -p /dev/shm/)"][In the SkimAndGrep]] function there should be export options for HTML mathml [fn:1] as well as odt[fn:2] *** TODO [#C] Should call emacsclient not emacs I should change the [[file:NoteFind.sh::--bind 'alt-v:execute-silent(code {}),alt-e:execute-silent(emacs {}),ctrl-o:execute-silent(xdg-open {})' \\][emacs call]] to open ~emacsclient~ instead of ~emacs~ ** DONE ~cadmus find~ Should print help when no arguments Completed this by calling help and exiting if the arguments are empty in cadmus. [[file:bin/cadmus::function NoteFind() {][See here]] * TODO [#A] Search ** recoll should use seperate config Recoll should be called with regard to a config, the idea being i could run: + =cadmus -c personal= + =cadmus -c uni= + =cadmus -c work= and have different note bases ** TODO Pipe preview through ripgrep to highlight any occuring words. Take the command query and change white spaces into =|= characters, this way search terms will be highlighted in matches. * TODO [#A] tags ** TODO Standardise These desperately need to be standardised like search and NoteFind have been ** TODO Move the scripts into PATH Currently all the tag scripts call a relative script, not in the PATH, maybe this is actually OK? it means 0 install... ** TODO [#A] Add support for WikiJS Tags WikiJS uses a broken yaml implementation but they can be extracted with some ripgrep, this should represent a further option in FilterNotesByTMSUTag.sh. #+begin_src bash rg --pcre2 '(?<=[---\n[\s\S]ags:).*[,\s|:\s][a-z]+' -t markdown -o | sd -s ':' ' ' | sd -s ',' ' ' | sed s/^/tmsu\ tag\ / #+end_src * TODO [#A] tools ** Link Markdown Notes Should this do grep or recoll? Probably grep just in case recoll ever brakes. ** TODO [#B] Link should really use NoteFind or NoteSearch As opposed to using its own implementation. ** TODO [#C] All the tools should print to STDOUT Cadmus should deal with the clipboard as a frontend, relying on scripts that print to STDOUT, this will promote modularity. ** TODO [#C] If fixLink used skim not fzf I could remove a dependency ** TODO [#B] LinkMarkdown If a notename that you point to (like choose from fzf) has the same name as a folder (think julia.md) then the link you get back is a fucking mess. ** TODO page-import This doesn't work for $$, fix that. ** TODO Have tool to open random note * TODO [#A] export ** TODO Should Be able to handle multiple markded selection ** DONE Should Exit on empty selection Fixed this by changing this #+begin_src bash FILE="$(basename ${FILEPATH})" #+end_src to this #+begin_src bash [[ -f "${FILEPATH}" ]] && FILE="$(basename ${FILEPATH})" || exit 0 #+end_src ** TODO Exported Paths should be relative not absolute I had some notes on my mediawiki that might help me figure this out. ** TODO Help Needs to reflect how it works * TODO [#A] convert * TODO [#A] misc * TODO [#A] publish * TODO [#A] preview * TODO [#A] AutoComplete in Fish [[https://stackoverflow.com/questions/20838284/how-can-i-provide-tab-completions-to-fish-shell-from-my-own-script][See this Stack Answer]] * TODO [#A] Write a set of Fish Functions for Aliases * Packaging ** TODO Make a Package Use [[https://fpm.readthedocs.io/en/latest/source/dir.html][FPM]] to make multiple packages bundling everything together. Consider also just using ~install --help~ and doing something [[https://www.reddit.com/r/archlinux/comments/4gsg9i/how_would_i_package_a_simple_bash_script/][like this]] or [[https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=split2flac-git][like this]]. * Exit Codes | Number | Description | | 3 | File not found | | 4 | directory not found | | 5 | unrecognized option | | 6 | Missing Dependency | #+begin_quote Exit Code Number ∉ {1, 2, 126, 127, 128, 130, 255} #+end_quote * Footnotes [fn:2] This could so something like ~pandoc -o /tmp/myfile.odt; xdg-open /tmp/myfile.odt~ [fn:1] Think for using *Thunderbird*