MCPcopy
hub / github.com/avelino/awesome-go / renderProjects

Function renderProjects

main.go:739–770  ·  view source on GitHub ↗
(projects []*Project)

Source from the content-addressed store, hash-verified

737}
738
739func renderProjects(projects []*Project) error {
740 for _, p := range projects {
741 projectDir := filepath.Join(outDir, p.CategorySlug, p.Slug)
742 if err := mkdirAll(projectDir); err != nil {
743 return fmt.Errorf("create project dir %s: %w", projectDir, err)
744 }
745
746 projectFile := filepath.Join(projectDir, "index.html")
747
748 buf := bytes.NewBuffer(nil)
749 if err := tpl.Lookup("project.tmpl.html").Execute(buf, p); err != nil {
750 return fmt.Errorf("render project %s: %w", p.Slug, err)
751 }
752
753 doc, err := goquery.NewDocumentFromReader(buf)
754 if err != nil {
755 return fmt.Errorf("goquery for project %s: %w", p.Slug, err)
756 }
757
758 html, err := doc.Html()
759 if err != nil {
760 return fmt.Errorf("html for project %s: %w", p.Slug, err)
761 }
762
763 if err := os.WriteFile(projectFile, []byte(html), 0644); err != nil {
764 return fmt.Errorf("write project file %s: %w", p.Slug, err)
765 }
766 }
767
768 fmt.Printf("Rendered %d project pages\n", len(projects))
769 return nil
770}

Callers 1

buildStaticSiteFunction · 0.85

Calls 1

mkdirAllFunction · 0.85

Tested by

no test coverage detected