Changeset 32 in code for trunk/zs_util.go
- Timestamp:
- Sep 2, 2015, 2:54:16 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/zs_util.go
r25 r32 4 4 "bytes" 5 5 "io" 6 "io/ioutil" 6 7 "log" 7 8 "os" … … 10 11 "strings" 11 12 ) 13 14 func makeFuncs(funcs Funcs, vars Vars) Funcs { 15 f := Funcs{} 16 for k, v := range funcs { 17 f[k] = v 18 } 19 for k, v := range vars { 20 f[k] = varFunc(v) 21 } 22 // Plugin functions 23 files, _ := ioutil.ReadDir(ZSDIR) 24 for _, file := range files { 25 if !file.IsDir() { 26 name := file.Name() 27 if !strings.HasSuffix(name, ".html") && !strings.HasSuffix(name, ".amber") { 28 f[renameExt(name, "", "")] = pluginFunc(name, vars) 29 } else { 30 f[renameExt(name, "", "")] = partialFunc(name, f, vars) 31 } 32 } 33 } 34 return f 35 } 12 36 13 37 func varFunc(s string) func() string { … … 28 52 } 29 53 54 func partialFunc(name string, funcs Funcs, vars Vars) func() string { 55 return func() string { 56 var err error 57 w := bytes.NewBuffer(nil) 58 if strings.HasSuffix(name, ".amber") { 59 err = buildAmber(filepath.Join(ZSDIR, name), w, funcs, vars) 60 } else { 61 err = buildHTML(filepath.Join(ZSDIR, name), w, funcs, vars) 62 } 63 if err != nil { 64 return name + ":" + err.Error() 65 } 66 return string(w.Bytes()) 67 } 68 } 69 30 70 func builtins() Funcs { 31 71 exec := func(cmd string, args ...string) string { … … 39 79 } 40 80 return Funcs{ 41 "exec": exec, 42 "zs": func(args ...string) string { 43 return exec(os.Args[0], args...) 81 "exec": exec, 82 "var": Var, 83 "lorem": Lorem, 84 "dateparse": DateParse, 85 "datefmt": DateFmt, 86 "wc": WordCount, 87 "ttr": TimeToRead, 88 "ls": List, 89 "...": func(args ...string) []string { 90 return append([]string{"..."}, args...) 91 }, 92 "sort": func(args ...string) []string { 93 94 return Sort(args...) 44 95 }, 45 96 }
Note:
See TracChangeset
for help on using the changeset viewer.