diff options
author | Runxi Yu <me@runxiyu.org> | 2025-04-05 21:27:17 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-04-05 21:27:17 +0800 |
commit | e0635b47c2f30719e1ea026812af85c988632c0e (patch) | |
tree | f112904c018dc294cf6f902423745f1f1932449c /render/readme.go | |
parent | Export symbols from database.go (diff) | |
download | forge-e0635b47c2f30719e1ea026812af85c988632c0e.tar.gz forge-e0635b47c2f30719e1ea026812af85c988632c0e.tar.zst forge-e0635b47c2f30719e1ea026812af85c988632c0e.zip |
Move things to internal/v0.1.23
Diffstat (limited to 'render/readme.go')
-rw-r--r-- | render/readme.go | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/render/readme.go b/render/readme.go deleted file mode 100644 index 1a153fb..0000000 --- a/render/readme.go +++ /dev/null @@ -1,41 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// SPDX-FileCopyrightText: Copyright (c) 2025 Runxi Yu <https://runxiyu.org> - -package render - -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" - "go.lindenii.runxiyu.org/forge/misc" -) - -var markdownConverter = goldmark.New(goldmark.WithExtensions(extension.GFM)) - -// renderReadme renders and sanitizes README content from a byte slice and filename. -func Readme(data []byte, filename string) (string, template.HTML) { - switch strings.ToLower(filename) { - case "readme": - return "README", template.HTML("<pre>" + html.EscapeString(misc.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(misc.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(misc.BytesToString(data)) + "</pre>") //#nosec G203 - } -} |