hugo

Fork of github.com/gohugoio/hugo with reverse pagination support

git clone git://git.shimmy1996.com/hugo.git

init.go (2446B)

    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 math
   15 
   16 import (
   17 	"github.com/gohugoio/hugo/deps"
   18 	"github.com/gohugoio/hugo/tpl/internal"
   19 )
   20 
   21 const name = "math"
   22 
   23 func init() {
   24 	f := func(d *deps.Deps) *internal.TemplateFuncsNamespace {
   25 		ctx := New()
   26 
   27 		ns := &internal.TemplateFuncsNamespace{
   28 			Name:    name,
   29 			Context: func(args ...any) (any, error) { return ctx, nil },
   30 		}
   31 
   32 		ns.AddMethodMapping(ctx.Add,
   33 			[]string{"add"},
   34 			[][2]string{
   35 				{"{{add 1 2}}", "3"},
   36 			},
   37 		)
   38 
   39 		ns.AddMethodMapping(ctx.Ceil,
   40 			nil,
   41 			[][2]string{
   42 				{"{{math.Ceil 2.1}}", "3"},
   43 			},
   44 		)
   45 
   46 		ns.AddMethodMapping(ctx.Div,
   47 			[]string{"div"},
   48 			[][2]string{
   49 				{"{{div 6 3}}", "2"},
   50 			},
   51 		)
   52 
   53 		ns.AddMethodMapping(ctx.Floor,
   54 			nil,
   55 			[][2]string{
   56 				{"{{math.Floor 1.9}}", "1"},
   57 			},
   58 		)
   59 
   60 		ns.AddMethodMapping(ctx.Log,
   61 			nil,
   62 			[][2]string{
   63 				{"{{math.Log 1}}", "0"},
   64 			},
   65 		)
   66 
   67 		ns.AddMethodMapping(ctx.Max,
   68 			nil,
   69 			[][2]string{
   70 				{"{{math.Max 1 2 }}", "2"},
   71 			},
   72 		)
   73 
   74 		ns.AddMethodMapping(ctx.Min,
   75 			nil,
   76 			[][2]string{
   77 				{"{{math.Min 1 2 }}", "1"},
   78 			},
   79 		)
   80 
   81 		ns.AddMethodMapping(ctx.Mod,
   82 			[]string{"mod"},
   83 			[][2]string{
   84 				{"{{mod 15 3}}", "0"},
   85 			},
   86 		)
   87 
   88 		ns.AddMethodMapping(ctx.ModBool,
   89 			[]string{"modBool"},
   90 			[][2]string{
   91 				{"{{modBool 15 3}}", "true"},
   92 			},
   93 		)
   94 
   95 		ns.AddMethodMapping(ctx.Mul,
   96 			[]string{"mul"},
   97 			[][2]string{
   98 				{"{{mul 2 3}}", "6"},
   99 			},
  100 		)
  101 
  102 		ns.AddMethodMapping(ctx.Pow,
  103 			[]string{"pow"},
  104 			[][2]string{
  105 				{"{{math.Pow 2 3}}", "8"},
  106 			},
  107 		)
  108 
  109 		ns.AddMethodMapping(ctx.Round,
  110 			nil,
  111 			[][2]string{
  112 				{"{{math.Round 1.5}}", "2"},
  113 			},
  114 		)
  115 
  116 		ns.AddMethodMapping(ctx.Sqrt,
  117 			nil,
  118 			[][2]string{
  119 				{"{{math.Sqrt 81}}", "9"},
  120 			},
  121 		)
  122 
  123 		ns.AddMethodMapping(ctx.Sub,
  124 			[]string{"sub"},
  125 			[][2]string{
  126 				{"{{sub 3 2}}", "1"},
  127 			},
  128 		)
  129 
  130 		return ns
  131 	}
  132 
  133 	internal.AddTemplateFuncsNamespace(f)
  134 }