#!/usr/bin/env bash # note-graph -- generate link graph from [[wikilink]] notes # Usage: note-graph [notes_dir] [output.dot] set -euo pipefail notes_dir="${1:-$HOME/notes}" output="${2:-/dev/stdout}" echo "digraph notes {" > "$output" echo ' rankdir=LR;' >> "$output" echo ' node [shape=box, style=rounded, fontname="monospace"];' >> "$output" for f in "$notes_dir"/*.md; do [ -f "$f" ] || continue src=$(basename "$f" .md) grep -oP '\[\[([^\]|]+)' "$f" 2>/dev/null | sed 's/\[\[//' | while read -r target; do echo " \"$src\" -> \"$target\";" >> "$output" done done echo "}" >> "$output"