From 084f2fcb05141c6b3eac6190fb41b245bd3ac94f Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Tue, 14 Feb 2023 23:58:11 +0100 Subject: [PATCH] pass all html's through goquery --- main.go | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/main.go b/main.go index 48e31475..f1b9da26 100644 --- a/main.go +++ b/main.go @@ -153,15 +153,29 @@ func renderCategories(objs map[string]Object) error { // FIXME: embed templates // FIXME: parse templates once at start categoryIndexFilename := filepath.Join(categoryDir, "index.html") - f, err := os.Create(categoryIndexFilename) - if err != nil { + fmt.Printf("Write category Index file: %s\n", categoryIndexFilename) + + buf := bytes.NewBuffer(nil) + if err := tplCategoryIndex.Execute(buf, obj); err != nil { return err } - fmt.Printf("Write category Index file: %s\n", categoryIndexFilename) + // Sanitize HTML. This is not necessary, but allows to have content + // of all html files in same style. + { + query, err := goquery.NewDocumentFromReader(buf) + if err != nil { + return err + } - if err := tplCategoryIndex.Execute(f, obj); err != nil { - return err + html, err := query.Html() + if err != nil { + return err + } + + if err := os.WriteFile(categoryIndexFilename, []byte(html), 0644); err != nil { + return err + } } }