#!/usr/bin/env bash
# bin/nb — open or create today's note, optionally scoped to a topic.
# Notes live under $NOTES_ROOT (default: ~/notes) in YYYY/MM/YYYY-MM-DD.md.
set -euo pipefail
NOTES_ROOT="${NOTES_ROOT:-$HOME/notes}"
today=$(date +%Y-%m-%d)
yr=${today%%-*}
mo=${today:5:2}
if [[ $# -gt 0 ]]; then
slug="${*// /-}"
slug="${slug//[^A-Za-z0-9_-]/}"
file="$NOTES_ROOT/topics/${slug}.md"
mkdir -p "$(dirname "$file")"
if [[ ! -f "$file" ]]; then
printf '# %s\n\n' "$slug" > "$file"
fi
else
dir="$NOTES_ROOT/$yr/$mo"
file="$dir/$today.md"
mkdir -p "$dir"
if [[ ! -f "$file" ]]; then
{
printf '# %s\n\n' "$today"
printf '## today\n\n'
printf '## notes\n'
} > "$file"
fi
fi
exec "${EDITOR:-nvim}" "$file"