all repos — homestead @ 6ea2cb1bf25466e9dff577d605b4f103f1294723

Code for my website

config: convert base_url to a URL type

Alan Pearce
commit

6ea2cb1bf25466e9dff577d605b4f103f1294723

parent

2717b6b462724817bbecbda8ba2db934baf14f1d

2 files changed, 13 insertions(+), 3 deletions(-)

jump to
M cmd/build/build.gocmd/build/build.go
@@ -334,7 +334,7 @@ defer reader.Close()
doc, err := xmlquery.Parse(reader) feed := doc.SelectElement("feed") feed.SelectElement("title").FirstChild.Data = title - feed.SelectElement("link").SetAttr("href", config.BaseURL) + feed.SelectElement("link").SetAttr("href", config.BaseURL.String()) feed.SelectElement("id").FirstChild.Data = MakeTagURI(config, specific) datetime, err := posts[0].Date.UTC().MarshalText() feed.SelectElement("updated").FirstChild.Data = string(datetime)
@@ -342,7 +342,7 @@ tpl := feed.SelectElement("entry")
xmlquery.RemoveFromTree(tpl) for _, post := range posts { - fullURL, err := url.JoinPath(config.BaseURL, post.URL) + fullURL, err := url.JoinPath(config.BaseURL.String(), post.URL) if err != nil { return nil, err }
M internal/config/config.gointernal/config/config.go
@@ -3,6 +3,7 @@
import ( "io/fs" "log/slog" + "net/url" "github.com/BurntSushi/toml" "github.com/pkg/errors"
@@ -18,9 +19,18 @@ Name string
URL string `toml:"url"` } +type URL struct { + *url.URL +} + +func (u *URL) UnmarshalText(text []byte) (err error) { + u.URL, err = url.Parse(string(text)) + return err +} + type Config struct { DefaultLanguage string `toml:"default_language"` - BaseURL string `toml:"base_url"` + BaseURL URL `toml:"base_url"` RedirectOtherHostnames bool `toml:"redirect_other_hostnames"` Title string Email string