#!/usr/bin/env sh set -eu tmp=${TMPDIR:-.}/blog-backlinks.$$ trap 'rm -f "$tmp"' EXIT HUP INT TERM find . \( -path '*/.git' -o -path '*/node_modules' -o -path '*/.next' -o -path '*/_site' \) -prune -o -type f \( -name '*.md' -o -name '*.mdx' -o -name '*.org' \) -print > "$tmp" while IFS= read -r target; do slug=$(basename "$target" | sed -e 's/\.[^.]*$//' -e 's/^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-//') [ -n "$slug" ] || continue hits=$(xargs -r rg -l --fixed-strings "$slug" < "$tmp" | grep -Fv -- "$target" || true) [ -n "$hits" ] || continue printf '## %s\n\n' "$target" printf '%s\n\n' "$hits" | sed 's/^/- /' done < "$tmp"