Commit f85a241

Anton Medvedev <anton@medv.io>
2025-11-30 21:31:48
Refactor `readme` function to accept prebuilt `dirsSet` and `filesSet`
1 parent e2ffcf7
index.go
@@ -7,6 +7,7 @@ import (
 	"strings"
 
 	"github.com/antonmedv/gitmal/pkg/git"
+	"github.com/antonmedv/gitmal/pkg/links"
 	"github.com/antonmedv/gitmal/pkg/templates"
 )
 
@@ -27,6 +28,9 @@ func generateIndex(files []git.Blob, params Params) error {
 		return di
 	}
 
+	dirsSet := links.BuildDirSet(files)
+	filesSet := links.BuildFileSet(files)
+
 	for _, b := range files {
 		// Normalize to forward slash paths for URL construction
 		p := b.Path
@@ -92,7 +96,7 @@ func generateIndex(files []git.Blob, params Params) error {
 	}
 
 	rootHref := "./"
-	readmeHTML := readme(di.files, params, rootHref)
+	readmeHTML := readme(di.files, dirsSet, filesSet, params, rootHref)
 
 	err = templates.ListTemplate.ExecuteTemplate(f, "layout.gohtml", templates.ListParams{
 		LayoutParams: templates.LayoutParams{
list.go
@@ -12,6 +12,7 @@ import (
 	"sync"
 
 	"github.com/antonmedv/gitmal/pkg/git"
+	"github.com/antonmedv/gitmal/pkg/links"
 	"github.com/antonmedv/gitmal/pkg/progress_bar"
 	"github.com/antonmedv/gitmal/pkg/templates"
 )
@@ -33,6 +34,9 @@ func generateLists(files []git.Blob, params Params) error {
 		return di
 	}
 
+	dirsSet := links.BuildDirSet(files)
+	filesSet := links.BuildFileSet(files)
+
 	for _, b := range files {
 		// Normalize to forward slash paths for URL construction
 		p := b.Path
@@ -171,7 +175,7 @@ func generateLists(files []git.Blob, params Params) error {
 					}
 					rootHref := strings.Repeat("../", depth+2)
 
-					readmeHTML := readme(di.files, params, rootHref)
+					readmeHTML := readme(di.files, dirsSet, filesSet, params, rootHref)
 					var CSSMarkdown template.CSS
 					if readmeHTML != "" {
 						CSSMarkdown = cssMarkdown(params.Dark)
readme.go
@@ -9,12 +9,9 @@ import (
 	"github.com/antonmedv/gitmal/pkg/links"
 )
 
-func readme(files []git.Blob, params Params, rootHref string) template.HTML {
+func readme(files []git.Blob, dirsSet, filesSet links.Set, params Params, rootHref string) template.HTML {
 	var readmeHTML template.HTML
 
-	dirsSet := links.BuildDirSet(files)
-	filesSet := links.BuildFileSet(files)
-
 	md := createMarkdown(params.Style)
 
 	for _, b := range files {