Привет. У меня есть небольшой вопрос по шаблонах в Go. Я создал базовый шаблон HTML страницы layout.html и хочу использовать его как каркас для других страниц (index.html, terms.html), но динамически подставлять другой контент. Как правильно это сделать?
layout.html:
{{ define "layout" }}
<html>
<body>
{{ block "content" . }}{{ end }}
</body>
</html>
{{ end }}
на других страницах я переопределяю блок content так:
index.html:
{{ template "layout" . }}
{{ block "content" . }}
<h1>index</h1>
{{ end }}
terms.html:
{{ template "layout" . }}
{{ block "content" . }}
<h1>terms</h1>
{{ end }}
дальше в роутере генерирую страницу
router := gin.New()
router.LoadHTMLGlob("templates/*")
router.GET("/", func(context *gin.Context) {
context.HTML(http.StatusOK, "index.html", gin.H{})
})
router.GET("/terms", func(context *gin.Context) {
context.HTML(http.StatusOK, "terms.html", gin.H{})
})
Проблема в том, что это не работает - на всех страницах отображается один тот же текст из блока content. Роуты работают, layout подгружается, но в шаблонах не подставляется необходимый контент из блока content на разных страницах.
Спасибо