Rename taxonomy kinds from taxonomy to term, taxonomyTerm to taxonomy

And we have taken great measures to limit potential site breakage:

* For `disableKinds` and `outputs` we try to map from old to new values if possible, if not we print an ERROR that can be toggled off if not relevant.
* The layout lookup is mostly compatible with more options for the new `term` kind.

That leaves:

* Where queries in site.Pages using taxonomy/taxonomyTerm Kind values as filter.
* Other places where these kind value are used in the templates (classes etc.)

Fixes #6911
Fixes #7395
This commit is contained in:
Bjørn Erik Pedersen
2020-06-16 15:43:50 +02:00
parent 9679023f2b
commit fc045e12a9
44 changed files with 644 additions and 220 deletions

View File

@@ -151,7 +151,7 @@ type PageMetaProvider interface {
// Configured keywords.
Keywords() []string
// The Page Kind. One of page, home, section, taxonomy, taxonomyTerm.
// The Page Kind. One of page, home, section, taxonomy, term.
Kind() string
// The configured layout to use to render this page. Typically set in front matter.

View File

@@ -20,18 +20,25 @@ const (
// The rest are node types; home page, sections etc.
KindHome = "home"
KindSection = "section"
KindTaxonomy = "taxonomy"
KindTaxonomyTerm = "taxonomyTerm"
KindHome = "home"
KindSection = "section"
// Note tha before Hugo 0.73 these were confusingly named
// taxonomy (now: term)
// taxonomyTerm (now: taxonomy)
KindTaxonomy = "taxonomy"
KindTerm = "term"
)
var kindMap = map[string]string{
strings.ToLower(KindPage): KindPage,
strings.ToLower(KindHome): KindHome,
strings.ToLower(KindSection): KindSection,
strings.ToLower(KindTaxonomy): KindTaxonomy,
strings.ToLower(KindTaxonomyTerm): KindTaxonomyTerm,
strings.ToLower(KindPage): KindPage,
strings.ToLower(KindHome): KindHome,
strings.ToLower(KindSection): KindSection,
strings.ToLower(KindTaxonomy): KindTaxonomy,
strings.ToLower(KindTerm): KindTerm,
// Legacy, pre v0.53.0.
"taxonomyterm": KindTaxonomy,
}
// GetKind gets the page kind given a string, empty if not found.

View File

@@ -27,9 +27,9 @@ func TestKind(t *testing.T) {
c.Assert(KindHome, qt.Equals, "home")
c.Assert(KindSection, qt.Equals, "section")
c.Assert(KindTaxonomy, qt.Equals, "taxonomy")
c.Assert(KindTaxonomyTerm, qt.Equals, "taxonomyTerm")
c.Assert(KindTerm, qt.Equals, "term")
c.Assert(GetKind("TAXONOMYTERM"), qt.Equals, KindTaxonomyTerm)
c.Assert(GetKind("TAXONOMYTERM"), qt.Equals, KindTaxonomy)
c.Assert(GetKind("Taxonomy"), qt.Equals, KindTaxonomy)
c.Assert(GetKind("Page"), qt.Equals, KindPage)
c.Assert(GetKind("Home"), qt.Equals, KindHome)

View File

@@ -58,12 +58,12 @@ func TestPageTargetPath(t *testing.T) {
Sections: []string{"sect1"},
BaseName: "_index",
Type: output.HTMLFormat}, TargetPaths{TargetFilename: "/sect1/index.html", SubResourceBaseTarget: "/sect1", Link: "/sect1/"}},
{"HTML taxonomy list", TargetPathDescriptor{
Kind: KindTaxonomy,
{"HTML taxonomy term", TargetPathDescriptor{
Kind: KindTerm,
Sections: []string{"tags", "hugo"},
BaseName: "_index",
Type: output.HTMLFormat}, TargetPaths{TargetFilename: "/tags/hugo/index.html", SubResourceBaseTarget: "/tags/hugo", Link: "/tags/hugo/"}},
{"HTML taxonomy term", TargetPathDescriptor{
{"HTML taxonomy", TargetPathDescriptor{
Kind: KindTaxonomy,
Sections: []string{"tags"},
BaseName: "_index",
@@ -143,8 +143,8 @@ func TestPageTargetPath(t *testing.T) {
Type: output.HTMLFormat,
Addends: "page/3"}, TargetPaths{TargetFilename: "/page/3/index.html", SubResourceBaseTarget: "/page/3", Link: "/page/3/"}},
{
"Paginated Taxonomy list", TargetPathDescriptor{
Kind: KindTaxonomy,
"Paginated Taxonomy terms list", TargetPathDescriptor{
Kind: KindTerm,
BaseName: "_index",
Sections: []string{"tags", "hugo"},
Type: output.HTMLFormat,