| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- // package web_render -- возвращает веб-рендер
- package web_render
- import (
- _ "embed"
- "strings"
- "wartank/pkg/kernel/kernel_log"
- . "wartank/server/lev0/types"
- )
- // ВебРендер -- простой веб-рендер
- type ВебРендер struct {
- лог *kernel_log.Логгер
- слвБлок map[string]string
- }
- //go:embed base.tmpl.html
- var стрБаза string
- //go:embed header.tmpl.html
- var стрЗаголовок string
- //go:embed footer.tmpl.html
- var стрПодвал string
- // НовВебРендер -- возвращает новый веб-рендер
- func НовВебРендер(шаблон string) *ВебРендер {
- лог := kernel_log.НовЛоггер("ВебРендер")
- сам := &ВебРендер{
- лог: лог,
- слвБлок: map[string]string{},
- }
- сам.слвБлок["{.header}"] = стрЗаголовок
- сам.слвБлок["{.main}"] = шаблон
- сам.слвБлок["{.footer}"] = стрПодвал
- _ = ИВебРендер(сам)
- return сам
- }
- // Получ -- возвращает результат рендеринга
- func (сам *ВебРендер) Получ() string {
- рез := стрБаза
- for ключ, блок := range сам.слвБлок {
- рез = strings.ReplaceAll(рез, ключ, блок)
- }
- return рез
- }
- // Доб -- добавляет блок замещения
- func (сам *ВебРендер) Доб(ключ, блок string) {
- сам.лог.Паника(ключ == "", "ВебРендер.Доб(): пустой ключ")
- сам.слвБлок[ключ] = блок
- }
|