diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-05-01 18:40:34 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-05-01 21:44:15 +0200 |
commit | 690b0f8ff5795318dfa3834a5a75d6623e7d934a (patch) | |
tree | 1112306f4c6fecc0966d880dec702c3804633deb /tpl/cast | |
parent | e2b067f0504ba41ef45786e2f83d7002bd13a7eb (diff) |
tpl: Add docshelper for template funcs
And fix some other minor related issues.
Updates #3418
Diffstat (limited to 'tpl/cast')
-rw-r--r-- | tpl/cast/docshelper.go | 41 | ||||
-rw-r--r-- | tpl/cast/init.go | 28 |
2 files changed, 58 insertions, 11 deletions
diff --git a/tpl/cast/docshelper.go b/tpl/cast/docshelper.go new file mode 100644 index 000000000..5220ca570 --- /dev/null +++ b/tpl/cast/docshelper.go @@ -0,0 +1,41 @@ +// Copyright 2017 The Hugo Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package cast + +import ( + "github.com/spf13/hugo/deps" + "github.com/spf13/hugo/docshelper" + "github.com/spf13/hugo/tpl/internal" +) + +// This file provides documentation support and is randomly put into this package. +func init() { + docsProvider := func() map[string]interface{} { + docs := make(map[string]interface{}) + d := &deps.Deps{} + + var namespaces []*internal.TemplateFuncsNamespace + + for _, nsf := range internal.TemplateFuncsNamespaceRegistry { + nf := nsf(d) + namespaces = append(namespaces, nf) + + } + + docs["funcs"] = namespaces + return docs + } + + docshelper.AddDocProvider("tpl", docsProvider) +} diff --git a/tpl/cast/init.go b/tpl/cast/init.go index acddaa91a..1c737ee58 100644 --- a/tpl/cast/init.go +++ b/tpl/cast/init.go @@ -24,21 +24,27 @@ func init() { f := func(d *deps.Deps) *internal.TemplateFuncsNamespace { ctx := New() - examples := [][2]string{ - {`{{ "1234" | int | printf "%T" }}`, `int`}, - {`{{ 1234 | string | printf "%T" }}`, `string`}, - } - - return &internal.TemplateFuncsNamespace{ + ns := &internal.TemplateFuncsNamespace{ Name: name, Context: func() interface{} { return ctx }, - Aliases: map[string]interface{}{ - "int": ctx.ToInt, - "string": ctx.ToString, - }, - Examples: examples, } + ns.AddMethodMapping(ctx.ToInt, + []string{"int"}, + [][2]string{ + {`{{ "1234" | int | printf "%T" }}`, `int`}, + }, + ) + + ns.AddMethodMapping(ctx.ToString, + []string{"string"}, + [][2]string{ + {`{{ 1234 | string | printf "%T" }}`, `string`}, + }, + ) + + return ns + } internal.AddTemplateFuncsNamespace(f) |