From ee5aa84f2a34e2a5d3250e01d54298732d77b51b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Sun, 30 Apr 2017 23:10:46 +0200 Subject: [PATCH] tpl/time: Make it a package that stands on its own See #3042 --- tpl/time/init.go | 45 ++++++++++++++++++++++++++++++ tpl/tplimpl/templateFuncster.go | 3 -- tpl/tplimpl/template_funcs.go | 4 +-- tpl/tplimpl/template_funcs_test.go | 2 -- 4 files changed, 46 insertions(+), 8 deletions(-) create mode 100644 tpl/time/init.go diff --git a/tpl/time/init.go b/tpl/time/init.go new file mode 100644 index 000000000..dfa2cbfe9 --- /dev/null +++ b/tpl/time/init.go @@ -0,0 +1,45 @@ +// 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 time + +import ( + "github.com/spf13/hugo/deps" + "github.com/spf13/hugo/tpl/internal" +) + +const name = "time" + +func init() { + f := func(d *deps.Deps) *internal.TemplateFuncsNamespace { + ctx := New() + + examples := [][2]string{ + {`{{ (time "2015-01-21").Year }}`, `2015`}, + } + + return &internal.TemplateFuncsNamespace{ + Name: name, + Context: func() interface{} { return ctx }, + Aliases: map[string]interface{}{ + "dateFormat": ctx.Format, + "now": ctx.Now, + "time": ctx.AsTime, + }, + Examples: examples, + } + + } + + internal.AddTemplateFuncsNamespace(f) +} diff --git a/tpl/tplimpl/templateFuncster.go b/tpl/tplimpl/templateFuncster.go index b90fb01c1..c7cba5d98 100644 --- a/tpl/tplimpl/templateFuncster.go +++ b/tpl/tplimpl/templateFuncster.go @@ -21,7 +21,6 @@ import ( bp "github.com/spf13/hugo/bufferpool" "github.com/spf13/hugo/deps" - "github.com/spf13/hugo/tpl/time" "github.com/spf13/hugo/tpl/transform" "github.com/spf13/hugo/tpl/urls" ) @@ -32,7 +31,6 @@ type templateFuncster struct { cachedPartials partialCache // Namespaces - time *time.Namespace transform *transform.Namespace urls *urls.Namespace @@ -45,7 +43,6 @@ func newTemplateFuncster(deps *deps.Deps) *templateFuncster { cachedPartials: partialCache{p: make(map[string]interface{})}, // Namespaces - time: time.New(), transform: transform.New(deps), urls: urls.New(deps), } diff --git a/tpl/tplimpl/template_funcs.go b/tpl/tplimpl/template_funcs.go index 7ebc14c04..0c2069603 100644 --- a/tpl/tplimpl/template_funcs.go +++ b/tpl/tplimpl/template_funcs.go @@ -36,6 +36,7 @@ import ( _ "github.com/spf13/hugo/tpl/os" _ "github.com/spf13/hugo/tpl/safe" _ "github.com/spf13/hugo/tpl/strings" + _ "github.com/spf13/hugo/tpl/time" ) // Get retrieves partial output from the cache based upon the partial name. @@ -95,14 +96,12 @@ func (t *templateFuncster) initFuncMap() { "absURL": t.urls.AbsURL, "absLangURL": t.urls.AbsLangURL, - "dateFormat": t.time.Format, "emojify": t.transform.Emojify, "highlight": t.transform.Highlight, "htmlEscape": t.transform.HTMLEscape, "htmlUnescape": t.transform.HTMLUnescape, "int": func(v interface{}) (int, error) { return cast.ToIntE(v) }, "markdownify": t.transform.Markdownify, - "now": t.time.Now, "partial": t.partial, "partialCached": t.partialCached, "plainify": t.transform.Plainify, @@ -114,7 +113,6 @@ func (t *templateFuncster) initFuncMap() { "relLangURL": t.urls.RelLangURL, "relref": t.urls.RelRef, "string": func(v interface{}) (string, error) { return cast.ToStringE(v) }, - "time": t.time.AsTime, "urlize": t.PathSpec.URLize, } diff --git a/tpl/tplimpl/template_funcs_test.go b/tpl/tplimpl/template_funcs_test.go index 539d50492..dad3d0342 100644 --- a/tpl/tplimpl/template_funcs_test.go +++ b/tpl/tplimpl/template_funcs_test.go @@ -146,7 +146,6 @@ relURL 1: {{ "http://gohugo.io/" | relURL }} relURL 2: {{ "mystyle.css" | relURL }} relURL 3: {{ mul 2 21 | relURL }} strings.TrimPrefix: {{ strings.TrimPrefix "Goodbye,, world!" "Goodbye," }} -time: {{ (time "2015-01-21").Year }} urlize: {{ "Bat Man" | urlize }} ` @@ -174,7 +173,6 @@ relURL 1: http://gohugo.io/ relURL 2: /hugo/mystyle.css relURL 3: /hugo/42 strings.TrimPrefix: , world! -time: 2015 urlize: bat-man `