all repos — homestead @ 0ee23f01ab6304fba37c1d2b66b16de9792e285c

Code for my website

builder: remove double-buffer whilst rendering feed styles

Alan Pearce
commit

0ee23f01ab6304fba37c1d2b66b16de9792e285c

parent

5193a9aa5b7f7784b9ca419afd6953020a8e53c0

2 files changed, 9 insertions(+), 14 deletions(-)

jump to
M internal/builder/builder.gointernal/builder/builder.go
@@ -174,23 +174,19 @@ if err := storage.Write("/atom.xml", buf); err != nil {
return nil, err } + buf.Reset() log.Debug("rendering feed styles") - feedStyles, err := renderFeedStyles() - if err != nil { + if err := renderFeedStyles(buf); err != nil { return nil, errors.WithMessage(err, "could not render feed styles") } - buf.Reset() - if _, err := feedStyles.WriteTo(buf); err != nil { - return nil, err - } if err := storage.Write("/feed-styles.xsl", buf); err != nil { return nil, err } - _, err = feedStyles.Seek(0, 0) + _, err = buf.Seek(0, 0) if err != nil { return nil, err } - h, err := getFeedStylesHash(feedStyles) + h, err := getFeedStylesHash(buf) if err != nil { return nil, err }
M internal/builder/template.gointernal/builder/template.go
@@ -112,28 +112,27 @@
return buf, nil } -func renderFeedStyles() (*strings.Reader, error) { +func renderFeedStyles(w io.Writer) error { tpl, err := template.ParseFS(templates.Files, "feed-styles.xsl") if err != nil { - return nil, err + return err } esc := &strings.Builder{} err = xml.EscapeText(esc, []byte(templates.CSS)) if err != nil { - return nil, err + return err } - w := &strings.Builder{} err = tpl.Execute(w, map[string]interface{}{ "css": esc.String(), }) if err != nil { - return nil, err + return err } - return strings.NewReader(w.String()), nil + return nil } func getFeedStylesHash(r io.Reader) (string, error) {