Small refactoring for README handling (#2556)

This commit is contained in:
Naoki Takezoe
2020-09-20 03:43:43 +09:00
committed by GitHub
parent a46aa2c61c
commit d4e01d631f
4 changed files with 14 additions and 11 deletions

View File

@@ -938,10 +938,10 @@ trait RepositoryViewerControllerBase extends ControllerBase {
context.settings.repositoryViewer.maxFiles
)
val parentPath = if (path == ".") Nil else path.split("/").toList
// process README.md or README.markdown
val readme = files
// process README
val readme = files // files should be sorted alphabetically.
.find { file =>
!file.isDirectory && readmeFiles.contains(file.name.toLowerCase)
!file.isDirectory && RepositoryService.readmeFiles.contains(file.name.toLowerCase)
}
.map { file =>
val path = (file.name :: parentPath.reverse).reverse

View File

@@ -23,9 +23,12 @@ trait ApiRepositoryContentsControllerBase extends ControllerBase {
Using.resource(Git.open(getRepositoryDir(params("owner"), params("repository")))) {
git =>
val refStr = params.getOrElse("ref", repository.repository.defaultBranch)
val fileList = getFileList(git, refStr, ".", maxFiles = context.settings.repositoryViewer.maxFiles)
fileList.map(f => f.name).find(p => readmeFiles.map(_.toLowerCase).contains(p.toLowerCase)) match {
case Some(x) => getContents(repository = repository, path = x, refStr = refStr, ignoreCase = true)
val files = getFileList(git, refStr, ".", maxFiles = context.settings.repositoryViewer.maxFiles)
files // files should be sorted alphabetically.
.find { file =>
!file.isDirectory && RepositoryService.readmeFiles.contains(file.name.toLowerCase)
} match {
case Some(x) => getContents(repository = repository, path = x.name, refStr = refStr, ignoreCase = true)
case _ => NotFound()
}
}

View File

@@ -116,11 +116,6 @@ trait RepositoryCommitFileService {
}
}
def readmeFiles: Seq[String] =
PluginRegistry().renderableExtensions.map { extension =>
s"readme.${extension}"
} ++ Seq("readme.txt", "readme")
private def _commitFile(
repository: RepositoryService.RepositoryInfo,
branch: String,

View File

@@ -839,4 +839,9 @@ object RepositoryService {
} else None
def openRepoUrl(openUrl: String)(implicit context: Context): String =
s"github-${context.platform}://openRepo/${openUrl}"
def readmeFiles: Seq[String] =
PluginRegistry().renderableExtensions.map { extension =>
s"readme.${extension}"
} ++ Seq("readme.txt", "readme")
}