From 9e6276dd4e6f4872f737c4ba67ff3fe14dc61a0b Mon Sep 17 00:00:00 2001 From: Anirudh Oppiliappan Date: Thu, 6 Mar 2025 10:30:50 +0200 Subject: [PATCH] clean up readmes --- appview/pages/pages.go | 17 ++++++++ appview/pages/templates/repo/index.html | 14 +++--- appview/pages/templates/repo/issues/new.html | 2 +- knotserver/routes.go | 46 ++++++-------------- readme.md | 2 + types/repo.go | 21 +++++---- 6 files changed, 53 insertions(+), 49 deletions(-) create mode 100644 readme.md diff --git a/appview/pages/pages.go b/appview/pages/pages.go index eb19450..772f08d 100644 --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -17,6 +17,7 @@ import ( chromahtml "github.com/alecthomas/chroma/v2/formatters/html" "github.com/alecthomas/chroma/v2/lexers" "github.com/alecthomas/chroma/v2/styles" + "github.com/microcosm-cc/bluemonday" "github.com/sotangled/tangled/appview/auth" "github.com/sotangled/tangled/appview/db" "github.com/sotangled/tangled/types" @@ -198,6 +199,8 @@ type RepoIndexParams struct { Active string TagMap map[string][]string types.RepoIndexResponse + HTMLReadme template.HTML + Raw bool } func (p *Pages) RepoIndexPage(w io.Writer, params RepoIndexParams) error { @@ -205,6 +208,20 @@ func (p *Pages) RepoIndexPage(w io.Writer, params RepoIndexParams) error { if params.IsEmpty { return p.executeRepo("repo/empty", w, params) } + + if params.ReadmeFileName != "" { + var htmlString string + ext := filepath.Ext(params.ReadmeFileName) + switch ext { + case ".md", ".markdown", ".mdown", ".mkdn", ".mkd": + htmlString = renderMarkdown(params.Readme) + default: + htmlString = string(params.Readme) + params.Raw = true + } + params.HTMLReadme = template.HTML(bluemonday.NewPolicy().Sanitize(htmlString)) + } + return p.executeRepo("repo/index", w, params) } diff --git a/appview/pages/templates/repo/index.html b/appview/pages/templates/repo/index.html index b977f33..f3d3145 100644 --- a/appview/pages/templates/repo/index.html +++ b/appview/pages/templates/repo/index.html @@ -114,7 +114,7 @@ {{ end }} -{{ define "commitLog" }} +{{ define "commitLog" }}