Documentation ¶
Index ¶
- Variables
- func LoadConfig(d ConfigSourceDescriptor, doWithConfig ...func(cfg config.Provider) error) (config.Provider, []string, error)
- func LoadConfigDefault(fs afero.Fs) (config.Provider, error)
- type BuildCfg
- type ConfigSourceDescriptor
- type HugoSites
- func (h *HugoSites) Build(config BuildCfg, events ...fsnotify.Event) error
- func (h *HugoSites) Data() map[string]interface{}
- func (f HugoSites) Done() <-chan bool
- func (f HugoSites) FatalError(err error)
- func (h *HugoSites) GC() (int, error)
- func (h *HugoSites) GetContentPage(filename string) page.Page
- func (h HugoSites) IncrContentRender()
- func (h *HugoSites) IsMultihost() bool
- func (h *HugoSites) LanguageSet() map[string]int
- func (h *HugoSites) NumLogErrors() int
- func (h *HugoSites) Pages() page.Pages
- func (h *HugoSites) PrintProcessingStats(w io.Writer)
- func (h *HugoSites) ShouldSkipFileChangeEvent(ev fsnotify.Event) bool
- type Multilingual
- type OrderedTaxonomy
- type OrderedTaxonomyEntry
- type PageCollections
- type Permalinker
- type ShortcodeWithPage
- func (scp *ShortcodeWithPage) Get(key interface{}) interface{}
- func (scp *ShortcodeWithPage) Position() text.Position
- func (scp *ShortcodeWithPage) Ref(args map[string]interface{}) (string, error)
- func (scp *ShortcodeWithPage) RelRef(args map[string]interface{}) (string, error)
- func (scp *ShortcodeWithPage) Scratch() *maps.Scratch
- func (scp *ShortcodeWithPage) Site() page.Site
- type Site
- type SiteConfig
- type SiteInfo
- func (s *SiteInfo) AllPages() page.Pages
- func (s *SiteInfo) AllRegularPages() page.Pages
- func (s *SiteInfo) BaseURL() template.URL
- func (s *SiteInfo) Config() SiteConfig
- func (s *SiteInfo) Data() map[string]interface{}
- func (s *SiteInfo) DisqusShortname() string
- func (s *SiteInfo) GetPage(ref ...string) (page.Page, error)
- func (s *SiteInfo) GetPageWithTemplateInfo(info tpl.Info, ref ...string) (page.Page, error)
- func (s *SiteInfo) GoogleAnalytics() string
- func (s *SiteInfo) Home() (page.Page, error)
- func (s *SiteInfo) HomeAbsURL() string
- func (s *SiteInfo) Hugo() neohugo.Info
- func (s *SiteInfo) IsMultiLingual() bool
- func (s *SiteInfo) IsServer() bool
- func (s *SiteInfo) Language() *langs.Language
- func (s *SiteInfo) LastChange() time.Time
- func (s *SiteInfo) Menus() navigation.Menus
- func (s *SiteInfo) Pages() page.Pages
- func (s *SiteInfo) Param(key interface{}) (interface{}, error)
- func (s *SiteInfo) Params() maps.Params
- func (s *SiteInfo) Permalinks() map[string]string
- func (s *SiteInfo) RegularPages() page.Pages
- func (s *SiteInfo) Sections() page.Pages
- func (s *SiteInfo) ServerPort() int
- func (s *SiteInfo) Site() page.Site
- func (s *SiteInfo) SitemapAbsURL() string
- func (s *SiteInfo) Sites() page.Sites
- func (s *SiteInfo) String() string
- func (s *SiteInfo) Taxonomies() interface{}
- func (s *SiteInfo) Title() string
- type SiteSocial
- type Taxonomy
- type TaxonomyList
Constants ¶
This section is empty.
Variables ¶
var ErrNoConfigFile = errors.New("Unable to locate config file or config directory. Perhaps you need to create a new site.\n Run `hugo help new` for details.\n")
Functions ¶
func LoadConfig ¶
func LoadConfig(d ConfigSourceDescriptor, doWithConfig ...func(cfg config.Provider) error) (config.Provider, []string, error)
LoadConfig loads Hugo configuration into a new Viper and then adds a set of defaults.
Types ¶
type BuildCfg ¶
type BuildCfg struct { // Reset site state before build. Use to force full rebuilds. ResetState bool // If set, we re-create the sites from the given configuration before a build. // This is needed if new languages are added. NewConfig config.Provider // Skip rendering. Useful for testing. SkipRender bool // This is a partial re-render of some selected pages. This means // we should skip most of the processing. PartialReRender bool // Set in server mode when the last build failed for some reason. ErrRecovery bool // Recently visited URLs. This is used for partial re-rendering. RecentlyVisited map[string]bool // contains filtered or unexported fields }
BuildCfg holds build options used to, as an example, skip the render step.
type ConfigSourceDescriptor ¶
type ConfigSourceDescriptor struct { Fs afero.Fs Logger loggers.Logger // Path to the config file to use, e.g. /my/project/config.toml Filename string // The path to the directory to look for configuration. Is used if Filename is not // set or if it is set to a relative filename. Path string // The project's working dir. Is used to look for additional theme config. WorkingDir string // The (optional) directory for additional configuration files. AbsConfigDir string // production, development Environment string // Defaults to os.Environ if not set. Environ []string }
ConfigSourceDescriptor describes where to find the config (e.g. config.toml etc.).
type HugoSites ¶
type HugoSites struct { Sites []*Site *deps.Deps // Keeps track of bundle directories and symlinks to enable partial rebuilding. ContentChanges *contentChangeMap // contains filtered or unexported fields }
HugoSites represents the sites to build. Each site represents a language.
func NewHugoSites ¶
NewHugoSites creates HugoSites from the given config.
func (*HugoSites) Build ¶
Build builds all sites. If filesystem events are provided, this is considered to be a potential partial rebuild.
func (HugoSites) FatalError ¶
func (f HugoSites) FatalError(err error)
FatalError error is used in some rare situations where it does not make sense to continue processing, to abort as soon as possible and log the error.
func (*HugoSites) GetContentPage ¶
GetContentPage finds a Page with content given the absolute filename. Returns nil if none found.
func (HugoSites) IncrContentRender ¶
func (h HugoSites) IncrContentRender()
func (*HugoSites) IsMultihost ¶
func (*HugoSites) LanguageSet ¶
TODO(bep) consolidate
func (*HugoSites) NumLogErrors ¶
func (*HugoSites) PrintProcessingStats ¶
type Multilingual ¶
type Multilingual struct { Languages langs.Languages DefaultLang *langs.Language // contains filtered or unexported fields }
Multilingual manages the all languages used in a multilingual site.
type OrderedTaxonomy ¶
type OrderedTaxonomy []OrderedTaxonomyEntry
OrderedTaxonomy is another representation of an Taxonomy using an array rather than a map. Important because you can't order a map.
func (OrderedTaxonomy) Reverse ¶
func (t OrderedTaxonomy) Reverse() OrderedTaxonomy
Reverse reverses the order of the entries in this taxonomy.
type OrderedTaxonomyEntry ¶
type OrderedTaxonomyEntry struct { Name string page.WeightedPages }
OrderedTaxonomyEntry is similar to an element of a Taxonomy, but with the key embedded (as name) e.g: {Name: Technology, page.WeightedPages: TaxonomyPages}
func (OrderedTaxonomyEntry) Count ¶
func (ie OrderedTaxonomyEntry) Count() int
Count returns the count the pages in this taxonomy.
func (OrderedTaxonomyEntry) Pages ¶
func (ie OrderedTaxonomyEntry) Pages() page.Pages
Pages returns the Pages for this taxonomy.
func (OrderedTaxonomyEntry) Term ¶
func (ie OrderedTaxonomyEntry) Term() string
Term returns the name given to this taxonomy.
type PageCollections ¶
type PageCollections struct {
// contains filtered or unexported fields
}
PageCollections contains the page collections for a site.
func (*PageCollections) AllPages ¶
func (c *PageCollections) AllPages() page.Pages
AllPages returns all pages for all languages.
func (*PageCollections) AllRegularPages ¶
func (c *PageCollections) AllRegularPages() page.Pages
AllPages returns all regular pages for all languages.
func (*PageCollections) Pages ¶
func (c *PageCollections) Pages() page.Pages
Pages returns all pages. This is for the current language only.
func (*PageCollections) RegularPages ¶
func (c *PageCollections) RegularPages() page.Pages
RegularPages returns all the regular pages. This is for the current language only.
type Permalinker ¶
Permalinker provides permalinks of both the relative and absolute kind.
type ShortcodeWithPage ¶
type ShortcodeWithPage struct { Params interface{} Inner template.HTML Page page.Page Parent *ShortcodeWithPage Name string IsNamedParams bool // Zero-based ordinal in relation to its parent. If the parent is the page itself, // this ordinal will represent the position of this shortcode in the page content. Ordinal int // contains filtered or unexported fields }
ShortcodeWithPage is the "." context in a shortcode template.
func (*ShortcodeWithPage) Get ¶
func (scp *ShortcodeWithPage) Get(key interface{}) interface{}
Get is a convenience method to look up shortcode parameters by its key.
func (*ShortcodeWithPage) Position ¶
func (scp *ShortcodeWithPage) Position() text.Position
Position returns this shortcode's detailed position. Note that this information may be expensive to calculate, so only use this in error situations.
func (*ShortcodeWithPage) Ref ¶
func (scp *ShortcodeWithPage) Ref(args map[string]interface{}) (string, error)
Ref is a shortcut to the Ref method on Page. It passes itself as a context to get better error messages.
func (*ShortcodeWithPage) RelRef ¶
func (scp *ShortcodeWithPage) RelRef(args map[string]interface{}) (string, error)
RelRef is a shortcut to the RelRef method on Page. It passes itself as a context to get better error messages.
func (*ShortcodeWithPage) Scratch ¶
func (scp *ShortcodeWithPage) Scratch() *maps.Scratch
Scratch returns a scratch-pad scoped for this shortcode. This can be used as a temporary storage for variables, counters etc.
func (*ShortcodeWithPage) Site ¶
func (scp *ShortcodeWithPage) Site() page.Site
Site returns information about the current site.
type Site ¶
type Site struct { *PageCollections Sections Taxonomy Info *SiteInfo // Logger etc. *deps.Deps `json:"-"` // contains filtered or unexported fields }
Site contains all the information relevant for constructing a static site. The basic flow of information is as follows:
1. A list of Files is parsed and then converted into Pages.
- Pages contain sections (based on the file they were generated from), aliases and slugs (included in a pages frontmatter) which are the various targets that will get generated. There will be canonical listing. The canonical path can be overruled based on a pattern.
- Taxonomies are created via configuration and will present some aspect of the final page and typically a perm url.
- All Pages are passed through a template based on their desired layout based on numerous different elements.
5. The entire collection of files is written to disk.
func NewEnglishSite ¶
func NewEnglishSite(withTemplate ...func(templ tpl.TemplateManager) error) (*Site, error)
NewEnglishSite creates a new site in English language. The site will have a template system loaded and ready to use. Note: This is mainly used in single site tests. TODO(bep) test refactor -- remove
func NewSite ¶
NewSite creates a new site with the given dependency configuration. The site will have a template system loaded and ready to use. Note: This is mainly used in single site tests.
func NewSiteDefaultLang ¶
func NewSiteDefaultLang(withTemplate ...func(templ tpl.TemplateManager) error) (*Site, error)
NewSiteDefaultLang creates a new site in the default language. The site will have a template system loaded and ready to use. Note: This is mainly used in single site tests. TODO(bep) test refactor -- remove
func NewSiteForCfg ¶
NewSiteForCfg creates a new site for the given configuration. The site will have a template system loaded and ready to use. Note: This is mainly used in single site tests.
func (*Site) GetRelatedDocsHandler ¶
func (s *Site) GetRelatedDocsHandler() *page.RelatedDocsHandler
func (*Site) Initialise ¶
func (*Site) Menus ¶
func (s *Site) Menus() navigation.Menus
func (*Site) RegisterMediaTypes ¶
func (s *Site) RegisterMediaTypes()
RegisterMediaTypes will register the Site's media types in the mime package, so it will behave correctly with Hugo's built-in server.
func (*Site) Taxonomies ¶
func (s *Site) Taxonomies() TaxonomyList
type SiteConfig ¶
type SiteConfig struct { // This contains all privacy related settings that can be used to // make the YouTube template etc. GDPR compliant. Privacy privacy.Config // Services contains config for services such as Google Analytics etc. Services services.Config }
SiteConfig represents the config in .Site.Config.
type SiteInfo ¶
type SiteInfo struct { Authors page.AuthorList Social SiteSocial RSSLink string Author map[string]interface{} LanguageCode string Copyright string LanguagePrefix string Languages langs.Languages BuildDrafts bool // contains filtered or unexported fields }
func (*SiteInfo) AllRegularPages ¶
func (*SiteInfo) Config ¶
func (s *SiteInfo) Config() SiteConfig
func (*SiteInfo) DisqusShortname ¶
DisqusShortname is kept here for historic reasons.
func (*SiteInfo) GetPage ¶
GetPage looks up a page of a given type for the given ref. In Hugo <= 0.44 you had to add Page Kind (section, home) etc. as the first argument and then either a unix styled path (with or without a leading slash)) or path elements separated. When we now remove the Kind from this API, we need to make the transition as painless as possible for existing sites. Most sites will use {{ .Site.GetPage "section" "my/section" }}, i.e. 2 arguments, so we test for that.
func (*SiteInfo) GetPageWithTemplateInfo ¶
func (*SiteInfo) GoogleAnalytics ¶
GoogleAnalytics is kept here for historic reasons.
func (*SiteInfo) HomeAbsURL ¶
HomeAbsURL is a convenience method giving the absolute URL to the home page.
func (*SiteInfo) IsMultiLingual ¶
func (*SiteInfo) LastChange ¶
func (*SiteInfo) Menus ¶
func (s *SiteInfo) Menus() navigation.Menus
func (*SiteInfo) Param ¶
Param is a convenience method to do lookups in SiteInfo's Params map.
This method is also implemented on Page.
func (*SiteInfo) Permalinks ¶
func (*SiteInfo) RegularPages ¶
func (*SiteInfo) ServerPort ¶
ServerPort returns the port part of the BaseURL, 0 if none found.
func (*SiteInfo) SitemapAbsURL ¶
SitemapAbsURL is a convenience method giving the absolute URL to the sitemap.
type SiteSocial ¶
SiteSocial is a place to put social details on a site level. These are the standard keys that themes will expect to have available, but can be expanded to any others on a per site basis github facebook facebook_admin twitter twitter_domain pinterest instagram youtube linkedin
type Taxonomy ¶
type Taxonomy map[string]page.WeightedPages
A Taxonomy is a map of keywords to a list of pages. For example
TagTaxonomy['technology'] = page.WeightedPages TagTaxonomy['go'] = page.WeightedPages
func (Taxonomy) Alphabetical ¶
func (i Taxonomy) Alphabetical() OrderedTaxonomy
Alphabetical returns an ordered taxonomy sorted by key name.
func (Taxonomy) ByCount ¶
func (i Taxonomy) ByCount() OrderedTaxonomy
ByCount returns an ordered taxonomy sorted by # of pages per key. If taxonomies have the same # of pages, sort them alphabetical
func (Taxonomy) Get ¶
func (i Taxonomy) Get(key string) page.WeightedPages
Get the weighted pages for the given key.
func (Taxonomy) TaxonomyArray ¶
func (i Taxonomy) TaxonomyArray() OrderedTaxonomy
TaxonomyArray returns an ordered taxonomy with a non defined order.
type TaxonomyList ¶
The TaxonomyList is a list of all taxonomies and their values e.g. List['tags'] => TagTaxonomy (from above)
func (TaxonomyList) String ¶
func (tl TaxonomyList) String() string
Source Files ¶
- alias.go
- collections.go
- config.go
- content_map.go
- content_map_page.go
- fileInfo.go
- gitinfo.go
- hugo_sites.go
- hugo_sites_build.go
- multilingual.go
- page.go
- page__common.go
- page__content.go
- page__data.go
- page__menus.go
- page__meta.go
- page__new.go
- page__output.go
- page__paginator.go
- page__paths.go
- page__per_output.go
- page__position.go
- page__ref.go
- page__tree.go
- page_kinds.go
- page_unwrap.go
- pagecollections.go
- pages_capture.go
- pages_process.go
- permalinker.go
- prune_resources.go
- shortcode.go
- shortcode_page.go
- site.go
- site_output.go
- site_render.go
- site_sections.go
- taxonomy.go
- translations.go
Directories ¶
Path | Synopsis |
---|---|
Package filesystems provides the fine grained file systems used by Hugo.
|
Package filesystems provides the fine grained file systems used by Hugo. |