# zsh/.zsh/functions/notes.zsh
# One markdown file per day under ~/notes/YYYY/MM/YYYY-MM-DD.md.
typeset -r NOTES_ROOT="${NOTES_ROOT:-$HOME/notes}"
n() {
local today=$(date +%Y-%m-%d)
local yr=${today%%-*}
local mo=${today:5:2}
local dir="$NOTES_ROOT/$yr/$mo"
local file="$dir/$today.md"
mkdir -p "$dir"
if [[ ! -f "$file" ]]; then
cat > "$file" <<EOF
# $today
## today
## notes
EOF
fi
${EDITOR:-nvim} "$file"
}
ns() {
local q="${*:?search term required}"
rg --color=always -n -i --heading "$q" "$NOTES_ROOT" \
| less -R
}
nrecent() {
local n="${1:-10}"
find "$NOTES_ROOT" -name '*.md' -type f \
| sort -r \
| head -n "$n"
}
nn() {
local slug="${*:?topic required}"
slug="${slug// /-}"
${EDITOR:-nvim} "$NOTES_ROOT/topics/${slug}.md"
}