Refactor the code more to make it esier to work on.

master
Zed A. Shaw 4 weeks ago
parent 08f90ec9f4
commit c0b4d68a9a
  1. 2
      config/loader.go
  2. 2
      example/ssgod.toml
  3. 28
      main.go

@ -7,7 +7,7 @@ import (
type config struct { type config struct {
Views string `toml:"views"` Views string `toml:"views"`
Layouts string `toml:"layouts"` Layout string `toml:"layout"`
Target string `toml:"target"` Target string `toml:"target"`
} }

@ -1,3 +1,3 @@
views = "./pages" views = "./pages"
layouts = "layouts/main" layout = "layouts/main"
target = "./public" target = "./public"

@ -18,13 +18,10 @@ func Fail(err error, format string, v ...any) error {
return err return err
} }
func RenderPages(pages_path string, layout string, target string) {
log.Printf("LAYOUT IS: %v", layout)
engine := html.New(pages_path, ".html")
engine.Load()
err := filepath.WalkDir(pages_path, func ProcessDirEntry(engine *html.Engine, path string, d fs.DirEntry, err error) error {
func(path string, d fs.DirEntry, err error) error { settings := config.Settings
if !d.IsDir() { if !d.IsDir() {
if err != nil { return Fail(err, "path: %s", path); } if err != nil { return Fail(err, "path: %s", path); }
@ -39,8 +36,8 @@ func RenderPages(pages_path string, layout string, target string) {
ext := filepath.Ext(source_name) ext := filepath.Ext(source_name)
template_name, found := strings.CutSuffix(source_name, ext) template_name, found := strings.CutSuffix(source_name, ext)
if found && ext == ".html" && template_name != layout { if found && ext == ".html" && template_name != settings.Layout {
prefixed_path := append([]string{target}, split_path...) prefixed_path := append([]string{settings.Target}, split_path...)
target_path := filepath.Join(prefixed_path...) target_path := filepath.Join(prefixed_path...)
_, err := os.Stat(target_path) _, err := os.Stat(target_path)
@ -59,7 +56,7 @@ func RenderPages(pages_path string, layout string, target string) {
// generate a data-testid for all pages based on template name // generate a data-testid for all pages based on template name
page_id := strings.ReplaceAll(template_name, "/", "-") + "-page" page_id := strings.ReplaceAll(template_name, "/", "-") + "-page"
err = engine.Render(out, template_name, fiber.Map{"PageId": page_id}, layout) err = engine.Render(out, template_name, fiber.Map{"PageId": page_id}, settings.Layout)
if err != nil { return Fail(err, "failed to render %s", path) } if err != nil { return Fail(err, "failed to render %s", path) }
log.Printf("RENDER: %s -> %s", template_name, target_path) log.Printf("RENDER: %s -> %s", template_name, target_path)
@ -68,6 +65,15 @@ func RenderPages(pages_path string, layout string, target string) {
} }
return nil return nil
}
func RenderPages() {
engine := html.New(config.Settings.Views, ".html")
engine.Load()
err := filepath.WalkDir(config.Settings.Views,
func (path string, d fs.DirEntry, err error) error {
return ProcessDirEntry(engine, path, d, err)
}) })
if err != nil { log.Fatalf("can't walk content") } if err != nil { log.Fatalf("can't walk content") }
@ -76,7 +82,7 @@ func RenderPages(pages_path string, layout string, target string) {
func main() { func main() {
config.Load("ssgod.toml") config.Load("ssgod.toml")
log.Printf("views=%s, layouts=%s, target=%s", log.Printf("views=%s, layouts=%s, target=%s",
config.Settings.Views, config.Settings.Layouts, config.Settings.Target) config.Settings.Views, config.Settings.Layout, config.Settings.Target)
RenderPages(config.Settings.Views, config.Settings.Layouts, config.Settings.Target) RenderPages()
} }

Loading…
Cancel
Save