Как расширить базовый шаблон на другие шаблоны - PullRequest
0 голосов
/ 28 марта 2020

Как расширить базовый файл html, например:

base. html

<!DOCTYPE html>
    <html>
    <head>
        <title>My Site</title>
    </head>
    <body>
   <!-- insert html here -->
    </body>
    </html>

И затем создайте страницу, которая наследует этот базовый шаблон, в Python Jinja2 Я бы сделал:

main. html

{{ extend "base.html" }}

main. html теперь имеет все HTML от базы. html. Тогда, пока я определил область в моем файле. html для вставки html, я мог бы сделать это из main. html, в Jinja2 это выглядело бы так:

base. html

    <!DOCTYPE html>
    <html>
    <head>
        <title>My Site</title>
    </head>
    <body>
   {{ block "body" }}

   {{ endblock }}
    </body>
    </html>

затем на главном. html

{{ extend "base.html" }}
{{ block "body" }}
<h1>Title</h1>
{{ endblock }}

Я не могу понять, как это сделать в любой из Go платформ. Кажется, все они говорят «определить» шаблон, а затем вставить HTML «компоненты» в него, я хочу go другим способом и определить базовый файл HTML и унаследовать его в моих других HTML файлах опираться, если это имеет смысл?

1 Ответ

2 голосов
/ 28 марта 2020

Используйте эти шаблоны.

base. html:

<!DOCTYPE html>
<html>
<head>
<title>My Site</title>
</head>
<body>
{{block "body" $}}{{end}}
</body>
</html>`

main. html:

{{define "body"}}<h1>Title</h1>{{end}}

Анализируйте шаблоны в порядке расширения используя стандартный шаблон библиотеки;

t := template.Must(template.ParseFiles(
     "base.html", 
     "main.html"))

Выполните полученный шаблон.

Запустите его на игровой площадке

...