Can you do what you want just by building a number of template.FuncMap values, and then to use them the user just calls t.Funcs(module1.FuncMap).Funcs(module2.FuncMap), adding the function maps they want that way?
I don't think you need your own custom version of the Template type. On Sun, Jul 9, 2017 at 8:15 PM Tong Sun <suntong...@gmail.com> wrote: > Thanks Matt. > > What I'm trying to do is to modulelize customized Go template functions, > say one module provide advanced regexp support, while another one > specialized in text formatting (vertical aligning, text folding in column, > etc), so on and so forth, *each of the module has a collection of their > own customized template functions*. > > The goal is to define such modules separately, as a building block, > provide them as libraries, and the end user can pick and choose what what, > and chain the customized template functions together using a series of > `.Funcs` calls. > > That's what I had in mind. Hope that I've express it clear enough. Thx. > > > On Sun, Jul 9, 2017 at 10:20 PM, Matt Harden <matt.har...@gmail.com> > wrote: > >> Why are you trying to do that? It feels like you're trying to do >> object-oriented programming in Go. Don't do that. What are you trying to >> achieve that the *template.Template type doesn't allow? >> >> If you just want a template with a FuncMap already applied, write a >> function to do that: >> >> func MyTemplate(name string) *template.Template { >> return template.New(name).Funcs(map[string]interface{}{"title": >> strings.Title}) >> } >> >> >> On Thu, Jul 6, 2017 at 8:01 PM Tong Sun <suntong...@gmail.com> wrote: >> >>> I'm trying my best to make the following Go template FuncMap example >>> works: >>> >>> https://play.golang.org/p/1-JYseLBUF >>> >>> If I comment out line 55, 56 and un-comment line 54, it works just fine. >>> >>> What I was trying to do is to un-comment line 31, and use DefaultFuncs() >>> or something alike to replace line 54. I.e., I'm trying to wrap >>> the myFuncMap into a callable function. >>> >>> How can I do that? Thx >>> >>> > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.