templates/refs.go (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | package templates
import (
"fmt"
"alin.ovh/elgit/git"
g "alin.ovh/gomponents"
. "alin.ovh/gomponents/html"
"github.com/go-git/go-git/v5/plumbing"
)
// RefsPage renders the repository references page
func RefsPage(data PageData, branches []*plumbing.Reference, tags []*git.TagReference) g.Node {
return Page(data, []g.Node{
RepoHeader(data),
RenderNav(data),
Main(
H3(g.Text("branches")),
Div(Class("refs"),
g.Map(branches, func(branch *plumbing.Reference) g.Node {
return Div(
Strong(g.Text(branch.Name().Short())),
A(
Href(fmt.Sprintf("/%s/tree/%s/", data.Name, branch.Name().Short())),
g.Text("browse"),
),
g.Text(" "),
A(Href(fmt.Sprintf("/%s/log/%s", data.Name, branch.Name().Short())), g.Text("log")),
g.Text(" "),
A(
Href(fmt.Sprintf("/%s/archive/%s.tar.gz", data.Name, branch.Name().Short())),
g.Text("tar.gz"),
),
)
}),
),
g.If(len(tags) > 0,
g.Group([]g.Node{
H3(g.Text("tags")),
Div(Class("refs"),
g.Map(tags, func(tag *git.TagReference) g.Node {
return Div(
Strong(Class("tag-name"), g.Text(tag.Name())),
A(Href(fmt.Sprintf("/%s/tree/%s/", data.Name, tag.Name())), g.Text("browse")),
g.Text(" "),
A(Href(fmt.Sprintf("/%s/log/%s", data.Name, tag.Name())), g.Text("log")),
g.Text(" "),
A(
Href(fmt.Sprintf("/%s/archive/%s.tar.gz", data.Name, tag.Name())),
g.Text("tar.gz"),
),
g.Text(" "),
g.If(tag.Message() != "", Pre(g.Text(tag.Message()))),
)
}),
),
}),
),
),
})
}
|