init.go - hugo - [fork] hugo port for 9front
(HTM) git clone https://git.drkhsh.at/hugo.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Submodules
(DIR) README
(DIR) LICENSE
---
init.go (1967B)
---
1 // Copyright 2017 The Hugo Authors. All rights reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 // http://www.apache.org/licenses/LICENSE-2.0
7 //
8 // Unless required by applicable law or agreed to in writing, software
9 // distributed under the License is distributed on an "AS IS" BASIS,
10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 // See the License for the specific language governing permissions and
12 // limitations under the License.
13
14 package urls
15
16 import (
17 "context"
18
19 "github.com/gohugoio/hugo/deps"
20 "github.com/gohugoio/hugo/tpl/internal"
21 )
22
23 const name = "urls"
24
25 func init() {
26 f := func(d *deps.Deps) *internal.TemplateFuncsNamespace {
27 ctx := New(d)
28
29 ns := &internal.TemplateFuncsNamespace{
30 Name: name,
31 Context: func(cctx context.Context, args ...any) (any, error) { return ctx, nil },
32 }
33
34 ns.AddMethodMapping(ctx.AbsURL,
35 []string{"absURL"},
36 [][2]string{},
37 )
38
39 ns.AddMethodMapping(ctx.AbsLangURL,
40 []string{"absLangURL"},
41 [][2]string{},
42 )
43 ns.AddMethodMapping(ctx.Ref,
44 []string{"ref"},
45 [][2]string{},
46 )
47 ns.AddMethodMapping(ctx.RelURL,
48 []string{"relURL"},
49 [][2]string{},
50 )
51 ns.AddMethodMapping(ctx.RelLangURL,
52 []string{"relLangURL"},
53 [][2]string{},
54 )
55 ns.AddMethodMapping(ctx.RelRef,
56 []string{"relref"},
57 [][2]string{},
58 )
59 ns.AddMethodMapping(ctx.URLize,
60 []string{"urlize"},
61 [][2]string{},
62 )
63
64 ns.AddMethodMapping(ctx.Anchorize,
65 []string{"anchorize"},
66 [][2]string{
67 {`{{ "This is a title" | anchorize }}`, `this-is-a-title`},
68 },
69 )
70
71 ns.AddMethodMapping(ctx.JoinPath,
72 nil,
73 [][2]string{
74 {`{{ urls.JoinPath "https://example.org" "foo" }}`, `https://example.org/foo`},
75 {`{{ urls.JoinPath (slice "a" "b") }}`, `a/b`},
76 },
77 )
78
79 return ns
80 }
81
82 internal.AddTemplateFuncsNamespace(f)
83 }