Как сохранить #шаблон #GoLang #html/template в строку
создадим байтов (Буфер представляет собой буфер байтов переменной величины с методами чтения и записи. Нулевое значение для буфера - это пустой буфер, готовый к использованию.)
buf := new(bytes.Buffer)
объявим срез и заполним его файлам шаблона. В Срез можно добавить список файлов динамически
htmlFiles := []string{"./src/www/index.html", "./src/www/header.html", "./src/www/left_side.html"}
инициируем парсер. ParseFiles создает новый шаблон и анализирует определения шаблонов из названных файлов. Имя возвращаемого шаблона будет иметь (базовое) имя и (проанализированное объявленное в html файле через {{define "name_tpl"}}) содержимое первого файла. Должен быть хотя бы один файл. Если возникает ошибка, разбор останавливается, а возвращаемый * Шаблон равен нулю.
t, err := template.ParseFiles(htmlFiles...
if err != nil {
fmt.Println("Ошибка парсинга")
fmt.Printf("", err)
} // если ошибок не было запустим сборку шаблона
где t - объявленный ранее шаблон, buf - объявленный ранее буфер байтов в который сохраняется шаблон, "index" название шаблона, data - данные которые нужно вставить в шаблон
t.ExecuteTemplate(buf, "index", data) //
templateStringx := buf.String() // сохраним готовый html в строку
файл index.html
{{define "index"}} // Название шаблона
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta property="og:image" content="" />
<meta charset="utf-8">
<title>Заголовок документа</title>
<link rel="stylesheet" href="/static/style/style.css">
<script src="/static/js/js.js"></script>
</head>
<body >
<div id="main_wrapper" class="white">
{{template "left_side"}} // название вставляемого шаблона
<div class="content_wrapper" id="main_contet">
{{template "content"}} // название вставляемого шаблона
</div>
</div>
</body>
</html>
{{end}} // конец шаблона index