bidet / internal / handlers / formatting.go

@ c4520ece0b4f0765894e05bd889c3a893b93a189 | 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
}