# README
Gin template manager
Manages Golang templates and integrates with Gin framework.
Features:
- Layouts, including nested ('base', 'sub-base', 'sub-sub-base', ...)
- Caching
- Streaming
- Supports embedded assets
- Supports named routes with parameters (ex:
.Ref "eventByID" 1234
could be mapped to../events/1234
with proper escaping)
Check example directory.
The project is focusing on developer experience (DX) rather on the performance.
Goals are:
- make developing SSR applications on Go convenient and simple
- extend and integrate (not replace) with Gin framework
- keep it flexible
Inspirations: Hugo, Django, Rails
STATUS: proof-of-concept
Usage
Initialize manager
- Opt: filesystem:
templates := mananger.New(os.DirFS("path-to-dir"))
- Opt: assets (embedded):
templates := mananger.New(assets)
Link to Gin router
router.HTMLRender = templates
Render
gctx.HTML(http.StatusOK, "index.html", "params")
Example
templates := mananger.New(os.DirFS("path-to-dir"))
router := gin.Default()
router.HTMLRender = templates
router.GET("/", func(gctx *gin.Context) {
gctx.HTML(http.StatusOK, "index.html", "params")
})
// ...
Convention
Directory structure
@layout.html
- layout file
# Packages
No description provided by the author
# Functions
Cache compiled template.
Func adds templates functions to internal map.
FuncMap sets user-defined functions for templates.
New template manager which supports layouts and can be used as template engine for Gin.
NewLinks creates and installs alias handler.
Rel constructs relative path for provided absolute path.
Stream response directly to client.
View creates view context which could be used in template.
# Constants
No description provided by the author
# Structs
No description provided by the author
Manager of templates.
ViewContext is convenient wrapper around context and data which could be used in templates.
# Type aliases
No description provided by the author