summaryrefslogtreecommitdiffstats
path: root/tpl/templates/init.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-07-31 11:35:38 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-07-31 13:28:15 +0200
commit0ba19c57f180c33b41c64335ea1d1c89335d34c0 (patch)
treedf2ca707664574f34eedb3234a781258a01a477c /tpl/templates/init.go
parent0afa2897a0cf90f4348929ef432202efddc183a0 (diff)
tpl/partials: Add templates.Exists
Fixes #5010
Diffstat (limited to 'tpl/templates/init.go')
-rw-r--r--tpl/templates/init.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/tpl/templates/init.go b/tpl/templates/init.go
new file mode 100644
index 000000000..a68809e65
--- /dev/null
+++ b/tpl/templates/init.go
@@ -0,0 +1,44 @@
+// Copyright 2018 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 partials
+
+import (
+ "github.com/gohugoio/hugo/deps"
+ "github.com/gohugoio/hugo/tpl/internal"
+)
+
+const name = "templates"
+
+func init() {
+ f := func(d *deps.Deps) *internal.TemplateFuncsNamespace {
+ ctx := New(d)
+
+ ns := &internal.TemplateFuncsNamespace{
+ Name: name,
+ Context: func(args ...interface{}) interface{} { return ctx },
+ }
+
+ ns.AddMethodMapping(ctx.Exists,
+ nil,
+ [][2]string{{`{{ if (templates.Exists "partials/header.html") }}Yes!{{ end }}`, `Yes!`},
+ {`{{ if not (templates.Exists "partials/doesnotexist.html") }}No!{{ end }}`, `No!`},
+ },
+ )
+
+ return ns
+
+ }
+
+ internal.AddTemplateFuncsNamespace(f)
+}