diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-01-23 16:02:54 +0300 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-01-24 11:00:21 +0300 |
commit | 0432c64dd22e4610302162678bb93661ba68d758 (patch) | |
tree | 7eb5e0bc4a9f4d6e48c00b7001a4e77a21c324f2 /hugolib/hugo_sites_build.go | |
parent | 5a0819b9b5eb9e79826cfa0a65f235d9821b1ac4 (diff) |
Add headless bundle support
This commit adds support for `headless bundles` for the `index` bundle type.
So:
```toml
headless = true
```
In front matter means that
* It will have no `Permalink` and no rendered HTML in /public
* It will not be part of `.Site.RegularPages` etc.
But you can get it by:
* `.Site.GetPage ...`
The use cases are many:
* Shared media galleries
* Reusable page content "snippets"
* ...
Fixes #4311
Diffstat (limited to 'hugolib/hugo_sites_build.go')
-rw-r--r-- | hugolib/hugo_sites_build.go | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/hugolib/hugo_sites_build.go b/hugolib/hugo_sites_build.go index b2b394eb5..8f03f589f 100644 --- a/hugolib/hugo_sites_build.go +++ b/hugolib/hugo_sites_build.go @@ -179,19 +179,26 @@ func (h *HugoSites) assemble(config *BuildCfg) error { } for _, s := range h.Sites { - for _, p := range s.Pages { - // May have been set in front matter - if len(p.outputFormats) == 0 { - p.outputFormats = s.outputFormats[p.Kind] - } - for _, r := range p.Resources.ByType(pageResourceType) { - r.(*Page).outputFormats = p.outputFormats - } + for _, pages := range []Pages{s.Pages, s.headlessPages} { + for _, p := range pages { + // May have been set in front matter + if len(p.outputFormats) == 0 { + p.outputFormats = s.outputFormats[p.Kind] + } - if err := p.initPaths(); err != nil { - return err - } + if p.headless { + // headless = 1 output format only + p.outputFormats = p.outputFormats[:1] + } + for _, r := range p.Resources.ByType(pageResourceType) { + r.(*Page).outputFormats = p.outputFormats + } + if err := p.initPaths(); err != nil { + return err + } + + } } s.assembleMenus() s.refreshPageCaches() |