Implements custom slug handling for Micropub as specified in ADR-035. Changes: - Created starpunk/slug_utils.py with validation/sanitization functions - Added RESERVED_SLUGS constant (api, admin, auth, feed, etc.) - Modified create_note() to accept optional custom_slug parameter - Integrated mp-slug extraction in Micropub handle_create() - Slug sanitization: lowercase, hyphens, no special chars - Conflict resolution: sequential numbering (-2, -3, etc.) - Hierarchical slugs (/) rejected (deferred to v1.2.0) Features: - Custom slugs via Micropub's mp-slug property - Automatic sanitization of invalid characters - Reserved slug protection - Sequential conflict resolution (not random) - Clear error messages for validation failures Part of v1.1.0 (Phase 4). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
6.4 KiB
6.4 KiB