about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAlan Pearce2024-06-27 13:34:21 +0200
committerAlan Pearce2024-06-27 13:34:21 +0200
commit879cc25421c66a959ab801f0937b4264a461fc7e (patch)
tree29141c22ef84cfc36ba74302b14546c21dbef199
parentd07ec650aafcfe4692bba8f481bc3cb8204cd4b0 (diff)
downloadwebsite-879cc25421c66a959ab801f0937b4264a461fc7e.tar.lz
website-879cc25421c66a959ab801f0937b4264a461fc7e.tar.zst
website-879cc25421c66a959ab801f0937b4264a461fc7e.zip
use pointer to config in builder & templates
-rw-r--r--internal/atom/atom.go2
-rw-r--r--internal/builder/builder.go17
-rw-r--r--internal/builder/template.go4
-rw-r--r--internal/server/server.go2
-rw-r--r--internal/sitemap/sitemap.go4
-rw-r--r--internal/website/mux.go2
-rw-r--r--templates/error.templ2
-rw-r--r--templates/homepage.templ2
-rw-r--r--templates/list.templ4
-rw-r--r--templates/page.templ2
-rw-r--r--templates/post.templ2
-rw-r--r--templates/tags.templ2
12 files changed, 24 insertions, 21 deletions
diff --git a/internal/atom/atom.go b/internal/atom/atom.go
index a5965a4..19ad0d1 100644
--- a/internal/atom/atom.go
+++ b/internal/atom/atom.go
@@ -7,7 +7,7 @@ import (
 	"website/internal/config"
 )
 
