Files
opsxdb/server/internal/docs/render.go
T

26 lines
692 B
Go

package docs
import (
"html/template"
"strings"
)
func renderPage(h *Handler, p *Page) string {
tpl, err := template.New("doc").Parse(h.tpl)
if err != nil {
return "<!doctype html><meta charset=utf-8><title>error</title>template error: " + template.HTMLEscapeString(err.Error())
}
var sb strings.Builder
data := map[string]any{
"Manifest": h.manifest,
"Page": p,
"TOC": p.TOC,
"Content": template.HTML(p.HTML), //nolint:gosec —— 内容为内置受信 Markdown
}
if err := tpl.Execute(&sb, data); err != nil {
return "<!doctype html><meta charset=utf-8><title>error</title>render error: " + template.HTMLEscapeString(err.Error())
}
return sb.String()
}