diff --git a/README.md b/README.md index 9501c210..4c31cc83 100644 --- a/README.md +++ b/README.md @@ -400,6 +400,7 @@ The basic templates are as follows. ```markdown {{ if .Versions -}} + ## [Unreleased] {{ if .Unreleased.CommitGroups -}} @@ -413,6 +414,7 @@ The basic templates are as follows. {{ end -}} {{ range .Versions }} + ## {{ if .Tag.Previous }}[{{ .Tag.Name }}]{{ else }}{{ .Tag.Name }}{{ end }} - {{ datetime "2006-01-02" .Tag.Date }} {{ range .CommitGroups -}} ### {{ .Title }} diff --git a/cmd/git-chglog/custom_template_builder.go b/cmd/git-chglog/custom_template_builder.go index 04de5f97..d499745f 100644 --- a/cmd/git-chglog/custom_template_builder.go +++ b/cmd/git-chglog/custom_template_builder.go @@ -49,10 +49,10 @@ func (*customTemplateBuilderImpl) versionHeader(style, template string) string { // parts switch style { case styleGitHub, styleGitLab: - tpl = "\n" + tpl = templateTagNameAnchor tagName = "{{ if .Tag.Previous }}[{{ .Tag.Name }}]({{ $.Info.RepositoryURL }}/compare/{{ .Tag.Previous.Name }}...{{ .Tag.Name }}){{ else }}{{ .Tag.Name }}{{ end }}" case styleBitbucket: - tpl = "\n" + tpl = templateTagNameAnchor tagName = "{{ if .Tag.Previous }}[{{ .Tag.Name }}]({{ $.Info.RepositoryURL }}/compare/{{ .Tag.Name }}..{{ .Tag.Previous.Name }}){{ else }}{{ .Tag.Name }}{{ end }}" } diff --git a/cmd/git-chglog/kac_template_builder.go b/cmd/git-chglog/kac_template_builder.go index e47d6b03..23b44fce 100644 --- a/cmd/git-chglog/kac_template_builder.go +++ b/cmd/git-chglog/kac_template_builder.go @@ -46,36 +46,40 @@ func (t *kacTemplateBuilderImpl) Build(ans *Answer) (string, error) { func (t *kacTemplateBuilderImpl) unreleased(style, format string) string { var ( + id = "" title = "Unreleased" commits = t.commits(".Unreleased.CommitGroups", format) ) switch style { case styleGitHub, styleGitLab, styleBitbucket: + id = "\n" title = fmt.Sprintf("[%s]", title) } return fmt.Sprintf(`{{ if .Versions -}} -## %s +%s## %s {{ if .Unreleased.CommitGroups -}} %s{{ end -}} {{ end -}} -`, title, commits) +`, id, title, commits) } func (t *kacTemplateBuilderImpl) versionHeader(style string) string { var ( + id = "" tagName = "{{ .Tag.Name }}" date = "{{ datetime \"2006-01-02\" .Tag.Date }}" ) switch style { case styleGitHub, styleGitLab, styleBitbucket: + id = templateTagNameAnchor tagName = "{{ if .Tag.Previous }}[{{ .Tag.Name }}]{{ else }}{{ .Tag.Name }}{{ end }}" } - return fmt.Sprintf("## %s - %s\n", tagName, date) + return fmt.Sprintf("%s## %s - %s\n", id, tagName, date) } func (t *kacTemplateBuilderImpl) commits(commitGroups, format string) string { diff --git a/cmd/git-chglog/kac_template_builder_test.go b/cmd/git-chglog/kac_template_builder_test.go index 7e5ce980..09753909 100644 --- a/cmd/git-chglog/kac_template_builder_test.go +++ b/cmd/git-chglog/kac_template_builder_test.go @@ -20,6 +20,7 @@ func TestKACTemplateBuilderDefault(t *testing.T) { assert.Nil(err) assert.Equal(`{{ if .Versions -}} + ## [Unreleased] {{ if .Unreleased.CommitGroups -}} @@ -33,6 +34,7 @@ func TestKACTemplateBuilderDefault(t *testing.T) { {{ end -}} {{ range .Versions }} + ## {{ if .Tag.Previous }}[{{ .Tag.Name }}]{{ else }}{{ .Tag.Name }}{{ end }} - {{ datetime "2006-01-02" .Tag.Date }} {{ range .CommitGroups -}} ### {{ .Title }} diff --git a/cmd/git-chglog/template_builder.go b/cmd/git-chglog/template_builder.go index 963aab7c..962fc563 100644 --- a/cmd/git-chglog/template_builder.go +++ b/cmd/git-chglog/template_builder.go @@ -1,5 +1,7 @@ package main +const templateTagNameAnchor = "\n" + // TemplateBuilder ... type TemplateBuilder interface { Builder