diff --git a/pkg/web/templates/base.html b/pkg/web/templates/base.html
index 51a8f9b6291c4e00b99f1d3496e98e0d00a7cb15..d5eb8cddd23e65d242ef1dd3ecaf4b70190dc648 100644
--- a/pkg/web/templates/base.html
+++ b/pkg/web/templates/base.html
@@ -5,8 +5,8 @@
-
{{if .Repo}}{{if .Repo.ProjectName}}{{.Repo.ProjectName}}{{else}}{{.Repo.Name}}{{end}}{{else}}{{.ServerName}}{{end}}
- {{if .Repo}}{{if .Repo.Description}}{{end}}{{end}}
+ {{.Title}}
+ {{if .Description}}{{end}}
diff --git a/pkg/web/webui.go b/pkg/web/webui.go
index c2e8ad45c8cf8b412a69af475f3dd3761e22e966..56c6595a12d3db9aaaa09e53ea85199348be50b2 100644
--- a/pkg/web/webui.go
+++ b/pkg/web/webui.go
@@ -39,8 +39,10 @@ const (
// BaseData contains common fields for all web UI pages.
type BaseData struct {
- ServerName string
- ActiveTab string
+ ServerName string
+ ActiveTab string
+ Title string
+ Description string
}
// RepoBaseData contains common fields for repository-specific pages.
@@ -103,8 +105,8 @@ var templateFuncs = template.FuncMap{
default:
hashStr = fmt.Sprintf("%v", hash)
}
- if len(hashStr) > 8 {
- return hashStr[:8]
+ if len(hashStr) > 7 {
+ return hashStr[:7]
}
return hashStr
},
diff --git a/pkg/web/webui_about.go b/pkg/web/webui_about.go
index cf7942df26106a21f9f591365dda3d5c992e5efe..e737627725fde85c91cc244291732ff43955fb08 100644
--- a/pkg/web/webui_about.go
+++ b/pkg/web/webui_about.go
@@ -37,6 +37,7 @@ func about(w http.ResponseWriter, r *http.Request) {
BaseData: BaseData{
ServerName: cfg.Name,
ActiveTab: "about",
+ Title: "About | " + cfg.Name,
},
ReadmeHTML: readmeHTML,
}
diff --git a/pkg/web/webui_blob.go b/pkg/web/webui_blob.go
index a3e2177fee8b8ce9d0b3e775254c98b2602fd8ac..843eff380c88c8c023d7c0a173ad0e38ad3a6317 100644
--- a/pkg/web/webui_blob.go
+++ b/pkg/web/webui_blob.go
@@ -99,11 +99,18 @@ func repoBlob(w http.ResponseWriter, r *http.Request) {
renderedHTML = highlightCode(path, content)
}
+ repoDisplayName := repo.ProjectName()
+ if repoDisplayName == "" {
+ repoDisplayName = repo.Name()
+ }
+ fileName := filepath.Base(path)
+
data := BlobData{
RepoBaseData: RepoBaseData{
BaseData: BaseData{
ServerName: cfg.Name,
ActiveTab: "tree",
+ Title: fileName + " | " + repoDisplayName,
},
Repo: repo,
DefaultBranch: defaultBranch,
diff --git a/pkg/web/webui_branches.go b/pkg/web/webui_branches.go
index 73f8f58fecaac5090c36932eb23d6d76418bd653..1d632443fbc7275395ce4708be4822990c86b247 100644
--- a/pkg/web/webui_branches.go
+++ b/pkg/web/webui_branches.go
@@ -88,11 +88,17 @@ func repoBranches(w http.ResponseWriter, r *http.Request) {
})
}
+ repoDisplayName := repo.ProjectName()
+ if repoDisplayName == "" {
+ repoDisplayName = repo.Name()
+ }
+
data := BranchesData{
RepoBaseData: RepoBaseData{
BaseData: BaseData{
ServerName: cfg.Name,
ActiveTab: "branches",
+ Title: "Branches | " + repoDisplayName,
},
Repo: repo,
DefaultBranch: defaultBranch,
diff --git a/pkg/web/webui_commit.go b/pkg/web/webui_commit.go
index 869d759de13d730ca54aebae737e463aa035de5c..4a63672a8bea57df73eb5900efbfad63ae197ad2 100644
--- a/pkg/web/webui_commit.go
+++ b/pkg/web/webui_commit.go
@@ -2,6 +2,7 @@ package web
import (
"net/http"
+ "strings"
"github.com/charmbracelet/log/v2"
"github.com/charmbracelet/soft-serve/git"
@@ -57,11 +58,35 @@ func repoCommit(w http.ResponseWriter, r *http.Request) {
}
}
+ commitSubject := commit.Message
+ commitBody := ""
+ if lines := strings.Split(commit.Message, "\n"); len(lines) > 0 {
+ commitSubject = lines[0]
+ if len(lines) > 1 {
+ commitBody = strings.TrimSpace(strings.Join(lines[1:], "\n"))
+ if len(commitBody) > 200 {
+ commitBody = commitBody[:200] + "..."
+ }
+ }
+ }
+
+ repoDisplayName := repo.ProjectName()
+ if repoDisplayName == "" {
+ repoDisplayName = repo.Name()
+ }
+
+ shortHash := hash
+ if len(hash) > 7 {
+ shortHash = hash[:7]
+ }
+
data := CommitData{
RepoBaseData: RepoBaseData{
BaseData: BaseData{
- ServerName: cfg.Name,
- ActiveTab: "commits",
+ ServerName: cfg.Name,
+ ActiveTab: "commits",
+ Title: commitSubject + " | Commit " + shortHash + " | " + repoDisplayName,
+ Description: commitBody,
},
Repo: repo,
DefaultBranch: defaultBranch,
diff --git a/pkg/web/webui_commits.go b/pkg/web/webui_commits.go
index 26f534ff6d847d2552778abb4271b9b707213a0d..46cf892fd07965a933981852e239e6f3caabffe9 100644
--- a/pkg/web/webui_commits.go
+++ b/pkg/web/webui_commits.go
@@ -82,11 +82,17 @@ func repoCommits(w http.ResponseWriter, r *http.Request) {
defaultBranch := getDefaultBranch(gr)
+ repoDisplayName := repo.ProjectName()
+ if repoDisplayName == "" {
+ repoDisplayName = repo.Name()
+ }
+
data := CommitsData{
RepoBaseData: RepoBaseData{
BaseData: BaseData{
ServerName: cfg.Name,
ActiveTab: "commits",
+ Title: "Commits in " + ref + " | " + repoDisplayName,
},
Repo: repo,
DefaultBranch: defaultBranch,
diff --git a/pkg/web/webui_home.go b/pkg/web/webui_home.go
index 956f1060efb342884bb41f6bcfcdbd6b1b765561..c8130acb0b02e5c11fdbd6be2b82b863b6b04951 100644
--- a/pkg/web/webui_home.go
+++ b/pkg/web/webui_home.go
@@ -154,6 +154,7 @@ func home(w http.ResponseWriter, r *http.Request) {
BaseData: BaseData{
ServerName: cfg.Name,
ActiveTab: "repositories",
+ Title: cfg.Name,
},
PaginationData: PaginationData{
Page: page,
diff --git a/pkg/web/webui_overview.go b/pkg/web/webui_overview.go
index 0def6bc6db7abd72c8b3b7a5b9eaefc118101e3f..7b14bc97f29038e66a916da635a4ff2029129807 100644
--- a/pkg/web/webui_overview.go
+++ b/pkg/web/webui_overview.go
@@ -50,11 +50,18 @@ func repoOverview(w http.ResponseWriter, r *http.Request) {
}
}
+ repoDisplayName := repo.ProjectName()
+ if repoDisplayName == "" {
+ repoDisplayName = repo.Name()
+ }
+
data := OverviewData{
RepoBaseData: RepoBaseData{
BaseData: BaseData{
- ServerName: cfg.Name,
- ActiveTab: "overview",
+ ServerName: cfg.Name,
+ ActiveTab: "overview",
+ Title: repoDisplayName,
+ Description: repo.Description(),
},
Repo: repo,
DefaultBranch: defaultBranch,
diff --git a/pkg/web/webui_tags.go b/pkg/web/webui_tags.go
index 4e92606369261b014f659dcce406cae92bb95361..032faa2929772517b15260762853c2c2808ea128 100644
--- a/pkg/web/webui_tags.go
+++ b/pkg/web/webui_tags.go
@@ -108,11 +108,17 @@ func repoTags(w http.ResponseWriter, r *http.Request) {
})
}
+ repoDisplayName := repo.ProjectName()
+ if repoDisplayName == "" {
+ repoDisplayName = repo.Name()
+ }
+
data := TagsData{
RepoBaseData: RepoBaseData{
BaseData: BaseData{
ServerName: cfg.Name,
ActiveTab: "tags",
+ Title: "Tags | " + repoDisplayName,
},
Repo: repo,
DefaultBranch: defaultBranch,
diff --git a/pkg/web/webui_tree.go b/pkg/web/webui_tree.go
index d9ecbe1488d5e3ffda9811b8825a8c89561db998..edccf39439c77a260492c5ccf621d9d444124df4 100644
--- a/pkg/web/webui_tree.go
+++ b/pkg/web/webui_tree.go
@@ -72,11 +72,17 @@ func repoTree(w http.ResponseWriter, r *http.Request) {
defaultBranch := getDefaultBranch(gr)
+ repoDisplayName := repo.ProjectName()
+ if repoDisplayName == "" {
+ repoDisplayName = repo.Name()
+ }
+
data := TreeData{
RepoBaseData: RepoBaseData{
BaseData: BaseData{
ServerName: cfg.Name,
ActiveTab: "tree",
+ Title: "Files | " + repoDisplayName,
},
Repo: repo,
DefaultBranch: defaultBranch,