From 97dfcc057575820a2688f7087ba7a0e4f7552d4c Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Mon, 10 Feb 2025 15:58:59 +0800 Subject: render_readme: Abstract away README rendering --- render_readme.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 render_readme.go (limited to 'render_readme.go') diff --git a/render_readme.go b/render_readme.go new file mode 100644 index 0000000..21e0aeb --- /dev/null +++ b/render_readme.go @@ -0,0 +1,28 @@ +package main + +import ( + "bytes" + "html/template" + + "github.com/go-git/go-git/v5/plumbing/object" + "github.com/microcosm-cc/bluemonday" + "github.com/yuin/goldmark" +) + + +func render_readme_at_tree(tree *object.Tree) any { + readme_file, err := tree.File("README.md") + if err != nil { + return "There is no README available." + } + readme_file_contents, err := readme_file.Contents() + if err != nil { + return "Unable to fetch contents of README: " + err.Error() + } + var readme_rendered_unsafe bytes.Buffer + err = goldmark.Convert([]byte(readme_file_contents), &readme_rendered_unsafe) + if err != nil { + return "Unable to render README: " + err.Error() + } + return template.HTML(bluemonday.UGCPolicy().SanitizeBytes(readme_rendered_unsafe.Bytes())) +} -- cgit v1.2.3