summaryrefslogtreecommitdiffstats
path: root/hugolib/page_output.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-03-19 15:25:32 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-03-27 15:43:56 +0200
commitc7c6b47ba8bb098cf9fac778f7818afba40a1e2f (patch)
treef02b2a70ba758949bcb180868200dbf8c1d2ae95 /hugolib/page_output.go
parent08fa2b112407c1fe180e6c02dd8fe63735608336 (diff)
hubolib: Pick layout per output format
Diffstat (limited to 'hugolib/page_output.go')
-rw-r--r--hugolib/page_output.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/hugolib/page_output.go b/hugolib/page_output.go
index de51a4401..fa9a45190 100644
--- a/hugolib/page_output.go
+++ b/hugolib/page_output.go
@@ -14,6 +14,7 @@
package hugolib
import (
+ "html/template"
"sync"
"github.com/spf13/hugo/output"
@@ -81,3 +82,30 @@ func (p *PageOutput) copy() *PageOutput {
}
return c
}
+
+func (p *PageOutput) layouts(layouts ...string) []string {
+ // TODO(bep) output the logic here needs to be redone.
+ if len(layouts) == 0 && len(p.layoutsCalculated) > 0 {
+ return p.layoutsCalculated
+ }
+
+ layoutOverride := ""
+ if len(layouts) > 0 {
+ layoutOverride = layouts[0]
+ }
+
+ return p.s.layoutHandler.For(
+ p.layoutDescriptor,
+ layoutOverride,
+ p.outputFormat)
+}
+
+func (p *PageOutput) Render(layout ...string) template.HTML {
+ l := p.layouts(layout...)
+ return p.s.Tmpl.ExecuteTemplateToHTML(p, l...)
+}
+
+// TODO(bep) output
+func (p *Page) Render(layout ...string) template.HTML {
+ return p.mainPageOutput.Render(layout...)
+}