]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
common/hugo: Add hugo.IsServer and hugo.IsDevelopment
authorJoe Mooring <joe.mooring@veriphor.com>
Fri, 29 Sep 2023 17:23:08 +0000 (10:23 -0700)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Fri, 6 Oct 2023 14:26:51 +0000 (16:26 +0200)
And deprecate site.IsServer.

Closes #11510

common/hugo/hugo.go
common/hugo/hugo_test.go
docs/content/en/functions/hugo.md
docs/content/en/variables/site.md
hugolib/site_new.go
resources/page/page_matcher_test.go
resources/page/site.go

index c28dd0b5308ca70a878aa08cd49eb95c31b0ba0a..1138cf2acb6012dce7995c1c6af178d48338aa47 100644 (file)
@@ -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
 }
 
index b0279f11137120d3b4ff165aa5da59f8b2cad405..5b4a6f9ad200e5e12a5a5c4383e75c038584a4dd 100644 (file)
@@ -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
 }
index 78d658c666550c9209be5a78229465bbd131c222..5ed1ae85c93e3ec2a0a5b800eb513f21c7f55e28 100644 (file)
@@ -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`).
index 117f4534603658d31c5d3fba9f97001d2f29c488..ced5617b430e483c372d499ad2fd23b6596d1573 100644 (file)
@@ -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`).
 
index 8abd511c3ecc0573b732fa27eef84d452e0a75d8..4db5eeb2871fb29bfbea2129007c07d3dbf149b8 100644 (file)
@@ -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
 }
 
index da47843db980e830eea572ceffb8699a71c8bb32..2108d51c29022fd6619aaa7f64349b1a8c1a224e 100644 (file)
@@ -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
 }
index 6a352ef866c3013406b885afec1170585e01392e..7b8960fdd3dc692787fee07abdd8926c9e7e099e 100644 (file)
@@ -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
 }