replace zxq.co/ripple/hanayo
This commit is contained in:
84
vendor/github.com/johnniedoe/contrib/renders/multitemplate/README.md
generated
vendored
Normal file
84
vendor/github.com/johnniedoe/contrib/renders/multitemplate/README.md
generated
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
This is a custom HTML render to support multi templates, ie. more than one `*template.Template`.
|
||||
|
||||
|
||||
|
||||
#Simple example
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"html/template"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/contrib/renders/multitemplate"
|
||||
)
|
||||
|
||||
func main() {
|
||||
router := gin.Default()
|
||||
router.HTMLRender = createMyRender()
|
||||
router.GET("/", func(c *gin.Context) {
|
||||
c.HTML(200, "index", data)
|
||||
})
|
||||
router.Run(":8080")
|
||||
}
|
||||
|
||||
func createMyRender() multitemplate.Render {
|
||||
r := multitemplate.New()
|
||||
r.AddFromFiles("index", "base.html", "base.html")
|
||||
r.AddFromFiles("article", "base.html", "article.html")
|
||||
r.AddFromFiles("login", "base.html", "login.html")
|
||||
r.AddFromFiles("dashboard", "base.html", "dashboard.html")
|
||||
|
||||
return r
|
||||
}
|
||||
```
|
||||
|
||||
##Advanced example
|
||||
|
||||
[https://elithrar.github.io/article/approximating-html-template-inheritance/](https://elithrar.github.io/article/approximating-html-template-inheritance/)
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"html/template"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/gin-gonic/contrib/renders/multitemplate"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func main() {
|
||||
router := gin.Default()
|
||||
router.HTMLRender = loadTemplates("./templates")
|
||||
router.GET("/", func(c *gin.Context) {
|
||||
c.HTML(200, "index.tmpl", gin.H{
|
||||
"title": "Welcome!",
|
||||
})
|
||||
})
|
||||
router.Run(":8080")
|
||||
}
|
||||
|
||||
func loadTemplates(templatesDir string) multitemplate.Render {
|
||||
r := multitemplate.New()
|
||||
|
||||
layouts, err := filepath.Glob(templatesDir + "layouts/*.tmpl")
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
|
||||
includes, err := filepath.Glob(templatesDir + "includes/*.tmpl")
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
|
||||
// Generate our templates map from our layouts/ and includes/ directories
|
||||
for _, layout := range layouts {
|
||||
files := append(includes, layout)
|
||||
r.Add(filepath.Base(layout), template.Must(template.ParseFiles(files...)))
|
||||
}
|
||||
return r
|
||||
}
|
||||
```
|
||||
|
Reference in New Issue
Block a user