bidet / internal / handlers / formatting.go

@ c362fc5ff73740244ceaacba31cdae3e6098ac04 | 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(urlType string, 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, urlType, refLabel, cur),
			IsLast: last,
		})
		last = false
		next := path.Dir(cur)
		if next == cur {
			break
		}
		cur = next
	}
	slices.Reverse(crumbs)
	return crumbs
}