Comments (1)
Here is my template loader if it helps... i have multiple subfolders and one master page. works well for me so far. please see if it helps
/*
Templates visitor for gin
*/
var (
templateFiles []string
rootPath string
templates *template.Template
templateDelims []string
)
func visit(path string, f os.FileInfo, err error) error {
if err != nil {
return err
}
// don't process folders themselves
if f.IsDir() {
/*if templates == nil {
templates = template.New(f.Name())
}else {
t, _ := templates.AddParseTree(f.Name(), templates.Tree)
templates = t
}*/
return nil
}
fileBytes, err := ioutil.ReadFile(path)
if err != nil {
log.Println("Failed reading file:", path)
return nil
}
fileStr := string(fileBytes)
templateName := strings.Replace(path[len(rootPath):],"\\","/",-1)
//templateName := path[len(rootPath):]
log.Printf("Processing template %s\n", templateName)
if templates == nil {
templates = template.New(templateName)
templates.Delims(templateDelims[0], templateDelims[1])
_, err = templates.Parse(fileStr)
} else {
_, err = templates.New(templateName).Parse(fileStr)
}
if err!=nil{
log.Printf("Error %s\n", err)
}
//log.Printf("******Processed template %s\n", templates.Name())
return nil
}
func LoadGinTemplates(path string, engine *gin.Engine, delims []string) {
templateFiles=make([]string,0)
templateDelims=make([]string,2)
templateDelims[0] = delims[0]
templateDelims[1] = delims[1]
rootPath = path
templates = template.New("")
templates.Delims(templateDelims[0], templateDelims[1])
filepath.Walk(path, filepath.WalkFunc(visit))
engine.HTMLRender = render.HTMLRender{
Template: templates,
}
}
from gin.
Related Issues (20)
- Unnecessary engine.With(opts...) call HOT 5
- Update of Swagger document
- Can UnmarshalParam support custom slice of string
- With RedirectFixedPath enabled, the request execution panics when a 404 is expected HOT 1
- RunQUIC does not connect via browser HOT 2
- Why do long requests block each other? HOT 3
- time_format tag not work with json tag HOT 1
- gin context with tracing not work HOT 2
- c.Redirect(http.StatusTemporaryRedirect, "") leads to open redirect vulnerability HOT 4
- Retry Middleware II
- How do you hide "TLS handshake errors" messages? HOT 2
- The stream is not response as a HOT 1
- runtime error: makeslice: cap out of range when HandleMethodNotAllowed=true and no request handler registered HOT 1
- Strange, the router is not registered HOT 3
- (gin.Context)File unable to stream to body
- Templates automatically replace escape problems HOT 1
- Load HTML templates from a separate module HOT 1
- CORS issue when trying to access an endpoint from a React application 😱 HOT 2
- ctx.Keys is overwritten by obj in methods like ctx.HTML HOT 2
- Gin SetMode not Passing Value to Function, Cause Panic Error On Minikube/Microk8s HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gin.