aboutsummaryrefslogtreecommitdiff
path: root/readme_to_html.go
diff options
context:
space:
mode:
Diffstat (limited to 'readme_to_html.go')
-rw-r--r--readme_to_html.go45
1 files changed, 0 insertions, 45 deletions
diff --git a/readme_to_html.go b/readme_to_html.go
deleted file mode 100644
index 6d3f6f3..0000000
--- a/readme_to_html.go
+++ /dev/null
@@ -1,45 +0,0 @@
-// SPDX-License-Identifier: AGPL-3.0-only
-// SPDX-FileCopyrightText: Copyright (c) 2025 Runxi Yu <https://runxiyu.org>
-
-package main
-
-import (
- "bytes"
- "html"
- "html/template"
- "strings"
-
- "github.com/microcosm-cc/bluemonday"
- "github.com/niklasfasching/go-org/org"
- "github.com/yuin/goldmark"
- "github.com/yuin/goldmark/extension"
-)
-
-var markdownConverter = goldmark.New(goldmark.WithExtensions(extension.GFM))
-
-// escapeHTML just escapes a string and wraps it in [template.HTML].
-func escapeHTML(s string) template.HTML {
- return template.HTML(html.EscapeString(s)) //#nosec G203
-}
-
-// renderReadme renders and sanitizes README content from a byte slice and filename.
-func renderReadme(data []byte, filename string) (string, template.HTML) {
- switch strings.ToLower(filename) {
- case "readme":
- return "README", template.HTML("<pre>" + html.EscapeString(bytesToString(data)) + "</pre>") //#nosec G203
- case "readme.md":
- var buf bytes.Buffer
- if err := markdownConverter.Convert(data, &buf); err != nil {
- return "Error fetching README", escapeHTML("Unable to render README: " + err.Error())
- }
- return "README.md", template.HTML(bluemonday.UGCPolicy().SanitizeBytes(buf.Bytes())) //#nosec G203
- case "readme.org":
- htmlStr, err := org.New().Parse(strings.NewReader(bytesToString(data)), filename).Write(org.NewHTMLWriter())
- if err != nil {
- return "Error fetching README", escapeHTML("Unable to render README: " + err.Error())
- }
- return "README.org", template.HTML(bluemonday.UGCPolicy().Sanitize(htmlStr)) //#nosec G203
- default:
- return filename, template.HTML("<pre>" + html.EscapeString(bytesToString(data)) + "</pre>") //#nosec G203
- }
-}