package generator import ( "bytes" "html/template" "strings" "mokhan.ca/xlgmokha/gitmal/internal/git" "mokhan.ca/xlgmokha/gitmal/internal/links" ) func readme(files []git.Blob, dirsSet, filesSet links.Set, params Params, rootHref string) template.HTML { var readmeHTML template.HTML md := createMarkdown() for _, b := range files { nameLower := strings.ToLower(b.FileName) if strings.HasPrefix(nameLower, "readme") && isMarkdown(b.Path) { data, isBin, err := git.BlobContent(params.Ref, b.Path, params.RepoDir) if err != nil || isBin { break } var buf bytes.Buffer if err := md.Convert(data, &buf); err != nil { break } // Fix links/images relative to README location htmlStr := links.Resolve( buf.String(), b.Path, rootHref, params.Ref.DirName(), dirsSet, filesSet, ) readmeHTML = template.HTML(htmlStr) break } } return readmeHTML }