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)
- Pass variable in rout HOT 1
- Register tauri:// scheme (or allow custom schemes upstream?)
- please support get parms from Transfer-Encoding:compress-deflate
- unexpected EOF during install HOT 1
- sse panic on fasthttphandler HOT 1
- Will it be made into a more comprehensive framework later on? HOT 4
- How does the gin close the log file? HOT 3
- Should we use url.PathUnescape instead of url.QueryUnescape when UnescapePathValues is true
- go get failed: The requested name is valid, but no data of the requested type was found HOT 1
- Attach Response Headers (or middlewares) to redirected requests (CORS issues) HOT 1
- Should context.GetRawData() also copy body to BodyBytesKey? HOT 3
- YAML BindBody should not parse JSON content HOT 1
- Gin do not support javascript ? HOT 5
- Does gin.Recovery() run before or after Group middleware? HOT 1
- How can i prevent a http connection to close HOT 3
- BasicAuth is not suitable for proxy auth
- Can't get status as expected from context.Status() HOT 1
- Gin Context implementation breaks context.Context contract HOT 4
- [Suggestions] Introducing an AI-powered robot to assist with daily issue and pull request (PR) tasks.
- Need c.JSON() response like behaviour for c.SSEvent() response for supporting first party clients like OpenAI SDK HOT 2
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.