diff options
Diffstat (limited to 'resources/page/site.go')
-rw-r--r-- | resources/page/site.go | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/resources/page/site.go b/resources/page/site.go new file mode 100644 index 000000000..25df063f1 --- /dev/null +++ b/resources/page/site.go @@ -0,0 +1,53 @@ +// Copyright 2019 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 page + +import ( + "html/template" + "time" + + "github.com/gohugoio/hugo/common/hugo" + "github.com/gohugoio/hugo/langs" + "github.com/gohugoio/hugo/navigation" +) + +// Site represents a site in the build. This is currently a very narrow interface, +// but the actual implementation will be richer, see hugolib.SiteInfo. +type Site interface { + Language() *langs.Language + RegularPages() Pages + Pages() Pages + IsServer() bool + ServerPort() int + Title() string + Sites() Sites + Hugo() hugo.Info + BaseURL() template.URL + Taxonomies() interface{} + LastChange() time.Time + Menus() navigation.Menus + Params() map[string]interface{} + Data() map[string]interface{} +} + +// Sites represents an ordered list of sites (languages). +type Sites []Site + +// First is a convenience method to get the first Site, i.e. the main language. +func (s Sites) First() Site { + if len(s) == 0 { + return nil + } + return s[0] +} |