This commit is contained in:
Jens 2025-04-24 17:58:02 +00:00 committed by GitHub
commit f259089438
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 40 additions and 6 deletions

View file

@ -117,6 +117,22 @@ hugo --enableGitInfo
{{ end }}
```
###### Ancestor
(`*source.GitInfo`) The file-filtered ancestor commit, if any.
```go-html-template
{{ partial "inline/changelog.html" .GitInfo }} → 2023-10-09: Add tutorials
2025-03-26: Edit GitInfo docs
{{ define "_partials/inline/changelog.html" }}
{{ with . }}
{{ partial "inline/changelog.html" .Ancestor }}
{{ .CommitDate.Format "2006-01-02" }}: {{ .Subject }}<br>
{{ end }}
{{ end }}
```
## Last modified date
By default, when `enableGitInfo` is `true`, the `Lastmod` method on a `Page` object returns the Git AuthorDate of the last commit that included the file.

2
go.mod
View file

@ -8,7 +8,7 @@ require (
github.com/aws/aws-sdk-go-v2/service/cloudfront v1.44.10
github.com/bep/clocks v0.5.0
github.com/bep/debounce v1.2.0
github.com/bep/gitmap v1.6.0
github.com/bep/gitmap v1.7.0
github.com/bep/goat v0.5.0
github.com/bep/godartsass/v2 v2.5.0
github.com/bep/golibsass v1.2.0

4
go.sum
View file

@ -125,8 +125,8 @@ github.com/bep/clocks v0.5.0 h1:hhvKVGLPQWRVsBP/UB7ErrHYIO42gINVbvqxvYTPVps=
github.com/bep/clocks v0.5.0/go.mod h1:SUq3q+OOq41y2lRQqH5fsOoxN8GbxSiT6jvoVVLCVhU=
github.com/bep/debounce v1.2.0 h1:wXds8Kq8qRfwAOpAxHrJDbCXgC5aHSzgQb/0gKsHQqo=
github.com/bep/debounce v1.2.0/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0=
github.com/bep/gitmap v1.6.0 h1:sDuQMm9HoTL0LtlrfxjbjgAg2wHQd4nkMup2FInYzhA=
github.com/bep/gitmap v1.6.0/go.mod h1:n+3W1f/rot2hynsqEGxGMErPRgT41n9CkGuzPvz9cIw=
github.com/bep/gitmap v1.7.0 h1:jvPnRQv5RG6IDPrwoDiwAhTE/DmdEkOW4poFeUYmjI8=
github.com/bep/gitmap v1.7.0/go.mod h1:n+3W1f/rot2hynsqEGxGMErPRgT41n9CkGuzPvz9cIw=
github.com/bep/goat v0.5.0 h1:S8jLXHCVy/EHIoCY+btKkmcxcXFd34a0Q63/0D4TKeA=
github.com/bep/goat v0.5.0/go.mod h1:Md9x7gRxiWKs85yHlVTvHQw9rg86Bm+Y4SuYE8CTH7c=
github.com/bep/godartsass/v2 v2.5.0 h1:tKRvwVdyjCIr48qgtLa4gHEdtRkPF8H1OeEhJAEv7xg=

View file

@ -155,7 +155,23 @@ func NewFileInfo(fi hugofs.FileMetaInfo) *File {
}
func NewGitInfo(info gitmap.GitInfo) GitInfo {
return GitInfo(info)
gi := GitInfo{
Hash: info.Hash,
AbbreviatedHash: info.AbbreviatedHash,
Subject: info.Subject,
AuthorName: info.AuthorName,
AuthorEmail: info.AuthorEmail,
AuthorDate: info.AuthorDate,
CommitDate: info.CommitDate,
Body: info.Body,
}
if info.Ancestor != nil {
anc := NewGitInfo(*info.Ancestor)
gi.Ancestor = &anc
}
return gi
}
// GitInfo provides information about a version controlled source file.
@ -176,10 +192,12 @@ type GitInfo struct {
CommitDate time.Time `json:"commitDate"`
// The commit message's body.
Body string `json:"body"`
// The file-filtered ancestor commit, if any.
Ancestor *GitInfo `json:"ancestor"`
}
// IsZero returns true if the GitInfo is empty,
// meaning it will also be falsy in the Go templates.
func (g GitInfo) IsZero() bool {
return g.Hash == ""
func (g *GitInfo) IsZero() bool {
return g == nil || g.Hash == ""
}