On Thu, Jul 13, 2017 at 10:10 PM, Matt Harden wrote: > 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? >
Yeah, sure, but for writing a library, it'll not be that quite easy, because, I don't think you need your own custom version of the Template type. > Yes I do, please take a look at https://github.com/go-easygen/easygen/blob/afba5260a6b0281d49df0ebefd4439159317c411/EasyGen.go#L102-L111 (i.e., https://github.com/go-easygen/easygen/commit/afba5260a6b0281d49df0ebefd4439159317c411 ) I.e., I want the library works for both text and html templates, building a number of template.FuncMap values would be troublesome in this case, because in my mind the template.FuncMap can be either a text or html template, but not both. On Sun, Jul 9, 2017 at 8:15 PM Tong Sun 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.