summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--internal/generator/compare.go13
-rw-r--r--internal/generator/tags.go9
-rw-r--r--internal/templates/tags.gohtml3
-rw-r--r--internal/templates/templates.go3
4 files changed, 25 insertions, 3 deletions
diff --git a/internal/generator/compare.go b/internal/generator/compare.go
index ec47e08..c2c3a15 100644
--- a/internal/generator/compare.go
+++ b/internal/generator/compare.go
@@ -24,6 +24,13 @@ func GenerateComparePages(tags []git.Tag, branches []git.Ref, params Params) err
return err
}
+ if len(tags) > 0 {
+ latestTag := tags[0].Name
+ if err := generateComparePage(latestTag, "HEAD", params); err != nil {
+ Echo(fmt.Sprintf(" warning: compare %s...HEAD failed: %v", latestTag, err))
+ }
+ }
+
if len(tags) > 1 {
for i := 0; i < len(tags)-1; i++ {
base := tags[i+1].Name
@@ -152,7 +159,11 @@ func generateComparePage(base, head string, params Params) error {
commits[i].Href = filepath.ToSlash(filepath.Join("../../commit", commits[i].Hash+".html"))
}
- dirName := baseRef.DirName() + "..." + headRef.DirName()
+ headDirName := headRef.DirName()
+ if head == "HEAD" {
+ headDirName = "HEAD"
+ }
+ dirName := baseRef.DirName() + "..." + headDirName
outDir := filepath.Join(params.OutputDir, "compare", dirName)
if err := os.MkdirAll(outDir, 0o755); err != nil {
return err
diff --git a/internal/generator/tags.go b/internal/generator/tags.go
index 8286df3..f91b4cb 100644
--- a/internal/generator/tags.go
+++ b/internal/generator/tags.go
@@ -33,6 +33,12 @@ func GenerateTags(entries []git.Tag, params Params) error {
}
}
+ var unreleasedHref string
+ if len(entries) > 0 {
+ latestTag := git.NewRef(entries[0].Name)
+ unreleasedHref = fmt.Sprintf("compare/%s...HEAD/", latestTag.DirName())
+ }
+
return templates.TagsTemplate.ExecuteTemplate(f, "layout.gohtml", templates.TagsParams{
LayoutParams: templates.LayoutParams{
Title: fmt.Sprintf("Tags %s %s", Dot, params.Name),
@@ -41,6 +47,7 @@ func GenerateTags(entries []git.Tag, params Params) error {
CurrentRefDir: params.DefaultRef.DirName(),
Selected: "tags",
},
- Tags: tagEntries,
+ Tags: tagEntries,
+ UnreleasedHref: unreleasedHref,
})
}
diff --git a/internal/templates/tags.gohtml b/internal/templates/tags.gohtml
index b2ee680..99794a7 100644
--- a/internal/templates/tags.gohtml
+++ b/internal/templates/tags.gohtml
@@ -54,6 +54,9 @@
{{- define "body" -}}
<h1>Tags</h1>
+{{- if .UnreleasedHref}}
+<p><a href="{{.UnreleasedHref}}">Unreleased changes</a></p>
+{{- end}}
<div class="tags">
{{- if .Tags}}
{{- range .Tags}}
diff --git a/internal/templates/templates.go b/internal/templates/templates.go
index 734a150..ae60a56 100644
--- a/internal/templates/templates.go
+++ b/internal/templates/templates.go
@@ -140,7 +140,8 @@ type BranchEntry struct {
type TagsParams struct {
LayoutParams
- Tags []TagEntry
+ Tags []TagEntry
+ UnreleasedHref string
}
type TagEntry struct {