Search code examples
gorendermartini

Martini render shows {{ yield }} on page


I try to render my page in martini layout.html

<!DOCTYPE html>
<html lang="en">
    <head>...</head>
    <header>...</header>
    {{ yield }}
    <footer>...</footer>
</html>

index.html

<main>
    <h1>Hello</h1>
</main>

Render options:

m.Use(render.Renderer(render.Options{
        Directory:  "templates",                
        Layout:     "layout", 
        Extensions: []string{".tmpl", ".html"},
        Delims:     render.Delims{"{[{", "}]}"}, 
        Charset:    "UTF-8",  
        IndentJSON: true, 
}))

try show page:

rnd.HTML(200, "edit", nil)

run app and see my page:

All code from layout.html is processed normaly, but the {{ yield }} string stays without difference.


Solution

  • You set your delimiters to "{[{" and "}]}", but then uses "{{" and "}}".

    Either use Delims: render.Delims{"{{", "}}"}, or change your template to use {[{ yield }]}