summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-07-28 12:18:59 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-07-28 15:14:24 +0200
commitbec9b80d95d1be8270bcda080037c588614f3be1 (patch)
tree80e26516976a1aefc0c91090d05eccadf80badc2
parent1c97095ac01d7fa9a3e879fa69f7b550c200b567 (diff)
Deprecate taxonomyTerm
In favour of 'taxonomy' Closes #11256
-rw-r--r--common/loggers/logger.go10
-rw-r--r--config/allconfig/allconfig.go15
-rw-r--r--hugolib/config_test.go36
-rw-r--r--resources/kinds/kinds.go12
4 files changed, 66 insertions, 7 deletions
diff --git a/common/loggers/logger.go b/common/loggers/logger.go
index 640611939..1bdab991b 100644
--- a/common/loggers/logger.go
+++ b/common/loggers/logger.go
@@ -173,6 +173,7 @@ type Logger interface {
WarnCommand(command string) logg.LevelLogger
Warnf(format string, v ...any)
Warnln(v ...any)
+ Deprecatef(fail bool, format string, v ...any)
}
type logAdapter struct {
@@ -297,6 +298,15 @@ func (l *logAdapter) sprint(v ...any) string {
return strings.TrimRight(fmt.Sprintln(v...), "\n")
}
+func (l *logAdapter) Deprecatef(fail bool, format string, v ...any) {
+ format = "DEPRECATED: " + format
+ if fail {
+ l.errorl.Logf(format, v...)
+ } else {
+ l.warnl.Logf(format, v...)
+ }
+}
+
type logWriter struct {
l logg.LevelLogger
}
diff --git a/config/allconfig/allconfig.go b/config/allconfig/allconfig.go
index 00453fb6c..1c1b0b990 100644
--- a/config/allconfig/allconfig.go
+++ b/config/allconfig/allconfig.go
@@ -240,12 +240,13 @@ func (c *Config) CompileConfig(logger loggers.Logger) error {
disabledKinds := make(map[string]bool)
for _, kind := range c.DisableKinds {
kind = strings.ToLower(kind)
- if kind == "taxonomyterm" {
+ if newKind := kinds.IsDeprecatedAndReplacedWith(kind); newKind != "" {
+ logger.Deprecatef(false, "Kind %q used in disableKinds is deprecated, use %q instead.", kind, newKind)
// Legacy config.
- kind = "taxonomy"
+ kind = newKind
}
if kinds.GetKindAny(kind) == "" {
- logger.Warnf("Unknown kind %q in disableKinds", kind)
+ logger.Warnf("Unknown kind %q in disableKinds configuration.", kind)
continue
}
disabledKinds[kind] = true
@@ -254,9 +255,17 @@ func (c *Config) CompileConfig(logger loggers.Logger) error {
isRssDisabled := disabledKinds["rss"]
outputFormats := c.OutputFormats.Config
for kind, formats := range c.Outputs {
+ if newKind := kinds.IsDeprecatedAndReplacedWith(kind); newKind != "" {
+ logger.Deprecatef(false, "Kind %q used in outputs configuration is deprecated, use %q instead.", kind, newKind)
+ kind = newKind
+ }
if disabledKinds[kind] {
continue
}
+ if kinds.GetKindAny(kind) == "" {
+ logger.Warnf("Unknown kind %q in outputs configuration.", kind)
+ continue
+ }
for _, format := range formats {
if isRssDisabled && format == "rss" {
// Legacy config.
diff --git a/hugolib/config_test.go b/hugolib/config_test.go
index 9a1d3bcbf..e912ff721 100644
--- a/hugolib/config_test.go
+++ b/hugolib/config_test.go
@@ -1612,12 +1612,14 @@ List.
}
-func TestDisableKindsUnknown(t *testing.T) {
+func TestKindsUnknown(t *testing.T) {
t.Parallel()
files := `
-- hugo.toml --
disableKinds = ['foo', 'home']
+[outputs]
+foo = ['HTML', 'AMP', 'RSS']
-- layouts/_default/list.html --
List.
@@ -1629,12 +1631,38 @@ List.
T: t,
TxtarString: files,
LogLevel: logg.LevelWarn,
- BuildCfg: BuildCfg{SkipRender: true},
},
).Init()
- fmt.Println("LOG:", b.LogString())
+ b.AssertLogContains("WARN Unknown kind \"foo\" in disableKinds configuration.\n")
+ b.AssertLogContains("WARN Unknown kind \"foo\" in outputs configuration.\n")
+
+}
+
+func TestDeprecateTaxonomyTerm(t *testing.T) {
+ t.Parallel()
+
+ files := `
+-- hugo.toml --
+disableKinds = ['taxonomyTerm']
+[outputs]
+taxonomyterm = ['HTML', 'AMP', 'RSS']
+-- layouts/_default/list.html --
+List.
+
+
+
+`
+ b := NewIntegrationTestBuilder(
+ IntegrationTestConfig{
+ T: t,
+ TxtarString: files,
+ LogLevel: logg.LevelWarn,
+ BuildCfg: BuildCfg{SkipRender: true},
+ },
+ ).Init()
- b.AssertLogContains("WARN Unknown kind \"foo\" in disableKinds\n")
+ b.AssertLogContains("WARN DEPRECATED: Kind \"taxonomyterm\" used in disableKinds is deprecated, use \"taxonomy\" instead.\n")
+ b.AssertLogContains("WARN DEPRECATED: Kind \"taxonomyterm\" used in outputs configuration is deprecated, use \"taxonomy\" instead.\n")
}
diff --git a/resources/kinds/kinds.go b/resources/kinds/kinds.go
index 7bcdb5ca7..b035cdd29 100644
--- a/resources/kinds/kinds.go
+++ b/resources/kinds/kinds.go
@@ -93,3 +93,15 @@ func GetKindAny(s string) string {
}
return kindMapTemporary[strings.ToLower(s)]
}
+
+// IsDeprecatedAndReplacedWith returns the new kind if the given kind is deprecated.
+func IsDeprecatedAndReplacedWith(s string) string {
+ s = strings.ToLower(s)
+
+ switch s {
+ case "taxonomyterm":
+ return KindTaxonomy
+ default:
+ return ""
+ }
+}