Mercurial > yakumo_izuru > aya
diff zs.go @ 31:b2f491299cee draft
dead end with template functions
author | zaitsev.serge |
---|---|
date | Wed, 02 Sep 2015 14:54:16 +0000 |
parents | 526ba3c717ba |
children | 75822e38c3e0 |
line wrap: on
line diff
--- a/zs.go Sun Aug 30 21:16:51 2015 +0000 +++ b/zs.go Wed Sep 02 14:54:16 2015 +0000 @@ -67,24 +67,7 @@ // Use standard Go templates func render(s string, funcs Funcs, vars Vars) (string, error) { - f := Funcs{} - for k, v := range funcs { - f[k] = v - } - for k, v := range vars { - f[k] = varFunc(v) - } - // Plugin functions - files, _ := ioutil.ReadDir(ZSDIR) - for _, file := range files { - if !file.IsDir() { - name := file.Name() - if !strings.HasSuffix(name, ".html") && !strings.HasSuffix(name, ".amber") { - f[strings.TrimSuffix(name, filepath.Ext(name))] = pluginFunc(name, vars) - } - } - } - + f := makeFuncs(funcs, vars) tmpl, err := template.New("").Funcs(template.FuncMap(f)).Parse(s) if err != nil { return "", err @@ -106,7 +89,7 @@ if err != nil { return err } - v["content"] = string(blackfriday.MarkdownBasic([]byte(content))) + v["content"] = string(blackfriday.MarkdownCommon([]byte(content))) if w == nil { out, err := os.Create(filepath.Join(PUBDIR, renameExt(path, "", ".html"))) if err != nil { @@ -156,7 +139,7 @@ for k, v := range vars { data[k] = v } - for k, v := range funcs { + for k, v := range makeFuncs(funcs, Vars{}) { data[k] = v } @@ -302,17 +285,23 @@ case "watch": buildAll(true) case "var": - fmt.Println(Var(args)) + fmt.Println(Var(args...)) case "lorem": - fmt.Println(Lorem(args)) + fmt.Println(Lorem(args...)) case "dateparse": - fmt.Println(DateParse(args)) + fmt.Println(DateParse(args...)) case "datefmt": - fmt.Println(DateFmt(args)) + fmt.Println(DateFmt(args...)) case "wc": - fmt.Println(WordCount(args)) - case "timetoread": - fmt.Println(TimeToRead(args)) + fmt.Println(WordCount(args...)) + case "ttr": + fmt.Println(TimeToRead(args...)) + case "ls": + fmt.Println(strings.Join(List(args...), "\n")) + case "sort": + fmt.Println(strings.Join(Sort(args...), "\n")) + case "exec": + // TODO default: err := run(path.Join(ZSDIR, cmd), args, globals(), os.Stdout) if err != nil {