|
@ -8,9 +8,11 @@ import ( |
|
|
"strings" |
|
|
"strings" |
|
|
|
|
|
|
|
|
"github.com/codegangsta/martini" |
|
|
"github.com/codegangsta/martini" |
|
|
// "github.com/slene/blackfriday"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"github.com/gogits/git" |
|
|
|
|
|
|
|
|
"github.com/gogits/gogs/models" |
|
|
"github.com/gogits/gogs/models" |
|
|
|
|
|
"github.com/gogits/gogs/modules/base" |
|
|
"github.com/gogits/gogs/modules/middleware" |
|
|
"github.com/gogits/gogs/modules/middleware" |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
@ -43,12 +45,14 @@ func Single(ctx *middleware.Context, params martini.Params) { |
|
|
params["branchname"] = "master" |
|
|
params["branchname"] = "master" |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// Directory and file list.
|
|
|
|
|
|
|
|
|
// Get tree path
|
|
|
treename := params["_1"] |
|
|
treename := params["_1"] |
|
|
|
|
|
|
|
|
|
|
|
// Directory and file list.
|
|
|
files, err := models.GetReposFiles(params["username"], params["reponame"], |
|
|
files, err := models.GetReposFiles(params["username"], params["reponame"], |
|
|
params["branchname"], treename) |
|
|
params["branchname"], treename) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
ctx.Handle(200, "repo.Single", err) |
|
|
|
|
|
|
|
|
ctx.Render.Error(404) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
ctx.Data["Username"] = params["username"] |
|
|
ctx.Data["Username"] = params["username"] |
|
@ -58,7 +62,7 @@ func Single(ctx *middleware.Context, params martini.Params) { |
|
|
// Branches.
|
|
|
// Branches.
|
|
|
brs, err := models.GetBranches(params["username"], params["reponame"]) |
|
|
brs, err := models.GetBranches(params["username"], params["reponame"]) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
ctx.Handle(200, "repo.Single", err) |
|
|
|
|
|
|
|
|
ctx.Render.Error(404) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
ctx.Data["Branches"] = brs |
|
|
ctx.Data["Branches"] = brs |
|
@ -73,22 +77,41 @@ func Single(ctx *middleware.Context, params martini.Params) { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// Latest commit.
|
|
|
|
|
|
|
|
|
// Get latest commit according username and repo name
|
|
|
commit, err := models.GetLastestCommit(params["username"], params["reponame"]) |
|
|
commit, err := models.GetLastestCommit(params["username"], params["reponame"]) |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
ctx.Handle(200, "repo.Single", err) |
|
|
|
|
|
|
|
|
ctx.Render.Error(404) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
ctx.Data["LatestCommit"] = commit |
|
|
ctx.Data["LatestCommit"] = commit |
|
|
|
|
|
|
|
|
// README.
|
|
|
|
|
|
// for _, f := range files {
|
|
|
|
|
|
// if f.Name == "README.md" {
|
|
|
|
|
|
// ctx.Data["ReadmeName"] = "README.md"
|
|
|
|
|
|
// ctx.Data["ReadmeContent"] =
|
|
|
|
|
|
// break
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
var readmeFile *models.RepoFile |
|
|
|
|
|
|
|
|
|
|
|
for _, f := range files { |
|
|
|
|
|
if !f.IsFile() { |
|
|
|
|
|
continue |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if len(f.Name) < 6 { |
|
|
|
|
|
continue |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if strings.ToLower(f.Name[:6]) == "readme" { |
|
|
|
|
|
readmeFile = f |
|
|
|
|
|
break |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if readmeFile != nil { |
|
|
|
|
|
// if file large than 1M not show it
|
|
|
|
|
|
if readmeFile.Size > 1024*1024 || readmeFile.Filemode != git.FileModeBlob { |
|
|
|
|
|
ctx.Data["FileIsLarge"] = true |
|
|
|
|
|
} else if blob, err := readmeFile.LookupBlob(); err != nil { |
|
|
|
|
|
ctx.Data["FileIsLarge"] = true |
|
|
|
|
|
} else { |
|
|
|
|
|
ctx.Data["ReadmeContent"] = string(base.RenderMarkdown(blob.Contents())) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
ctx.Data["Paths"] = Paths |
|
|
ctx.Data["Paths"] = Paths |
|
|
ctx.Data["Treenames"] = treenames |
|
|
ctx.Data["Treenames"] = treenames |
|
|