Предположим, что у меня есть буксирные текстовые файлы (идут шаблоны):Определение шаблона го верхнего уровня
child.tmpl
TEXT1
Hello {{ . }}
top.tmpl
TEXT2
{{ template "child.tmpl" "argument"}}
в child.tmpl
template размещается в top.tmpl
Типичная программа для анализа их будет:
package main
import (
"os"
"text/template"
)
func main() {
t := template.Must(template.ParseFiles("child.tmpl", "top.tmpl")
t.ExecuteTemplate(os.Stdout, "top.tmpl", nil)
}
Есть ли метод передать шаблон для встраивания в шаблоне верхнего уровня в качестве аргумента, используя {{ . }}
обозначения? что-то вроде {{ template {{.}} "argument" }}
- более общего плана, что это лучший способ, чтобы определить шаблон макета, так что я могу использовать его как шаблон верхнего уровня для нескольких шаблонов детей?
Крысы. Я надеялся на то же самое. Следующий kludge не работал: {{with $ x: = .BodyPage}} {{template $ x .Content}} {{end}} Поскольку я предварительно скомбинировал шаблоны при запуске программы, я закончил создавая 'map [string] * template.Template', который также не идеален. Я исследую метод пользовательских функций, хотя, как я думаю об этом, он будет ** либо ** в конечном итоге загружать файлы с диска во время выполнения и разбора, либо в итоге получится карта предварительно скомпилированных шаблонов. – Colselaw