mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-11 20:03:58 +02:00
source: Expose Ancestor in GitInfo
Also updates docs and bumps bep/gitmap to v1.7.0 Closes #5693 Co-authored-by: bep <bjorn.erik.pedersen@gmail.com>
This commit is contained in:
committed by
Bjørn Erik Pedersen
parent
e4f6b9eef8
commit
61e6c730dd
@@ -117,6 +117,22 @@ hugo --enableGitInfo
|
|||||||
{{ end }}
|
{{ 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
|
## 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.
|
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
2
go.mod
@@ -8,7 +8,7 @@ require (
|
|||||||
github.com/aws/aws-sdk-go-v2/service/cloudfront v1.44.10
|
github.com/aws/aws-sdk-go-v2/service/cloudfront v1.44.10
|
||||||
github.com/bep/clocks v0.5.0
|
github.com/bep/clocks v0.5.0
|
||||||
github.com/bep/debounce v1.2.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/goat v0.5.0
|
||||||
github.com/bep/godartsass/v2 v2.5.0
|
github.com/bep/godartsass/v2 v2.5.0
|
||||||
github.com/bep/golibsass v1.2.0
|
github.com/bep/golibsass v1.2.0
|
||||||
|
4
go.sum
4
go.sum
@@ -141,8 +141,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/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 h1:wXds8Kq8qRfwAOpAxHrJDbCXgC5aHSzgQb/0gKsHQqo=
|
||||||
github.com/bep/debounce v1.2.0/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0=
|
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.7.0 h1:jvPnRQv5RG6IDPrwoDiwAhTE/DmdEkOW4poFeUYmjI8=
|
||||||
github.com/bep/gitmap v1.6.0/go.mod h1:n+3W1f/rot2hynsqEGxGMErPRgT41n9CkGuzPvz9cIw=
|
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 h1:S8jLXHCVy/EHIoCY+btKkmcxcXFd34a0Q63/0D4TKeA=
|
||||||
github.com/bep/goat v0.5.0/go.mod h1:Md9x7gRxiWKs85yHlVTvHQw9rg86Bm+Y4SuYE8CTH7c=
|
github.com/bep/goat v0.5.0/go.mod h1:Md9x7gRxiWKs85yHlVTvHQw9rg86Bm+Y4SuYE8CTH7c=
|
||||||
github.com/bep/godartsass/v2 v2.5.0 h1:tKRvwVdyjCIr48qgtLa4gHEdtRkPF8H1OeEhJAEv7xg=
|
github.com/bep/godartsass/v2 v2.5.0 h1:tKRvwVdyjCIr48qgtLa4gHEdtRkPF8H1OeEhJAEv7xg=
|
||||||
|
@@ -155,7 +155,23 @@ func NewFileInfo(fi hugofs.FileMetaInfo) *File {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewGitInfo(info gitmap.GitInfo) GitInfo {
|
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.
|
// GitInfo provides information about a version controlled source file.
|
||||||
@@ -176,10 +192,12 @@ type GitInfo struct {
|
|||||||
CommitDate time.Time `json:"commitDate"`
|
CommitDate time.Time `json:"commitDate"`
|
||||||
// The commit message's body.
|
// The commit message's body.
|
||||||
Body string `json:"body"`
|
Body string `json:"body"`
|
||||||
|
// The file-filtered ancestor commit, if any.
|
||||||
|
Ancestor *GitInfo `json:"ancestor"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsZero returns true if the GitInfo is empty,
|
// IsZero returns true if the GitInfo is empty,
|
||||||
// meaning it will also be falsy in the Go templates.
|
// meaning it will also be falsy in the Go templates.
|
||||||
func (g GitInfo) IsZero() bool {
|
func (g *GitInfo) IsZero() bool {
|
||||||
return g.Hash == ""
|
return g == nil || g.Hash == ""
|
||||||
}
|
}
|
||||||
|
@@ -220,3 +220,23 @@ disableLiveReload = true
|
|||||||
|
|
||||||
b.AssertFileContent("public/index.html", "1\n2\n3")
|
b.AssertFileContent("public/index.html", "1\n2\n3")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestThatPageGitInfoShouldBeZero(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
files := `
|
||||||
|
-- hugo.toml --
|
||||||
|
disableKinds = ["taxonomy", "term"]
|
||||||
|
-- content/p1.md --
|
||||||
|
---
|
||||||
|
title: "P1"
|
||||||
|
---
|
||||||
|
-- layouts/all.html --
|
||||||
|
GitInfo: {{ with .GitInfo }}FAIL{{ end }}
|
||||||
|
|
||||||
|
`
|
||||||
|
|
||||||
|
b := hugolib.Test(t, files)
|
||||||
|
|
||||||
|
b.AssertFileContent("public/p1/index.html", "! FAIL")
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user