|
|
@@ -58,7 +58,7 @@ const ( |
|
|
|
// entries == ctx.Repo.Commit.SubTree(ctx.Repo.TreePath).ListEntries() |
|
|
|
// |
|
|
|
// FIXME: There has to be a more efficient way of doing this |
|
|
|
func findReadmeFileInEntries(ctx *context.Context, entries []*git.TreeEntry) (string, *git.TreeEntry, error) { |
|
|
|
func findReadmeFileInEntries(ctx *context.Context, entries []*git.TreeEntry, tryWellKnownDirs bool) (string, *git.TreeEntry, error) { |
|
|
|
// Create a list of extensions in priority order |
|
|
|
// 1. Markdown files - with and without localisation - e.g. README.en-us.md or README.md |
|
|
|
// 2. Txt files - e.g. README.txt |
|
|
@@ -69,7 +69,7 @@ func findReadmeFileInEntries(ctx *context.Context, entries []*git.TreeEntry) (st |
|
|
|
|
|
|
|
docsEntries := make([]*git.TreeEntry, 3) // (one of docs/, .gitea/ or .github/) |
|
|
|
for _, entry := range entries { |
|
|
|
if entry.IsDir() { |
|
|
|
if tryWellKnownDirs && entry.IsDir() { |
|
|
|
// as a special case for the top-level repo introduction README, |
|
|
|
// fall back to subfolders, looking for e.g. docs/README.md, .gitea/README.zh-CN.txt, .github/README.txt, ... |
|
|
|
// (note that docsEntries is ignored unless we are at the root) |
|
|
@@ -130,7 +130,7 @@ func findReadmeFileInEntries(ctx *context.Context, entries []*git.TreeEntry) (st |
|
|
|
return "", nil, err |
|
|
|
} |
|
|
|
|
|
|
|
subfolder, readmeFile, err := findReadmeFileInEntries(ctx, childEntries) |
|
|
|
subfolder, readmeFile, err := findReadmeFileInEntries(ctx, childEntries, false) |
|
|
|
if err != nil && !git.IsErrNotExist(err) { |
|
|
|
return "", nil, err |
|
|
|
} |
|
|
@@ -164,7 +164,7 @@ func renderDirectory(ctx *context.Context, treeLink string) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
subfolder, readmeFile, err := findReadmeFileInEntries(ctx, entries) |
|
|
|
subfolder, readmeFile, err := findReadmeFileInEntries(ctx, entries, true) |
|
|
|
if err != nil { |
|
|
|
ctx.ServerError("findReadmeFileInEntries", err) |
|
|
|
return |