package templates
import (
"io/fs"
"go.alanpearce.eu/website/internal/config"
"net/url"
)
var (
css string
)
func Setup() {
bytes, err := fs.ReadFile(Files, "style.css")
if err != nil {
panic(err)
}
css = string(bytes)
}
type PageSettings struct {
Title string
Path string
TitleAttrs templ.Attributes
BodyAttrs templ.Attributes
}
func extendClasses(cs string, attrs templ.Attributes) string {
if extras, exists := attrs["class"]; exists {
return templ.Classes(cs, extras).String()
} else {
return cs
}
}
templ menuItem(item config.MenuItem) {
{ item.Name }
}
templ Page(site *config.Config, page PageSettings) {
{ page.Title }
@style(css)
Skip to main content
{ children... }
@counter(site, page.Path, page.Title)
if site.InjectLiveReload {
}
}
func mkURL(original config.URL, path string, title string) string {
ou := *original.URL
u := config.URL{
URL: &ou,
}
q := url.Values{}
q.Add("p", path)
q.Add("t", title)
u.RawQuery = q.Encode()
return u.String()
}
templ counter(config *config.Config, path string, title string) {
}
func style(css string) templ.Component {
return templ.ComponentFunc(func(ctx context.Context, w io.Writer) (err error) {
_, err = io.WriteString(w, "")
return
})
}