diff options
Diffstat (limited to 'routers/repo/view.go')
-rw-r--r-- | routers/repo/view.go | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/routers/repo/view.go b/routers/repo/view.go index 78a305aa28..8739c139d9 100644 --- a/routers/repo/view.go +++ b/routers/repo/view.go @@ -56,18 +56,31 @@ func renderDirectory(ctx *context.Context, treeLink string) { return } - var readmeFile *git.Blob + // 3 for the extensions in exts[] in order + // the last one is for a readme that doesn't + // strictly match an extension + var readmeFiles [4]*git.Blob + var exts = []string{".md", ".txt", ""} // sorted by priority for _, entry := range entries { if entry.IsDir() { continue } - if !markup.IsReadmeFile(entry.Name()) { - continue + for i, ext := range exts { + if markup.IsReadmeFile(entry.Name(), ext) { + readmeFiles[i] = entry.Blob() + } } - readmeFile = entry.Blob() - if markup.Type(entry.Name()) != "" { + if markup.IsReadmeFile(entry.Name()) { + readmeFiles[3] = entry.Blob() + } + } + + var readmeFile *git.Blob + for _, f := range readmeFiles { + if f != nil { + readmeFile = f break } } |