diff --git a/cadmus b/cadmus new file mode 100755 index 0000000..c79e8ff --- /dev/null +++ b/cadmus @@ -0,0 +1,140 @@ +#! /usr/bin/env bash +# +# Author: Bert Van Vreckem +# +#{{{ Bash settings +# abort on nonzero exitstatus +set -o errexit +# abort on unbound variable +set -o nounset +# don't hide errors within pipes +set -o pipefail +#}}} +#{{{ Variables +IFS=$'\t\n' # Split on newlines and tabs (but not on spaces) + +#}}} + +main() { + + [[ -z "${1:-}" ]] && mainHelp + setvars + arguments "${@}" + +} + +function setvars() { + + readonly script_name=$(basename "${0}") + readonly script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) + readonly TERMINAL="kitty" + readonly TERMINAL_EXEC='kitty -- ' + readonly NOTES_DIR="$HOME/Notes" + +} + +function mainHelp() { + +## echo -e " \u001b[45;1m \e[1;31m -------------------------\e[0m \u001b[0m \e[1;31m find \e[0m \e[1;34m" +## + echo + echo -e " \e[3m\e[1m Cadmus\e[0m; Helpful Shell Scripts for Markdown Notes" + echo -e " \e[1;31m -------------------------\e[0m " + echo + + echo -e " \e[1;91m \e[1m Command \e[0m\e[0m \e[1;34m┊┊┊ \e[0m Description " + echo -e " ..............\e[1;34m┊┊┊\e[0m........................................... " + echo -e " 🔍 \e[1;93m find \e[0m \e[1;34m ┊┊┊ \e[0m Find Notes based on FileName" + echo -e " 🔎 \e[1;32m search \e[0m \e[1;34m ┊┊┊ \e[0m Search through Notes using Recoll" + echo -e " 🏷 \e[1;33m tags \e[0m \e[1;34m ┊┊┊ \e[0m Use TMSU to work with tags" + echo -e " 🔧 \e[1;34m tools \e[0m \e[1;34m ┊┊┊ \e[0m Tools for Editing" + echo -e " 📝 \e[1;35m export \e[0m \e[1;34m ┊┊┊ \e[0m Export Notes to Different Formats " + echo -e " ⎋ \e[1;36m convert \e[0m \e[1;34m ┊┊┊ \e[0m Convert Clipboard Contents to Different Formats " + echo -e " 🧰 \e[1;37m misc \e[0m \e[1;34m ┊┊┊ \e[0m Miscelanneous Tools nice to have on hand " + echo -e " 🌏\e[1;92m publish\e[0m \e[1;34m ┊┊┊ \e[0m Publish with \e[1;34m \e[4m\e[3mMkDocs\e[0m\e[0m🐍" + echo -e " 🕮 \e[1;92m preview \e[0m \e[1;34m ┊┊┊ \e[0m Preview with \e[1;34m \e[4m\e[3mMarkServ\e[0m\e[0m " + + echo + } + +#{{{ Helper functions + +arguments () { + + while test $# -gt 0 + do + case "$1" in + --help) Help + ;; + -h) Help + ;; + find) NoteFind ## Don't steal function name + ;; + search) echo "begin note search" + ;; + tags) echo "begin tags" + ;; + tools) echo "begin tools" + ;; + export) echo "begin export" + ;; + convert) echo "begin convert" + ;; + misc) echo "begin misc" + ;; + publish) echo "begin publish" + ;; + preview) echo "begin preview" + ;; + --*) echo "bad option $1" + ;; + *) echo -e "argument \e[1;35m${1}\e[0m has no definition." + ;; + esac + shift + done +} + +function NoteFind() { +## sk --ansi -i -c 'rg -l -t markdown "{}"' --preview "mdcat {}" \ +## --bind pgup:preview-page-up,pgdn:preview-page-down + + ramtmp="$(mktemp -p /dev/shm/)" + ## This is Slow, It should be an option, like option highlight + ## Open an issue on Github + ## Add -i to make it interactive from the start + ## C-q toggles interactive + ## C-y Copies Full path to clipboard + sk -c "echo {} > "${ramtmp}" ; rg -t markdown -l --ignore-case (cat "${ramtmp}")" \ + --preview "mdcat {} 2> /dev/null | \ + rg -t markdown --colors 'match:bg:yellow' \ + --no-line-number --ignore-case --pretty --context 20 (cat "${ramtmp}")" \ + --bind 'ctrl-f:interactive,pgup:preview-page-up,pgdn:preview-page-down,ctrl-y:execute-silent(echo {} | xargs realpath | xclip -selection clipboard)' + + bash ./NoteFind + +} + +mytest() { + echo "This is a test" + exit 0 +} + +Help () { + # Display Help + echo "Add description of the script functions here." + echo + echo "Syntax: scriptTemplate [-g|h|t|v|V]" + echo "options:" + echo "g Print the GPL license notification." + echo "h Print this Help." + echo "v Verbose mode." + echo "V Print software version and exit." + exit 0 +} + +#}}} + +main "${@}" + +# cursor: 33 del