+ {{- .Readme -}}
+
+ {{- else -}}
+ {{ .HTMLReadme }}
+ {{- end -}}diff --git a/appview/pages/pages.go b/appview/pages/pages.go index 6d80f96d..7501a198 100644 --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -658,11 +658,15 @@ func (p *Pages) RepoCommit(w io.Writer, params RepoCommitParams) error { } type RepoTreeParams struct { - LoggedInUser *oauth.User - RepoInfo repoinfo.RepoInfo - Active string - BreadCrumbs [][]string - TreePath string + LoggedInUser *oauth.User + RepoInfo repoinfo.RepoInfo + Active string + BreadCrumbs [][]string + TreePath string + Readme string + ReadmeFileName string + HTMLReadme template.HTML + Raw bool types.RepoTreeResponse } @@ -689,6 +693,20 @@ func (r RepoTreeParams) TreeStats() RepoTreeStats { func (p *Pages) RepoTree(w io.Writer, params RepoTreeParams) error { params.Active = "overview" + + if params.ReadmeFileName != "" { + ext := filepath.Ext(params.ReadmeFileName) + switch ext { + case ".md", ".markdown", ".mdown", ".mkdn", ".mkd": + params.Raw = false + htmlString := p.rctx.RenderMarkdown(params.Readme) + sanitized := p.rctx.SanitizeDefault(htmlString) + params.HTMLReadme = template.HTML(sanitized) + default: + params.Raw = true + } + } + return p.executeRepo("repo/tree", w, params) } diff --git a/appview/pages/templates/repo/tree.html b/appview/pages/templates/repo/tree.html index 53d1487e..6c6e1795 100644 --- a/appview/pages/templates/repo/tree.html +++ b/appview/pages/templates/repo/tree.html @@ -88,3 +88,30 @@ {{end}} + +{{ define "repoAfter" }} + {{- if or .HTMLReadme .Readme -}} +
+ {{- .Readme -}}
+
+ {{- else -}}
+ {{ .HTMLReadme }}
+ {{- end -}}