dendrite.nvim/core/file_handling/slug.go
2026-05-09 14:32:29 +02:00

27 lines
553 B
Go

package filehandling
import (
"bytes"
"path/filepath"
"strings"
)
func Slugify(s string) string {
var slug bytes.Buffer
for _, r := range s {
if (r >= 'a' && r <= 'z') || (r >= '0' && r <= '9') {
slug.WriteRune(r)
} else if r >= 'A' && r <= 'Z' {
slug.WriteRune(r + 32) // Convert to lowercase
} else {
slug.WriteRune('-')
}
}
return slug.String()
}
func SlugRelative(base, path string) string {
rel := strings.TrimPrefix(path, base+string(filepath.Separator))
rel = strings.TrimSuffix(rel, filepath.Ext(rel))
return rel
}