Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/reddec/gin-template-manager
Manages Golang templates and integrates with Gin framework
https://github.com/reddec/gin-template-manager
gin-contrib gin-gonic go-template golang views
Last synced: 16 days ago
JSON representation
Manages Golang templates and integrates with Gin framework
- Host: GitHub
- URL: https://github.com/reddec/gin-template-manager
- Owner: reddec
- License: mit
- Created: 2022-04-15T14:29:45.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-04-20T14:04:14.000Z (over 2 years ago)
- Last Synced: 2024-12-01T02:37:04.051Z (21 days ago)
- Topics: gin-contrib, gin-gonic, go-template, golang, views
- Language: Go
- Homepage:
- Size: 29.3 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
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](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 flexibleInspirations: 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
```go
templates := mananger.New(os.DirFS("path-to-dir"))router := gin.Default()
router.HTMLRender = templatesrouter.GET("/", func(gctx *gin.Context) {
gctx.HTML(http.StatusOK, "index.html", "params")
})
// ...
```## Convention
Directory structure
* `@layout.html` - layout file