diff --git a/src/main/scala/app/RepositoryViewerServlet.scala b/src/main/scala/app/RepositoryViewerServlet.scala index 1a66367..5e2cd3c 100644 --- a/src/main/scala/app/RepositoryViewerServlet.scala +++ b/src/main/scala/app/RepositoryViewerServlet.scala @@ -252,18 +252,7 @@ val dir = getBranchDir(owner, repository, branchName) val git = Git.open(dir) val latestRev = {if(path == ".") git.log else git.log.addPath(path)}.call.iterator.next - - html.files( - // current branch - branchName, - // repository - getRepositoryInfo(owner, repository), - // current path - if(path == ".") Nil else path.split("/").toList, - // latest commit - CommitInfo(latestRev.getName, latestRev.getCommitterIdent.getWhen, latestRev.getCommitterIdent.getName, latestRev.getShortMessage), - // file list - new File(dir, path).listFiles() + val files = new File(dir, path).listFiles() .filterNot{ file => file.getName == ".git" } .sortWith { (file1, file2) => (file1.isDirectory, file2.isDirectory) match { case (true , false) => true @@ -279,6 +268,26 @@ } } .flatten.toList + + // process README.md + val readme = files.find(_.name == "README.md").map { file => + import org.pegdown._ + new PegDownProcessor().markdownToHtml(FileUtils.readFileToString(new File(dir, path + "/" + file.name), "UTF-8")) + } + + html.files( + // current branch + branchName, + // repository + getRepositoryInfo(owner, repository), + // current path + if(path == ".") Nil else path.split("/").toList, + // latest commit + CommitInfo(latestRev.getName, latestRev.getCommitterIdent.getWhen, latestRev.getCommitterIdent.getName, latestRev.getShortMessage), + // file list + files, + // readme + readme ) } diff --git a/src/main/twirl/files.scala.html b/src/main/twirl/files.scala.html index 553ab57..b8ee247 100644 --- a/src/main/twirl/files.scala.html +++ b/src/main/twirl/files.scala.html @@ -1,4 +1,4 @@ -@(branch: String, repository: app.RepositoryInfo, pathList: List[String], latestCommit: app.CommitInfo, files: List[app.FileInfo])(implicit context: app.Context) +@(branch: String, repository: app.RepositoryInfo, pathList: List[String], latestCommit: app.CommitInfo, files: List[app.FileInfo], readme: Option[String])(implicit context: app.Context) @import context._ @import view.helpers @main(repository.owner+"/"+repository.name) { @@ -52,4 +52,11 @@ } + @readme.map { html => +
@Html(html) | +