diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-01-23 14:02:54 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-01-24 09:00:21 +0100 |
commit | 0432c64dd22e4610302162678bb93661ba68d758 (patch) | |
tree | 7eb5e0bc4a9f4d6e48c00b7001a4e77a21c324f2 /hugolib/site_render.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/site_render.go')
-rw-r--r-- | hugolib/site_render.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/hugolib/site_render.go b/hugolib/site_render.go index 43019619b..bde4ef1f3 100644 --- a/hugolib/site_render.go +++ b/hugolib/site_render.go @@ -45,6 +45,12 @@ func (s *Site) renderPages(filter map[string]bool) error { go pageRenderer(s, pages, results, wg) } + if len(s.headlessPages) > 0 { + wg.Add(1) + go headlessPagesPublisher(s, wg) + + } + hasFilter := filter != nil && len(filter) > 0 for _, page := range s.Pages { @@ -67,6 +73,22 @@ func (s *Site) renderPages(filter map[string]bool) error { return nil } +func headlessPagesPublisher(s *Site, wg *sync.WaitGroup) { + defer wg.Done() + for _, page := range s.headlessPages { + outFormat := page.outputFormats[0] // There is only one + pageOutput, err := newPageOutput(page, false, outFormat) + if err == nil { + page.mainPageOutput = pageOutput + err = pageOutput.renderResources() + } + + if err != nil { + s.Log.ERROR.Printf("Failed to render resources for headless page %q: %s", page, err) + } + } +} + func pageRenderer(s *Site, pages <-chan *Page, results chan<- error, wg *sync.WaitGroup) { defer wg.Done() |