-func MakeTagURI(config config.Config, specific string) string {
+func MakeTagURI(config *config.Config, specific string) string {
 	return "tag:" + config.OriginalDomain + "," + config.DomainStartDate + ":" + specific
 }
 
diff --git a/internal/builder/builder.go b/internal/builder/builder.go
index 4436151..177fa2f 100644
--- a/internal/builder/builder.go
+++ b/internal/builder/builder.go
@@ -86,7 +86,7 @@ func writerToFile(writer io.WriterTo, pathParts ...string) error {
 	return nil
 }
 
-func build(outDir string, config config.Config) (*Result, error) {
+func build(outDir string, config *config.Config) (*Result, error) {
 	log.Debug("output", "dir", outDir)
 	r := &Result{
 		Hashes: make([]string, 0),
@@ -252,16 +252,19 @@ func build(outDir string, config config.Config) (*Result, error) {
 	return r, nil
 }
 
-func BuildSite(ioConfig IOConfig) (*Result, error) {
-	config, err := config.GetConfig()
-	if err != nil {
-		return nil, errors.WithMessage(err, "could not get config")
+func BuildSite(ioConfig IOConfig, cfg *config.Config) (*Result, error) {
+	if cfg == nil {
+		var err error
+		cfg, err = config.GetConfig()
+		if err != nil {
+			return nil, errors.WithMessage(err, "could not get config")
+		}
 	}
-	config.InjectLiveReload = ioConfig.Development
+	cfg.InjectLiveReload = ioConfig.Development
 	compressFiles = !ioConfig.Development
 
 	templates.Setup()
 	loadCSS()
 
-	return build(ioConfig.Destination, *config)
+	return build(ioConfig.Destination, cfg)
 }
diff --git a/internal/builder/template.go b/internal/builder/template.go
index da45fb7..d46844d 100644
--- a/internal/builder/template.go
+++ b/internal/builder/template.go
@@ -66,7 +66,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.ParseFiles("templates/robots.tmpl")
 	if err != nil {
@@ -87,7 +87,7 @@ func renderRobotsTXT(config config.Config) (io.Reader, error) {
 
 func renderFeed(
 	title string,
-	config config.Config,
+	config *config.Config,
 	posts []content.Post,
 	specific string,
 ) (io.Reader, error) {
diff --git a/internal/server/server.go b/internal/server/server.go
index 00cc022..469485f 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -108,7 +108,7 @@ func serverHeaderHandler(wrappedHandler http.Handler) http.Handler {
 }
 
 func rebuild(builderConfig builder.IOConfig, config *cfg.Config) error {
-	r, err := builder.BuildSite(builderConfig)
+	r, err := builder.BuildSite(builderConfig, config)
 	if err != nil {
 		return errors.WithMessage(err, "could not build site")
 	}
diff --git a/internal/sitemap/sitemap.go b/internal/sitemap/sitemap.go
index a38e277..a45ebd9 100644
--- a/internal/sitemap/sitemap.go
+++ b/internal/sitemap/sitemap.go
@@ -13,9 +13,9 @@ type Sitemap struct {
 	Sitemap *sitemap.Sitemap
 }
 
-func New(cfg config.Config) *Sitemap {
+func New(cfg *config.Config) *Sitemap {
 	return &Sitemap{
-		config:  &cfg,
+		config:  cfg,
 		Sitemap: sitemap.New(),
 	}
 }
diff --git a/internal/website/mux.go b/internal/website/mux.go
index c286903..c125561 100644
--- a/internal/website/mux.go
+++ b/internal/website/mux.go
@@ -50,7 +50,7 @@ func (fn WrappedWebHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 	if err := fn.handler(w, r); err != nil {
 		if strings.Contains(r.Header.Get("Accept"), "text/html") {
 			w.WriteHeader(err.Code)
-			err := templates.Error(*fn.config, r.URL.Path, err).Render(r.Context(), w)
+			err := templates.Error(fn.config, r.URL.Path, err).Render(r.Context(), w)
 			if err != nil {
 				http.Error(w, err.Error(), http.StatusInternalServerError)
 			}
diff --git a/templates/error.templ b/templates/error.templ
index 2da7bef..c336ea9 100644
--- a/templates/error.templ
+++ b/templates/error.templ
@@ -6,7 +6,7 @@ import (
 	"strconv"
 )
 
-templ Error(config config.Config, path string, err *http.Error) {
+templ Error(config *config.Config, path string, err *http.Error) {
 	@Page(config, PageSettings{
 		Title: "Error",
 		Path:  path,
diff --git a/templates/homepage.templ b/templates/homepage.templ
index 0afbb2f..611a8ff 100644
--- a/templates/homepage.templ
+++ b/templates/homepage.templ
@@ -5,7 +5,7 @@ import (
 	"website/internal/content"
 )
 
-templ Homepage(config config.Config, posts []content.Post, content string) {
+templ Homepage(config *config.Config, posts []content.Post, content string) {
 	@Page(config, PageSettings{
 		Title: config.Title,
 		TitleAttrs: templ.Attributes{
diff --git a/templates/list.templ b/templates/list.templ
index 602c15c..94ccf5a 100644
--- a/templates/list.templ
+++ b/templates/list.templ
@@ -5,7 +5,7 @@ import (
 	"website/internal/content"
 )
 
-templ TagPage(config config.Config, tag string, posts []content.Post, path string) {
+templ TagPage(config *config.Config, tag string, posts []content.Post, path string) {
 	@Page(config, PageSettings{
 		Title: tag,
 		Path:  path,
@@ -24,7 +24,7 @@ templ TagPage(config config.Config, tag string, posts []content.Post, path strin
 	}
 }
 
-templ ListPage(config config.Config, posts []content.Post, path string) {
+templ ListPage(config *config.Config, posts []content.Post, path string) {
 	@Page(config, PageSettings{
 		Title: config.Title,
 		TitleAttrs: templ.Attributes{
diff --git a/templates/page.templ b/templates/page.templ
index 7869369..1dbd345 100644
--- a/templates/page.templ
+++ b/templates/page.templ
@@ -43,7 +43,7 @@ templ menuItem(item config.MenuItem) {
 	>{ item.Name }</a>
 }
 
-templ Page(site config.Config, page PageSettings) {
+templ Page(site *config.Config, page PageSettings) {
 	<!DOCTYPE html>
 	<html lang={ site.DefaultLanguage }>
 		<head>
diff --git a/templates/post.templ b/templates/post.templ
index 7b82584..c432e57 100644
--- a/templates/post.templ
+++ b/templates/post.templ
@@ -19,7 +19,7 @@ templ postDate(d time.Time) {
 	</time>
 }
 
-templ PostPage(config config.Config, post content.Post) {
+templ PostPage(config *config.Config, post content.Post) {
 	@Page(config, PageSettings{
 		Title: post.Title,
 		TitleAttrs: templ.Attributes{
diff --git a/templates/tags.templ b/templates/tags.templ
index 7218ca1..5e9878a 100644
--- a/templates/tags.templ
+++ b/templates/tags.templ
@@ -6,7 +6,7 @@ templ tagLink(tag string, attrs templ.Attributes) {
 	<a { attrs... } href={ templ.SafeURL("/tags/" + tag) }>#{ tag }</a>
 }
 
-templ TagsPage(config config.Config, title string, tags []string, path string) {
+templ TagsPage(config *config.Config, title string, tags []string, path string) {
 	@Page(config, PageSettings{
 		Title: title,
 		Path:  path,