package core import ( "fmt" ) // PreviewRender render HTML for the preview func (page *Page) PreviewRender(request *Request) (string, error) { warnings := []string{} doc, warnings, err := page.Build(&BuildOption{ SSR: true, AssetRoot: request.AssetRoot, }) data, _, err := page.Data(request) if err != nil { warnings = append(warnings, err.Error()) } // Add Frame Height if request.Referer != "" { doc.Selection.Find("body").AppendHtml(` `) } // Add Warning if len(warnings) > 0 { warningHTML := "
" for _, warning := range warnings { warningHTML += fmt.Sprintf("
%s
", warning) } warningHTML += "
" doc.Selection.Find("body").AppendHtml(warningHTML) } html, err := doc.Html() if err != nil { return "", err } parser := NewTemplateParser(data, nil) html, err = parser.Render(html) if err != nil { return "", err } // Warnings should be added after rendering if len(parser.errors) > 0 { for _, err := range parser.errors { warnings = append(warnings, err.Error()) } } return html, nil }