all repos — homestead @ cb0c1a6f85c4577b242228a7310d137bf461b30f

Code for my website

move style hashing to file layer

Alan Pearce
commit

cb0c1a6f85c4577b242228a7310d137bf461b30f

parent

0ee23f01ab6304fba37c1d2b66b16de9792e285c

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

changed files
M internal/builder/template.gointernal/builder/template/template.go
@@ -1,10 +1,9 @@
-package builder +package template import ( "bytes" "encoding/xml" "io" - "strings" "text/template" "go.alanpearce.eu/homestead/internal/atom"
@@ -44,7 +43,7 @@ func (q *QueryDocument) Find(selector string) *QuerySelection {
return &QuerySelection{q.Document.Find(selector)} } -func renderRobotsTXT(config *config.Config) (io.Reader, error) { +func RenderRobotsTXT(config *config.Config) (io.Reader, error) { r, w := io.Pipe() tpl, err := template.ParseFS(templates.Files, "robots.tmpl") if err != nil {
@@ -63,7 +62,7 @@
return r, nil } -func renderFeed( +func RenderFeed( title string, config *config.Config, posts []content.Post,
@@ -112,30 +111,21 @@
return buf, nil } -func renderFeedStyles(w io.Writer) error { - tpl, err := template.ParseFS(templates.Files, "feed-styles.xsl") - if err != nil { - return err - } - - esc := &strings.Builder{} - err = xml.EscapeText(esc, []byte(templates.CSS)) - +func CopyFile(filename string, w io.Writer) error { + f, err := templates.Files.Open(filename) if err != nil { return err } + defer f.Close() - err = tpl.Execute(w, map[string]interface{}{ - "css": esc.String(), - }) - if err != nil { + if _, err := io.Copy(w, f); err != nil { return err } return nil } -func getFeedStylesHash(r io.Reader) (string, error) { +func GetFeedStyleHash(r io.Reader) (string, error) { doc, err := xmlquery.Parse(r) if err != nil { return "", err
@@ -146,15 +136,15 @@ return "", errors.WithMessage(err, "could not parse XPath")
} style := xmlquery.QuerySelector(doc, expr) - return hash(style.InnerText()), nil + return Hash(style.InnerText()), nil } -func getHTMLStyleHash(r io.Reader) (string, error) { +func GetHTMLStyleHash(r io.Reader) (string, error) { doc, err := NewDocumentFromReader(r) if err != nil { return "", err } html := doc.Find("head > style").Text() - return hash(html), nil + return Hash(html), nil }