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 context.settings.repositoryViewer.maxFiles
) )
val parentPath = if (path == ".") Nil else path.split("/").toList val parentPath = if (path == ".") Nil else path.split("/").toList
// process README.md or README.markdown // process README
val readme = files val readme = files // files should be sorted alphabetically.
.find { file => .find { file =>
!file.isDirectory && readmeFiles.contains(file.name.toLowerCase) !file.isDirectory && RepositoryService.readmeFiles.contains(file.name.toLowerCase)
} }
.map { file => .map { file =>
val path = (file.name :: parentPath.reverse).reverse 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")))) { Using.resource(Git.open(getRepositoryDir(params("owner"), params("repository")))) {
git => git =>
val refStr = params.getOrElse("ref", repository.repository.defaultBranch) val refStr = params.getOrElse("ref", repository.repository.defaultBranch)
val fileList = getFileList(git, refStr, ".", maxFiles = context.settings.repositoryViewer.maxFiles) val files = getFileList(git, refStr, ".", maxFiles = context.settings.repositoryViewer.maxFiles)
fileList.map(f => f.name).find(p => readmeFiles.map(_.toLowerCase).contains(p.toLowerCase)) match { files // files should be sorted alphabetically.
case Some(x) => getContents(repository = repository, path = x, refStr = refStr, ignoreCase = true) .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() 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( private def _commitFile(
repository: RepositoryService.RepositoryInfo, repository: RepositoryService.RepositoryInfo,
branch: String, branch: String,

View File

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