Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-05-01 19:40:34 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-05-01 22:44:15 +0300
commit690b0f8ff5795318dfa3834a5a75d6623e7d934a (patch)
tree1112306f4c6fecc0966d880dec702c3804633deb /tpl/strings
parente2b067f0504ba41ef45786e2f83d7002bd13a7eb (diff)
tpl: Add docshelper for template funcs
And fix some other minor related issues. Updates #3418
Diffstat (limited to 'tpl/strings')
-rw-r--r--tpl/strings/init.go152
1 files changed, 108 insertions, 44 deletions
diff --git a/tpl/strings/init.go b/tpl/strings/init.go
index 8e3dfdef2..9f33bd176 100644
--- a/tpl/strings/init.go
+++ b/tpl/strings/init.go
@@ -24,54 +24,118 @@ func init() {
f := func(d *deps.Deps) *internal.TemplateFuncsNamespace {
ctx := New(d)
- examples := [][2]string{
- {`{{chomp "<p>Blockhead</p>\n" }}`, `<p>Blockhead</p>`},
- {
- `{{ findRE "[G|g]o" "Hugo is a static side generator written in Go." "1" }}`,
- `[go]`},
- {`{{ hasPrefix "Hugo" "Hu" }}`, `true`},
- {`{{ hasPrefix "Hugo" "Fu" }}`, `false`},
- {`{{lower "BatMan"}}`, `batman`},
- {
- `{{ replace "Batman and Robin" "Robin" "Catwoman" }}`,
- `Batman and Catwoman`},
- {
- `{{ "http://gohugo.io/docs" | replaceRE "^https?://([^/]+).*" "$1" }}`,
- `gohugo.io`},
- {`{{slicestr "BatMan" 0 3}}`, `Bat`},
- {`{{slicestr "BatMan" 3}}`, `Man`},
- {`{{substr "BatMan" 0 -3}}`, `Bat`},
- {`{{substr "BatMan" 3 3}}`, `Man`},
- {`{{title "Bat man"}}`, `Bat Man`},
- {`{{ trim "++Batman--" "+-" }}`, `Batman`},
- {`{{ "this is a very long text" | truncate 10 " ..." }}`, `this is a ...`},
- {`{{ "With [Markdown](/markdown) inside." | markdownify | truncate 14 }}`, `With <a href="/markdown">Markdown …</a>`},
- {`{{upper "BatMan"}}`, `BATMAN`},
- }
-
- return &internal.TemplateFuncsNamespace{
+ ns := &internal.TemplateFuncsNamespace{
Name: name,
Context: func() interface{} { return ctx },
- Aliases: map[string]interface{}{
- "chomp": ctx.Chomp,
- "countrunes": ctx.CountRunes,
- "countwords": ctx.CountWords,
- "findRE": ctx.FindRE,
- "hasPrefix": ctx.HasPrefix,
- "lower": ctx.ToLower,
- "replace": ctx.Replace,
- "replaceRE": ctx.ReplaceRE,
- "slicestr": ctx.SliceString,
- "split": ctx.Split,
- "substr": ctx.Substr,
- "title": ctx.Title,
- "trim": ctx.Trim,
- "truncate": ctx.Truncate,
- "upper": ctx.ToUpper,
- },
- Examples: examples,
}
+ ns.AddMethodMapping(ctx.Chomp,
+ []string{"chomp"},
+ [][2]string{
+ {`{{chomp "<p>Blockhead</p>\n" }}`, `<p>Blockhead</p>`},
+ },
+ )
+
+ ns.AddMethodMapping(ctx.CountRunes,
+ []string{"countrunes"},
+ [][2]string{},
+ )
+
+ ns.AddMethodMapping(ctx.CountWords,
+ []string{"countwords"},
+ [][2]string{},
+ )
+
+ ns.AddMethodMapping(ctx.FindRE,
+ []string{"findRE"},
+ [][2]string{
+ {
+ `{{ findRE "[G|g]o" "Hugo is a static side generator written in Go." "1" }}`,
+ `[go]`},
+ },
+ )
+
+ ns.AddMethodMapping(ctx.HasPrefix,
+ []string{"hasPrefix"},
+ [][2]string{
+ {`{{ hasPrefix "Hugo" "Hu" }}`, `true`},
+ {`{{ hasPrefix "Hugo" "Fu" }}`, `false`},
+ },
+ )
+
+ ns.AddMethodMapping(ctx.ToLower,
+ []string{"lower"},
+ [][2]string{
+ {`{{lower "BatMan"}}`, `batman`},
+ },
+ )
+
+ ns.AddMethodMapping(ctx.Replace,
+ []string{"replace"},
+ [][2]string{
+ {
+ `{{ replace "Batman and Robin" "Robin" "Catwoman" }}`,
+ `Batman and Catwoman`},
+ },
+ )
+
+ ns.AddMethodMapping(ctx.ReplaceRE,
+ []string{"replaceRE"},
+ [][2]string{},
+ )
+
+ ns.AddMethodMapping(ctx.SliceString,
+ []string{"slicestr"},
+ [][2]string{
+ {`{{slicestr "BatMan" 0 3}}`, `Bat`},
+ {`{{slicestr "BatMan" 3}}`, `Man`},
+ },
+ )
+
+ ns.AddMethodMapping(ctx.Split,
+ []string{"split"},
+ [][2]string{},
+ )
+
+ ns.AddMethodMapping(ctx.Substr,
+ []string{"substr"},
+ [][2]string{
+ {`{{substr "BatMan" 0 -3}}`, `Bat`},
+ {`{{substr "BatMan" 3 3}}`, `Man`},
+ },
+ )
+
+ ns.AddMethodMapping(ctx.Trim,
+ []string{"trim"},
+ [][2]string{
+ {`{{ trim "++Batman--" "+-" }}`, `Batman`},
+ },
+ )
+
+ ns.AddMethodMapping(ctx.Title,
+ []string{"title"},
+ [][2]string{
+ {`{{title "Bat man"}}`, `Bat Man`},
+ },
+ )
+
+ ns.AddMethodMapping(ctx.Truncate,
+ []string{"truncate"},
+ [][2]string{
+ {`{{ "this is a very long text" | truncate 10 " ..." }}`, `this is a ...`},
+ {`{{ "With [Markdown](/markdown) inside." | markdownify | truncate 14 }}`, `With <a href="/markdown">Markdown …</a>`},
+ },
+ )
+
+ ns.AddMethodMapping(ctx.ToUpper,
+ []string{"upper"},
+ [][2]string{
+ {`{{upper "BatMan"}}`, `BATMAN`},
+ },
+ )
+
+ return ns
+
}
internal.AddTemplateFuncsNamespace(f)