From 5bfea67a21260f7ea298083bc11015c7208524c3 Mon Sep 17 00:00:00 2001 From: Skyler Grey Date: Sat, 20 Sep 2025 12:19:35 +0000 Subject: [PATCH] appview/pages: show README files in tree listings Change-Id: lvyuwqkzxyzoynwvyxstruurwqvqkwmy We have README files displayed on the main page of a repository, but we don't do that on subfolders. In the previous commit, we returned these from the knotserver in the RepoTreeResponse. We now need to do something similar to what we do on the index page on the individual tree pages... Signed-off-by: Skyler Grey --- appview/pages/pages.go | 16 +++++++++++++++ appview/pages/templates/repo/tree.html | 27 ++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/appview/pages/pages.go b/appview/pages/pages.go index 9afd120..bfc459a 100644 --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -686,6 +686,8 @@ type RepoTreeParams struct { Active string BreadCrumbs [][]string TreePath string + HTMLReadme template.HTML + Raw bool types.RepoTreeResponse } @@ -712,6 +714,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 75bd7e7..664e42a 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 -}} +
+ {{- if .ReadmeFileName -}} +
+ {{ i "file-text" "w-4 h-4" "text-gray-600 dark:text-gray-400" }} + {{ .ReadmeFileName }} +
+ {{- end -}} +
+
{{- if .Raw -}}
+                            {{- .Readme -}}
+                        
+ {{- else -}} + {{ .HTMLReadme }} + {{- end -}}
+
+
+ {{- end -}} +{{ end }} -- 2.43.0