all repos — homestead @ 77da7a146e4becdb5924f94df39cd1be7afdf661

Code for my website

fix missing spacing in feed preview

Alan Pearce
commit

77da7a146e4becdb5924f94df39cd1be7afdf661

parent

d6344ad88c618984fabc4d59109813d2a746d97c

1 file changed, 11 insertions(+), 19 deletions(-)

changed files
M internal/builder/template.gointernal/builder/template.go
@@ -154,34 +154,26 @@ return strings.NewReader(doc.OutputXML(true)), nil
} func renderFeedStyles() (*strings.Reader, error) { - reader, err := loadTemplate("templates/feed-styles.xsl") + tpl, err := template.ParseFiles("templates/feed-styles.xsl") if err != nil { return nil, err } - defer func() { - _, err := reader.Seek(0, io.SeekStart) - if err != nil { - panic("could not reset reader: " + err.Error()) - } - }() - doc, err := xmlquery.Parse(reader) - if err != nil { - return nil, errors.Wrap(err, "could not parse XML") - } - expr, err := xpath.CompileWithNS("//xhtml:style", nsMap) + + esc := &strings.Builder{} + err = xml.EscapeText(esc, []byte(css)) if err != nil { - return nil, errors.Wrap(err, "could not parse XML") + return nil, err } - style := xmlquery.QuerySelector(doc, expr) - xmlquery.AddChild(style, &xmlquery.Node{ - Type: xmlquery.TextNode, - Data: css, + + w := &strings.Builder{} + err = tpl.Execute(w, map[string]interface{}{ + "css": esc.String(), }) - return strings.NewReader(doc.OutputXML(true)), nil + return strings.NewReader(w.String()), nil } -func getFeedStylesHash(r *strings.Reader) (string, error) { +func getFeedStylesHash(r io.Reader) (string, error) { doc, err := xmlquery.Parse(r) if err != nil { return "", err