common/hugo: Add hugo.IsServer and hugo.IsDevelopment - hugo - [fork] hugo port for 9front
HTML git clone git@git.drkhsh.at/hugo.git
DIR Log
DIR Files
DIR Refs
DIR Submodules
DIR README
DIR LICENSE
---
DIR commit d1b4458536372a4f8b60395bf867702571169362
DIR parent 274852bcf254230fae30bed4883049ec94462e85
HTML Author: Joe Mooring <joe.mooring@veriphor.com>
Date: Fri, 29 Sep 2023 10:23:08 -0700
common/hugo: Add hugo.IsServer and hugo.IsDevelopment
And deprecate site.IsServer.
Closes #11510
Diffstat:
M common/hugo/hugo.go | 13 +++++++++++++
M common/hugo/hugo_test.go | 13 +++++++++++--
M docs/content/en/functions/hugo.md | 8 +++++++-
M docs/content/en/variables/site.md | 3 ---
M hugolib/site_new.go | 2 ++
M resources/page/page_matcher_test.go | 5 +++++
M resources/page/site.go | 3 +++
7 files changed, 41 insertions(+), 6 deletions(-)
---
DIR diff --git a/common/hugo/hugo.go b/common/hugo/hugo.go
@@ -78,10 +78,22 @@ func (i HugoInfo) Generator() template.HTML {
return template.HTML(fmt.Sprintf(`<meta name="generator" content="Hugo %s">`, CurrentVersion.String()))
}
+// IsDevelopment reports whether the current running environment is "development".
+func (i HugoInfo) IsDevelopment() bool {
+ return i.Environment == EnvironmentDevelopment
+}
+
+// IsProduction reports whether the current running environment is "production".
func (i HugoInfo) IsProduction() bool {
return i.Environment == EnvironmentProduction
}
+// IsServer reports whether the built-in server is running.
+func (i HugoInfo) IsServer() bool {
+ return i.conf.Running()
+}
+
+// IsExtended reports whether the Hugo binary is the extended version.
func (i HugoInfo) IsExtended() bool {
return IsExtended
}
@@ -99,6 +111,7 @@ func (i HugoInfo) Deps() []*Dependency {
// ConfigProvider represents the config options that are relevant for HugoInfo.
type ConfigProvider interface {
Environment() string
+ Running() bool
WorkingDir() string
}
DIR diff --git a/common/hugo/hugo_test.go b/common/hugo/hugo_test.go
@@ -23,7 +23,7 @@ import (
func TestHugoInfo(t *testing.T) {
c := qt.New(t)
- conf := testConfig{environment: "production", workingDir: "/mywork"}
+ conf := testConfig{environment: "production", workingDir: "/mywork", running: false}
hugoInfo := NewInfo(conf, nil)
c.Assert(hugoInfo.Version(), qt.Equals, CurrentVersion.Version())
@@ -38,15 +38,20 @@ func TestHugoInfo(t *testing.T) {
}
c.Assert(hugoInfo.Environment, qt.Equals, "production")
c.Assert(string(hugoInfo.Generator()), qt.Contains, fmt.Sprintf("Hugo %s", hugoInfo.Version()))
+ c.Assert(hugoInfo.IsDevelopment(), qt.Equals, false)
c.Assert(hugoInfo.IsProduction(), qt.Equals, true)
c.Assert(hugoInfo.IsExtended(), qt.Equals, IsExtended)
+ c.Assert(hugoInfo.IsServer(), qt.Equals, false)
- devHugoInfo := NewInfo(testConfig{environment: "development"}, nil)
+ devHugoInfo := NewInfo(testConfig{environment: "development", running: true}, nil)
+ c.Assert(devHugoInfo.IsDevelopment(), qt.Equals, true)
c.Assert(devHugoInfo.IsProduction(), qt.Equals, false)
+ c.Assert(devHugoInfo.IsServer(), qt.Equals, true)
}
type testConfig struct {
environment string
+ running bool
workingDir string
}
@@ -54,6 +59,10 @@ func (c testConfig) Environment() string {
return c.environment
}
+func (c testConfig) Running() bool {
+ return c.running
+}
+
func (c testConfig) WorkingDir() string {
return c.workingDir
}
DIR diff --git a/docs/content/en/functions/hugo.md b/docs/content/en/functions/hugo.md
@@ -31,11 +31,17 @@ relatedfuncs: []
`hugo.GoVersion`
: (`string`) The Go version used to compile the Hugo binary (e.g., `go1.20.4`). {{< new-in "0.101.0" >}}
+`hugo.IsDevelopment`
+: (`bool`) Returns `true` if `hugo.Environment` is "development".
+
`hugo.IsExtended`
: (`bool`) Returns `true` if the Hugo binary is the extended version.
`hugo.IsProduction`
-: (`bool`) Returns `true` if `hugo.Environment` is set to the production environment.
+: (`bool`) Returns `true` if `hugo.Environment` is "production".
+
+`hugo.IsServer`
+: (`bool`) Returns `true` if the site is being served with Hugo's built-in server.
`hugo.Version`
: (`hugo.VersionString`) The current version of the Hugo binary (e.g., `0.112.1`).
DIR diff --git a/docs/content/en/variables/site.md b/docs/content/en/variables/site.md
@@ -47,9 +47,6 @@ All the methods below, e.g. `.Site.RegularPages` can also be reached via the glo
.Site.IsMultiLingual
: whether there are more than one language in this site. See [Multilingual](/content-management/multilingual/) for more information.
-.Site.IsServer
-: a boolean to indicate if the site is being served with Hugo's built-in server. See [`hugo server`](/commands/hugo_server/) for more information.
-
.Site.Language.Lang
: the language code of the current locale (e.g., `en`).
DIR diff --git a/hugolib/site_new.go b/hugolib/site_new.go
@@ -356,7 +356,9 @@ func newHugoSitesNew(cfg deps.DepsCfg, d *deps.Deps, sites []*Site) (*HugoSites,
}
// Returns true if we're running in a server.
+// Deprecated: use hugo.IsServer instead
func (s *Site) IsServer() bool {
+ helpers.Deprecated(".Site.IsServer", "Use hugo.IsServer instead.", false)
return s.conf.Internal.Running
}
DIR diff --git a/resources/page/page_matcher_test.go b/resources/page/page_matcher_test.go
@@ -159,6 +159,7 @@ func TestDecodeCascadeConfig(t *testing.T) {
type testConfig struct {
environment string
+ running bool
workingDir string
}
@@ -166,6 +167,10 @@ func (c testConfig) Environment() string {
return c.environment
}
+func (c testConfig) Running() bool {
+ return c.running
+}
+
func (c testConfig) WorkingDir() string {
return c.workingDir
}
DIR diff --git a/resources/page/site.go b/resources/page/site.go
@@ -56,6 +56,7 @@ type Site interface {
Home() Page
// Returns true if we're running in a server.
+ // Deprecated: use hugo.IsServer instead
IsServer() bool
// Returns the server port.
@@ -211,6 +212,7 @@ func (s *siteWrapper) Home() Page {
return s.s.Home()
}
+// Deprecated: use hugo.IsServer instead
func (s *siteWrapper) IsServer() bool {
return s.s.IsServer()
}
@@ -383,6 +385,7 @@ func (t testSite) GetIdentity() identity.Identity {
return identity.KeyValueIdentity{Key: "site", Value: t.l.Lang}
}
+// Deprecated: use hugo.IsServer instead
func (t testSite) IsServer() bool {
return false
}