summaryrefslogtreecommitdiffstats
path: root/hugolib
diff options
context:
space:
mode:
Diffstat (limited to 'hugolib')
-rw-r--r--hugolib/breaking_changes_test.go141
-rw-r--r--hugolib/cascade_test.go16
-rw-r--r--hugolib/content_map.go6
-rw-r--r--hugolib/content_map_page.go4
-rw-r--r--hugolib/content_map_test.go4
-rw-r--r--hugolib/disableKinds_test.go7
-rw-r--r--hugolib/hugo_sites.go7
-rw-r--r--hugolib/hugo_sites_build_test.go6
-rw-r--r--hugolib/hugo_smoke_test.go2
-rw-r--r--hugolib/page.go10
-rw-r--r--hugolib/page__data.go4
-rw-r--r--hugolib/page__meta.go6
-rw-r--r--hugolib/page__paginator.go2
-rw-r--r--hugolib/page__paths.go2
-rw-r--r--hugolib/page__tree.go2
-rw-r--r--hugolib/page_kinds.go2
-rw-r--r--hugolib/pagebundler_test.go2
-rw-r--r--hugolib/pagecollections_test.go4
-rw-r--r--hugolib/resource_chain_babel_test.go2
-rw-r--r--hugolib/resource_chain_test.go2
-rw-r--r--hugolib/shortcode_test.go2
-rw-r--r--hugolib/site.go55
-rw-r--r--hugolib/site_output.go21
-rw-r--r--hugolib/site_output_test.go22
-rw-r--r--hugolib/site_test.go2
-rw-r--r--hugolib/taxonomy_test.go32
-rw-r--r--hugolib/testhelpers_test.go15
27 files changed, 294 insertions, 86 deletions
diff --git a/hugolib/breaking_changes_test.go b/hugolib/breaking_changes_test.go
new file mode 100644
index 000000000..c935d6e93
--- /dev/null
+++ b/hugolib/breaking_changes_test.go
@@ -0,0 +1,141 @@
+// Copyright 2020 The Hugo Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package hugolib
+
+import (
+ "fmt"
+ "testing"
+
+ qt "github.com/frankban/quicktest"
+)
+
+func Test073(t *testing.T) {
+
+ asertDisabledTaxonomyAndTerm := func(b *sitesBuilder, taxonomy, term bool) {
+ b.Assert(b.CheckExists("public/tags/index.html"), qt.Equals, taxonomy)
+ b.Assert(b.CheckExists("public/tags/tag1/index.html"), qt.Equals, term)
+
+ }
+
+ assertOutputTaxonomyAndTerm := func(b *sitesBuilder, taxonomy, term bool) {
+ b.Assert(b.CheckExists("public/tags/index.json"), qt.Equals, taxonomy)
+ b.Assert(b.CheckExists("public/tags/tag1/index.json"), qt.Equals, term)
+ }
+
+ for _, this := range []struct {
+ name string
+ config string
+ assert func(err error, out string, b *sitesBuilder)
+ }{
+ {
+ "Outputs for both taxonomy and taxonomyTerm",
+ `[outputs]
+ taxonomy = ["JSON"]
+ taxonomyTerm = ["JSON"]
+
+`,
+ func(err error, out string, b *sitesBuilder) {
+ b.Assert(err, qt.IsNil)
+ assertOutputTaxonomyAndTerm(b, true, true)
+
+ },
+ },
+ {
+ "Outputs for taxonomyTerm",
+ `[outputs]
+taxonomyTerm = ["JSON"]
+
+`,
+ func(err error, out string, b *sitesBuilder) {
+ b.Assert(err, qt.IsNil)
+ assertOutputTaxonomyAndTerm(b, true, false)
+
+ },
+ },
+ {
+ "Outputs for taxonomy only",
+ `[outputs]
+taxonomy = ["JSON"]
+
+`,
+ func(err error, out string, b *sitesBuilder) {
+ b.Assert(err, qt.Not(qt.IsNil))
+ b.Assert(out, qt.Contains, `ignoreErrors = ["error-output-taxonomy"]`)
+
+ },
+ },
+ {
+ "Outputs for taxonomy only, ignore error",
+ `
+ignoreErrors = ["error-output-taxonomy"]
+[outputs]
+taxonomy = ["JSON"]
+
+`,
+ func(err error, out string, b *sitesBuilder) {
+ b.Assert(err, qt.IsNil)
+ assertOutputTaxonomyAndTerm(b, true, false)
+
+ },
+ },
+ {
+ "Disable both taxonomy and taxonomyTerm",
+ `disableKinds = ["taxonomy", "taxonomyTerm"]`,
+ func(err error, out string, b *sitesBuilder) {
+ b.Assert(err, qt.IsNil)
+ asertDisabledTaxonomyAndTerm(b, false, false)
+
+ },
+ },
+ {
+ "Disable only taxonomyTerm",
+ `disableKinds = ["taxonomyTerm"]`,
+ func(err error, out string, b *sitesBuilder) {
+ b.Assert(err, qt.IsNil)
+ asertDisabledTaxonomyAndTerm(b, false, true)
+
+ },
+ },
+ {
+ "Disable only taxonomy",
+ `disableKinds = ["taxonomy"]`,
+ func(err error, out string, b *sitesBuilder) {
+ b.Assert(err, qt.Not(qt.IsNil))
+ b.Assert(out, qt.Contains, `ignoreErrors = ["error-disable-taxonomy"]`)
+ },
+ },
+ {
+ "Disable only taxonomy, ignore error",
+ `disableKinds = ["taxonomy"]
+ ignoreErrors = ["error-disable-taxonomy"]`,
+ func(err error, out string, b *sitesBuilder) {
+ b.Assert(err, qt.IsNil)
+ asertDisabledTaxonomyAndTerm(b, false, true)
+ },
+ },
+ } {
+
+ t.Run(this.name, func(t *testing.T) {
+ b := newTestSitesBuilder(t).WithConfigFile("toml", this.config)
+ b.WithTemplatesAdded("_default/list.json", "JSON")
+ out, err := captureStdout(func() error {
+ return b.BuildE(BuildCfg{})
+ })
+ fmt.Println(out)
+ this.assert(err, out, b)
+ })
+
+ }
+
+}
diff --git a/hugolib/cascade_test.go b/hugolib/cascade_test.go
index dd3aa72a6..33fc7ceec 100644
--- a/hugolib/cascade_test.go
+++ b/hugolib/cascade_test.go
@@ -61,13 +61,13 @@ func TestCascade(t *testing.T) {
b.Build(BuildCfg{})
b.AssertFileContent("public/index.html", `
-12|taxonomy|categories/cool/_index.md|Cascade Category|cat.png|categories|HTML-|
-12|taxonomy|categories/catsect1|catsect1|cat.png|categories|HTML-|
-12|taxonomy|categories/funny|funny|cat.png|categories|HTML-|
-12|taxonomyTerm|categories/_index.md|My Categories|cat.png|categories|HTML-|
-32|taxonomy|categories/sad/_index.md|Cascade Category|sad.png|categories|HTML-|
-42|taxonomy|tags/blue|blue|home.png|tags|HTML-|
-42|taxonomyTerm|tags|Cascade Home|home.png|tags|HTML-|
+12|term|categories/cool/_index.md|Cascade Category|cat.png|categories|HTML-|
+12|term|categories/catsect1|catsect1|cat.png|categories|HTML-|
+12|term|categories/funny|funny|cat.png|categories|HTML-|
+12|taxonomy|categories/_index.md|My Categories|cat.png|categories|HTML-|
+32|term|categories/sad/_index.md|Cascade Category|sad.png|categories|HTML-|
+42|term|tags/blue|blue|home.png|tags|HTML-|
+42|taxonomy|tags|Cascade Home|home.png|tags|HTML-|
42|section|sectnocontent|Cascade Home|home.png|sectnocontent|HTML-|
42|section|sect3|Cascade Home|home.png|sect3|HTML-|
42|page|bundle1/index.md|Cascade Home|home.png|page|HTML-|
@@ -77,7 +77,7 @@ func TestCascade(t *testing.T) {
42|page|sect3/p1.md|Cascade Home|home.png|sect3|HTML-|
42|page|sectnocontent/p1.md|Cascade Home|home.png|sectnocontent|HTML-|
42|section|sectnofrontmatter/_index.md|Cascade Home|home.png|sectnofrontmatter|HTML-|
-42|taxonomy|tags/green|green|home.png|tags|HTML-|
+42|term|tags/green|green|home.png|tags|HTML-|
42|home|_index.md|Home|home.png|page|HTML-|
42|page|p1.md|p1|home.png|page|HTML-|
42|section|sect1/_index.md|Sect1|sect1.png|stype|HTML-|
diff --git a/hugolib/content_map.go b/hugolib/content_map.go
index 8af553478..43ad7745d 100644
--- a/hugolib/content_map.go
+++ b/hugolib/content_map.go
@@ -274,13 +274,13 @@ type contentBundleViewInfo struct {
func (c *contentBundleViewInfo) kind() string {
if c.termKey != "" {
- return page.KindTaxonomy
+ return page.KindTerm
}
- return page.KindTaxonomyTerm
+ return page.KindTaxonomy
}
func (c *contentBundleViewInfo) sections() []string {
- if c.kind() == page.KindTaxonomyTerm {
+ if c.kind() == page.KindTaxonomy {
return []string{c.name.plural}
}
diff --git a/hugolib/content_map_page.go b/hugolib/content_map_page.go
index b5165b2a5..b32f808c9 100644
--- a/hugolib/content_map_page.go
+++ b/hugolib/content_map_page.go
@@ -106,7 +106,7 @@ func (m *pageMap) newPageFromContentNode(n *contentNode, parentBucket *pagesMapB
sections := s.sectionsFromFile(f)
kind := s.kindFromFileInfoOrSections(f, sections)
- if kind == page.KindTaxonomy {
+ if kind == page.KindTerm {
s.PathSpec.MakePathsSanitized(sections)
}
@@ -535,7 +535,7 @@ func (m *pageMap) assembleTaxonomies() error {
}
} else {
title := ""
- if kind == page.KindTaxonomy {
+ if kind == page.KindTerm {
title = n.viewInfo.term()
}
n.p = m.s.newPage(n, parent.p.bucket, kind, title, sections...)
diff --git a/hugolib/content_map_test.go b/hugolib/content_map_test.go
index 9ec30201a..42a69c26b 100644
--- a/hugolib/content_map_test.go
+++ b/hugolib/content_map_test.go
@@ -451,8 +451,8 @@ Draft5: {{ if (.Site.GetPage "blog/draftsection/sub/page") }}FOUND{{ end }}|
Pages: /blog/page3/|/blog/subsection/|/blog/page2/|/blog/page1/|/blog/bundle/|
Sections: /blog/|/docs/|
Categories: /categories/funny/; funny; 11|
- Category Terms: taxonomyTerm: /categories/funny/; funny; 11|
- Category Funny: taxonomy; funny: /blog/subsection/page4/;|/blog/page3/;|/blog/subsection/;|/blog/page2/;|/blog/page1/;|/blog/subsection/page5/;|/docs/page6/;|/blog/bundle/;|;|
+ Category Terms: taxonomy: /categories/funny/; funny; 11|
+ Category Funny: term; funny: /blog/subsection/page4/;|/blog/page3/;|/blog/subsection/;|/blog/page2/;|/blog/page1/;|/blog/subsection/page5/;|/docs/page6/;|/blog/bundle/;|;|
Pag Num Pages: 7
Pag Blog Num Pages: 4
Blog Num RegularPages: 4
diff --git a/hugolib/disableKinds_test.go b/hugolib/disableKinds_test.go
index 87c2b5d3d..4f12ee2b5 100644
--- a/hugolib/disableKinds_test.go
+++ b/hugolib/disableKinds_test.go
@@ -28,6 +28,7 @@ func TestDisable(t *testing.T) {
config := fmt.Sprintf(`
baseURL = "http://example.com/blog"
enableRobotsTXT = true
+ignoreErrors = ["error-disable-taxonomy"]
disableKinds = [%q]
`, disableKind)
@@ -141,7 +142,7 @@ title: Headless Local Lists Sub
b.Assert(len(s.Taxonomies()["categories"]), qt.Equals, 0)
})
- disableKind = page.KindTaxonomy
+ disableKind = page.KindTerm
c.Run("Disable "+disableKind, func(c *qt.C) {
b := newSitesBuilder(c, disableKind)
b.Build(BuildCfg{})
@@ -153,7 +154,7 @@ title: Headless Local Lists Sub
b.Assert(getPage(b, "/categories/mycat"), qt.IsNil)
})
- disableKind = page.KindTaxonomyTerm
+ disableKind = page.KindTaxonomy
c.Run("Disable "+disableKind, func(c *qt.C) {
b := newSitesBuilder(c, disableKind)
b.Build(BuildCfg{})
@@ -319,7 +320,7 @@ title: Headless Local Lists Sub
// https://github.com/gohugoio/hugo/issues/6897#issuecomment-587947078
func TestDisableRSSWithRSSInCustomOutputs(t *testing.T) {
b := newTestSitesBuilder(t).WithConfigFile("toml", `
-disableKinds = ["taxonomy", "taxonomyTerm", "RSS"]
+disableKinds = ["term", "taxonomy", "RSS"]
[outputs]
home = [ "HTML", "RSS" ]
`).Build(BuildCfg{})
diff --git a/hugolib/hugo_sites.go b/hugolib/hugo_sites.go
index 16de27b0d..e71e48d41 100644
--- a/hugolib/hugo_sites.go
+++ b/hugolib/hugo_sites.go
@@ -443,8 +443,8 @@ func applyDeps(cfg deps.DepsCfg, sites ...*Site) error {
contentMap: newContentMap(contentMapConfig{
lang: s.Lang(),
taxonomyConfig: s.siteCfg.taxonomiesConfig.Values(),
- taxonomyDisabled: !s.isEnabled(page.KindTaxonomy),
- taxonomyTermDisabled: !s.isEnabled(page.KindTaxonomyTerm),
+ taxonomyDisabled: !s.isEnabled(page.KindTerm),
+ taxonomyTermDisabled: !s.isEnabled(page.KindTaxonomy),
pageDisabled: !s.isEnabled(page.KindPage),
}),
s: s,
@@ -493,6 +493,9 @@ func applyDeps(cfg deps.DepsCfg, sites ...*Site) error {
// NewHugoSites creates HugoSites from the given config.
func NewHugoSites(cfg deps.DepsCfg) (*HugoSites, error) {
+ if cfg.Logger == nil {
+ cfg.Logger = loggers.NewErrorLogger()
+ }
sites, err := createSitesFromConfig(cfg)
if err != nil {
return nil, errors.Wrap(err, "from config")
diff --git a/hugolib/hugo_sites_build_test.go b/hugolib/hugo_sites_build_test.go
index 59f228fef..84655c1f2 100644
--- a/hugolib/hugo_sites_build_test.go
+++ b/hugolib/hugo_sites_build_test.go
@@ -339,14 +339,14 @@ func doTestMultiSitesBuild(t *testing.T, configTemplate, configSuffix string) {
nnSite := sites[2]
c.Assert(nnSite.language.Lang, qt.Equals, "nn")
- taxNn := nnSite.getPage(page.KindTaxonomyTerm, "lag")
+ taxNn := nnSite.getPage(page.KindTaxonomy, "lag")
c.Assert(taxNn, qt.Not(qt.IsNil))
c.Assert(len(taxNn.Translations()), qt.Equals, 1)
c.Assert(taxNn.Translations()[0].Language().Lang, qt.Equals, "nb")
- taxTermNn := nnSite.getPage(page.KindTaxonomy, "lag", "sogndal")
+ taxTermNn := nnSite.getPage(page.KindTerm, "lag", "sogndal")
c.Assert(taxTermNn, qt.Not(qt.IsNil))
- c.Assert(nnSite.getPage(page.KindTaxonomy, "LAG", "SOGNDAL"), qt.Equals, taxTermNn)
+ c.Assert(nnSite.getPage(page.KindTerm, "LAG", "SOGNDAL"), qt.Equals, taxTermNn)
c.Assert(len(taxTermNn.Translations()), qt.Equals, 1)
c.Assert(taxTermNn.Translations()[0].Language().Lang, qt.Equals, "nb")
diff --git a/hugolib/hugo_smoke_test.go b/hugolib/hugo_smoke_test.go
index 406255d51..5aa508290 100644
--- a/hugolib/hugo_smoke_test.go
+++ b/hugolib/hugo_smoke_test.go
@@ -27,7 +27,7 @@ func TestHello(t *testing.T) {
b := newTestSitesBuilder(t)
b.WithConfigFile("toml", `
baseURL="https://example.org"
-disableKinds = ["taxonomy", "taxonomyTerm", "section", "page"]
+disableKinds = ["term", "taxonomy", "section", "page"]
`)
b.WithContent("p1", `
---
diff --git a/hugolib/page.go b/hugolib/page.go
index baf5e7f69..28ef1e156 100644
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -212,9 +212,9 @@ func (p *pageState) RegularPages() page.Pages {
switch p.Kind() {
case page.KindPage:
- case page.KindSection, page.KindHome, page.KindTaxonomyTerm:
+ case page.KindSection, page.KindHome, page.KindTaxonomy:
pages = p.getPages()
- case page.KindTaxonomy:
+ case page.KindTerm:
all := p.Pages()
for _, p := range all {
if p.IsPage() {
@@ -240,9 +240,9 @@ func (p *pageState) Pages() page.Pages {
case page.KindPage:
case page.KindSection, page.KindHome:
pages = p.getPagesAndSections()
- case page.KindTaxonomy:
+ case page.KindTerm:
pages = p.bucket.getTaxonomyEntries()
- case page.KindTaxonomyTerm:
+ case page.KindTaxonomy:
pages = p.bucket.getTaxonomies()
default:
pages = p.s.Pages()
@@ -436,7 +436,7 @@ func (p *pageState) getLayoutDescriptor() output.LayoutDescriptor {
if len(sections) > 0 {
section = sections[0]
}
- case page.KindTaxonomyTerm, page.KindTaxonomy:
+ case page.KindTaxonomy, page.KindTerm:
b := p.getTreeRef().n
section = b.viewInfo.name.singular
default:
diff --git a/hugolib/page__data.go b/hugolib/page__data.go
index 131bf8d5d..9fc97f8f6 100644
--- a/hugolib/page__data.go
+++ b/hugolib/page__data.go
@@ -35,7 +35,7 @@ func (p *pageData) Data() interface{} {
}
switch p.Kind() {
- case page.KindTaxonomy:
+ case page.KindTerm:
b := p.treeRef.n
name := b.viewInfo.name
termKey := b.viewInfo.termKey
@@ -46,7 +46,7 @@ func (p *pageData) Data() interface{} {
p.data["Singular"] = name.singular
p.data["Plural"] = name.plural
p.data["Term"] = b.viewInfo.term()
- case page.KindTaxonomyTerm:
+ case page.KindTaxonomy:
b := p.treeRef.n
name := b.viewInfo.name
diff --git a/hugolib/page__meta.go b/hugolib/page__meta.go
index 435b95473..c7226c6f2 100644
--- a/hugolib/page__meta.go
+++ b/hugolib/page__meta.go
@@ -52,7 +52,7 @@ type pageMeta struct {
// in the different page collections. This can, as an example, be used
// to to filter regular pages, find sections etc.
// Kind will, for the pages available to the templates, be one of:
- // page, home, section, taxonomy and taxonomyTerm.
+ // page, home, section, taxonomy and term.
// It is of string type to make it easy to reason about in
// the templates.
kind string
@@ -678,11 +678,11 @@ func (p *pageMeta) applyDefaultValues(n *contentNode) error {
} else {
p.title = sectionName
}
- case page.KindTaxonomy:
+ case page.KindTerm:
// TODO(bep) improve
key := p.sections[len(p.sections)-1]
p.title = strings.Replace(p.s.titleFunc(key), "-", " ", -1)
- case page.KindTaxonomyTerm:
+ case page.KindTaxonomy:
p.title = p.s.titleFunc(p.sections[0])
case kind404:
p.title = "404 Page not found"
diff --git a/hugolib/page__paginator.go b/hugolib/page__paginator.go
index 942597e04..5948735d1 100644
--- a/hugolib/page__paginator.go
+++ b/hugolib/page__paginator.go
@@ -89,7 +89,7 @@ func (p *pagePaginator) Paginator(options ...interface{}) (*page.Pager, error) {
// section. To avoid the default paginators for the home page
// changing in the wild, we make this a special case.
pages = p.source.s.RegularPages()
- case page.KindTaxonomy, page.KindTaxonomyTerm:
+ case page.KindTerm, page.KindTaxonomy:
pages = p.source.Pages()
default:
pages = p.source.RegularPages()
diff --git a/hugolib/page__paths.go b/hugolib/page__paths.go
index 5dc42bc2a..d0bf26961 100644
--- a/hugolib/page__paths.go
+++ b/hugolib/page__paths.go
@@ -147,7 +147,7 @@ func createTargetPathDescriptor(s *Site, p page.Page, pm *pageMeta) (page.Target
// the permalink configuration values are likely to be redundant, e.g.
// naively expanding /category/:slug/ would give /category/categories/ for
// the "categories" page.KindTaxonomyTerm.
- if p.Kind() == page.KindPage || p.Kind() == page.KindTaxonomy {
+ if p.Kind() == page.KindPage || p.Kind() == page.KindTerm {
opath, err := d.ResourceSpec.Permalinks.Expand(p.Section(), p)
if err != nil {
return desc, err
diff --git a/hugolib/page__tree.go b/hugolib/page__tree.go
index d2ef00e76..a617ad384 100644
--- a/hugolib/page__tree.go
+++ b/hugolib/page__tree.go
@@ -171,7 +171,7 @@ func (pt pageTree) Parent() page.Page {
tree := p.getTreeRef()
- if tree == nil || pt.p.Kind() == page.KindTaxonomyTerm {
+ if tree == nil || pt.p.Kind() == page.KindTaxonomy {
return pt.p.s.home
}
diff --git a/hugolib/page_kinds.go b/hugolib/page_kinds.go
index 4f000c3e5..683d12c1b 100644
--- a/hugolib/page_kinds.go
+++ b/hugolib/page_kinds.go
@@ -22,7 +22,7 @@ import (
var (
// This is all the kinds we can expect to find in .Site.Pages.
- allKindsInPages = []string{page.KindPage, page.KindHome, page.KindSection, page.KindTaxonomy, page.KindTaxonomyTerm}
+ allKindsInPages = []string{page.KindPage, page.KindHome, page.KindSection, page.KindTerm, page.KindTaxonomy}
)
const (
diff --git a/hugolib/pagebundler_test.go b/hugolib/pagebundler_test.go
index 4566c5f97..fa420a025 100644
--- a/hugolib/pagebundler_test.go
+++ b/hugolib/pagebundler_test.go
@@ -1145,7 +1145,7 @@ func TestPageBundlerPartialTranslations(t *testing.T) {
baseURL = "https://example.org"
defaultContentLanguage = "en"
defaultContentLanguageInSubDir = true
-disableKinds = ["taxonomyTerm", "taxonomy"]
+disableKinds = ["taxonomy", "term"]
[languages]
[languages.nn]
languageName = "Nynorsk"
diff --git a/hugolib/pagecollections_test.go b/hugolib/pagecollections_test.go
index bb846da85..b9623eb34 100644
--- a/hugolib/pagecollections_test.go
+++ b/hugolib/pagecollections_test.go
@@ -279,8 +279,8 @@ func TestGetPage(t *testing.T) {
{"Abs, ignore context, page deep", "NoPage", sec3, []string{"/subsect/deep.md"}, ""},
// Taxonomies
- {"Taxonomy term", page.KindTaxonomyTerm, nil, []string{"categories"}, "Categories"},
- {"Taxonomy", page.KindTaxonomy, nil, []string{"categories/hugo", "categories/Hugo"}, "Hugo"},
+ {"Taxonomy term", page.KindTaxonomy, nil, []string{"categories"}, "Categories"},
+ {"Taxonomy", page.KindTerm, nil, []string{"categories/hugo", "categories/Hugo"}, "Hugo"},
// Bundle variants
{"Bundle regular", page.KindPage, nil, []string{"sect3/b1", "sect3/b1/index.md", "sect3/b1/index.en.md"}, "b1 bundle"},
diff --git a/hugolib/resource_chain_babel_test.go b/hugolib/resource_chain_babel_test.go
index c9ddb2140..d3351dfd4 100644
--- a/hugolib/resource_chain_babel_test.go
+++ b/hugolib/resource_chain_babel_test.go
@@ -82,7 +82,7 @@ class Car {
v := viper.New()
v.Set("workingDir", workDir)
- v.Set("disableKinds", []string{"taxonomyTerm", "taxonomy", "page"})
+ v.Set("disableKinds", []string{"taxonomy", "term", "page"})
b := newTestSitesBuilder(t).WithLogger(loggers.NewWarningLogger())
// Need to use OS fs for this.
diff --git a/hugolib/resource_chain_test.go b/hugolib/resource_chain_test.go
index 67641bdb8..c687ca342 100644
--- a/hugolib/resource_chain_test.go
+++ b/hugolib/resource_chain_test.go
@@ -895,7 +895,7 @@ h1 {
newTestBuilder := func(v *viper.Viper) *sitesBuilder {
v.Set("workingDir", workDir)
- v.Set("disableKinds", []string{"taxonomyTerm", "taxonomy", "page"})
+ v.Set("disableKinds", []string{"taxonomy", "term", "page"})
b := newTestSitesBuilder(t).WithLogger(loggers.NewWarningLogger())
// Need to use OS fs for this.
b.Fs = hugofs.NewDefault(v)
diff --git a/hugolib/shortcode_test.go b/hugolib/shortcode_test.go
index 8bb468465..961450cb8 100644
--- a/hugolib/shortcode_test.go
+++ b/hugolib/shortcode_test.go
@@ -626,7 +626,7 @@ baseURL = "http://example.com/blog"
paginate = 1
-disableKinds = ["section", "taxonomy", "taxonomyTerm", "RSS", "sitemap", "robotsTXT", "404"]
+disableKinds = ["section", "term", "taxonomy", "RSS", "sitemap", "robotsTXT", "404"]
[outputs]
home = [ "HTML", "AMP", "Calendar" ]
diff --git a/hugolib/site.go b/hugolib/site.go
index a0390780a..5507d7a78 100644
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -28,6 +28,10 @@ import (
"strings"
"time"
+ "github.com/gohugoio/hugo/common/constants"
+
+ "github.com/gohugoio/hugo/common/loggers"
+
"github.com/gohugoio/hugo/resources"
"github.com/gohugoio/hugo/identity"
@@ -397,12 +401,34 @@ func newSite(cfg deps.DepsCfg) (*Site, error) {
if cfg.Language == nil {
cfg.Language = langs.NewDefaultLanguage(cfg.Cfg)
}
+ if cfg.Logger == nil {
+ panic("logger must be set")
+ }
+
+ ignoreErrors := cast.ToStringSlice(cfg.Language.Get("ignoreErrors"))
+ ignorableLogger := loggers.NewIgnorableLogger(cfg.Logger, ignoreErrors...)
disabledKinds := make(map[string]bool)
for _, disabled := range cast.ToStringSlice(cfg.Language.Get("disableKinds")) {
disabledKinds[disabled] = true
}
+ if disabledKinds["taxonomyTerm"] {
+ // Correct from the value it had before Hugo 0.73.0.
+ if disabledKinds[page.KindTaxonomy] {
+ disabledKinds[page.KindTerm] = true
+ } else {
+ disabledKinds[page.KindTaxonomy] = true
+ }
+
+ delete(disabledKinds, "taxonomyTerm")
+ } else if disabledKinds[page.KindTaxonomy] && !disabledKinds[page.KindTerm] {
+ // This is a potentially ambigous situation. It may be correct.
+ ignorableLogger.Errorf(constants.ErrIDAmbigousDisableKindTaxonomy, `You have the value 'taxonomy' in the disabledKinds list. In Hugo 0.73.0 we fixed these to be what most people expect (taxonomy and term).
+But this also means that your site configuration may not do what you expect. If it is correct, you can suppress this message by following the instructions below.`)
+
+ }
+
var (
mediaTypesConfig []map[string]interface{}
outputFormatsConfig []map[string]interface{}
@@ -444,7 +470,30 @@ func newSite(cfg deps.DepsCfg) (*Site, error) {
siteOutputFormatsConfig = tmp
}
- outputFormats, err := createSiteOutputFormats(siteOutputFormatsConfig, cfg.Language, rssDisabled)
+ var siteOutputs map[string]interface{}
+ if cfg.Language.IsSet("outputs") {
+ siteOutputs = cfg.Language.GetStringMap("outputs")
+
+ // Check and correct taxonomy kinds vs pre Hugo 0.73.0.
+ v1, hasTaxonomyTerm := siteOutputs["taxonomyterm"]
+ v2, hasTaxonomy := siteOutputs[page.KindTaxonomy]
+ _, hasTerm := siteOutputs[page.KindTerm]
+ if hasTaxonomy && hasTaxonomyTerm {
+ siteOutputs[page.KindTaxonomy] = v1
+ siteOutputs[page.KindTerm] = v2
+ delete(siteOutputs, "taxonomyTerm")
+ } else if hasTaxonomy && !hasTerm {
+ // This is a potentially ambigous situation. It may be correct.