#!/usr/bin/env bash # ============================================================================= # skills/ingest/scripts/slug.sh # Derive a wiki slug from a path, filename, or title string. # slug.sh "raw/articles/My Source.md" -> my-source # slug.sh "Some Concept Name" -> some-concept-name # ============================================================================= set -euo pipefail input="${1:?usage: slug.sh }" # Strip directory and extension when given a path base="${input##*/}" base="${base%.*}" printf '%s\n' "$base" \ | tr '[:upper:]' '[:lower:]' \ | sed -E 's/[^a-z0-9]+/-/g; s/-{2,}/-/g; s/^-+//; s/-+$//'