bidet / internal / handlers / formatting.go

@ 3c7e3b51cbf2d4b722b39be9a3357e0138dc12b2 | history


package handlers

import (
	"path"
	"slices"
)

func fmtAuthor(name string, email string) string {
	return name + " <" + email + ">"
}

type Crumb struct {
	Name   string
	URL    string
	IsLast bool
}

func breadcrumbs(repoName string, refLabel string, p string) []Crumb {
	var crumbs []Crumb
	last := true
	cur := p
	for {
		base := path.Base(cur)
		if base == "." || base == "/" {
			break
		}
		crumbs = append(crumbs, Crumb{
			Name:   base,
			URL:    path.Join(repoName, "tree", refLabel, cur),
			IsLast: last,
		})
		last = false
		next := path.Dir(cur)
		if next == cur {
			break
		}
		cur = next
	}
	slices.Reverse(crumbs)
	return crumbs
}