ParseGlob: What is the pattern to parse all templa

2019-05-11 19:03发布

Template.ParseGlob("*.html") //fetches all html files from current directory.
Template.ParseGlob("**/*.html") //Seems to only fetch at one level depth

Im not looking for a "Walk" solution. Just want to know if this is possible. I don't quite understand what "pattern" this expects. if i can get an explanation about the pattern used by ParseGlob that would be great too.

2条回答
一夜七次
2楼-- · 2019-05-11 19:42

So, since the ParseGlob can't load templates recursively we have to use path/filepath.Walk function. But this way gives more opportunities.

https://gist.github.com/logrusorgru/abd846adb521a6fb39c7405f32fec0cf

查看更多
smile是对你的礼貌
3楼-- · 2019-05-11 19:48

The code text/template/helper.go mentions

 // The pattern is processed by filepath.Glob and must match at least one file.

filepath.Glob() says that "the syntax of patterns is the same as in Match"

Match returns true if name matches the shell file name pattern.

The implementation of Match() doesn't seem to treat '**' differently, and only consider '*' as matching any sequence of non-Separator characters.
That would mean '**' is equivalent to '*', which in turn would explain why the match works at one level depth only.

查看更多
登录 后发表回答