Convert wiki-links to title-based format (#89)

## Summary
- Add `doc-card-titles` mise task to enumerate all doc cards by title/id and detect duplicates
- Remove redundant aliases from zk cards where alias matched the id
- Rename `reference/storage/postgresql.md` title to "PostgreSQL Storage" to avoid duplicate with `reference/services/postgresql.md`
- Convert all 175 path-based wiki-links `[[reference/path|Title]]` to title-based `[[Title]]` format
- Add pre-commit hook to check for duplicate card titles on doc changes

## Deployment and Testing
- [x] Pre-commit hooks pass
- [x] `mise run doc-card-titles` shows no duplicates
- [ ] Verify wiki-links work correctly in Quartz build

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/89
This commit is contained in:
Erich Blume 2026-02-03 15:04:38 -08:00
commit a45a78b478
46 changed files with 336 additions and 189 deletions

View file

@ -22,17 +22,17 @@ Primary BlumeOps server. Mac Mini M1 (2020).
## Services Hosted
**Native (via Ansible):**
- [[reference/services/forgejo|Forgejo]] - Git forge
- [[reference/services/zot|Zot]] - Container registry
- [[reference/services/jellyfin|Jellyfin]] - Media server
- [[reference/services/borgmatic|Borgmatic]] - Backup system
- [[reference/services/alloy|Alloy]] - Metrics/logs collector
- [[Forgejo]] - Git forge
- [[Zot]] - Container registry
- [[Jellyfin]] - Media server
- [[Borgmatic]] - Backup system
- [[Grafana Alloy|Alloy]] - Metrics/logs collector
- Caddy - Reverse proxy for `*.ops.eblu.me`
**Kubernetes (via minikube):**
- [[reference/kubernetes/apps|All k8s applications]]
- [[ArgoCD Applications|All k8s applications]]
## Related
- [[reference/infrastructure/routing|Routing]] - Port mappings
- [[reference/kubernetes/cluster|Cluster]] - Minikube details
- [[Service Routing|Routing]] - Port mappings
- [[Kubernetes Cluster|Cluster]] - Minikube details