summaryrefslogtreecommitdiffstats
path: root/hugolib/page.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-03-08 13:45:33 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-03-27 15:43:56 +0200
commitc8fff9501d424882a42f750800d9982ec47df640 (patch)
tree03b49241a12ddcf98212959b8e3c7f954ae94685 /hugolib/page.go
parent3ec5fc35043639e7592819014180666b1a8e926b (diff)
Implement the first generic JSON output testcase
Diffstat (limited to 'hugolib/page.go')
-rw-r--r--hugolib/page.go22
1 files changed, 21 insertions, 1 deletions
diff --git a/hugolib/page.go b/hugolib/page.go
index 17d3e9af6..8efe78225 100644
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -851,8 +851,13 @@ func (p *Page) createPermalink() (*url.URL, error) {
func (p *Page) Extension() string {
if p.extension != "" {
+ // TODO(bep) output remove/deprecate this
return p.extension
}
+ //
+ // TODO(bep) return p.outputType.MediaType.Suffix
+
+ // TODO(bep) remove this config option =>
return p.s.Cfg.GetString("defaultExtension")
}
@@ -1025,6 +1030,20 @@ func (p *Page) update(f interface{}) error {
if err != nil {
p.s.Log.ERROR.Printf("Failed to parse lastmod '%v' in page %s", v, p.File.Path())
}
+ case "outputs":
+ outputs := cast.ToStringSlice(v)
+ if len(outputs) > 0 {
+ // Output types are exlicitly set in front matter, use those.
+ outTypes, err := output.GetTypes(outputs...)
+ if err != nil {
+ p.s.Log.ERROR.Printf("Failed to resolve output types: %s", err)
+ } else {
+ p.outputTypes = outTypes
+ p.Params[loki] = outTypes
+ }
+
+ }
+ //p.Params[loki] = p.Keywords
case "publishdate", "pubdate":
p.PublishDate, err = cast.ToTimeE(v)
if err != nil {
@@ -1545,7 +1564,8 @@ func (p *Page) prepareLayouts() error {
if p.Kind == KindPage {
var layouts []string
if !p.IsRenderable() {
- self := "__" + p.TargetPath()
+ // TODO(bep) output
+ self := "__" + p.UniqueID()
_, err := p.s.Tmpl.GetClone().New(self).Parse(string(p.Content))
if err != nil {
return err