From 15c297c22dc416ec8274094a4ecb967ba7c4256c Mon Sep 17 00:00:00 2001 From: nyne Date: Sun, 18 May 2025 16:25:38 +0800 Subject: [PATCH] Improve resource descriptions --- server/middleware/frontend_middleware.go | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/server/middleware/frontend_middleware.go b/server/middleware/frontend_middleware.go index 22d8de3..429abce 100644 --- a/server/middleware/frontend_middleware.go +++ b/server/middleware/frontend_middleware.go @@ -83,16 +83,32 @@ func serveIndexHtml(c fiber.Ctx) error { return c.SendString(content) } +func mergeSpaces(str string) string { + // Replace multiple spaces with a single space + builder := strings.Builder{} + for i, r := range str { + if r == '\t' || r == '\r' { + continue + } + if r == ' ' || r == '\n' { + if i > 0 && str[i-1] != ' ' && str[i-1] != '\n' { + builder.WriteRune(' ') + } + } else { + builder.WriteRune(r) + } + } + return builder.String() +} + func getResourceDescription(article string) string { htmlContent := mdToHTML([]byte(article)) plain := html2text.HTML2Text(string(htmlContent)) + plain = strings.TrimSpace(plain) + plain = mergeSpaces(plain) if len([]rune(plain)) > 100 { plain = string([]rune(plain)[:100]) } - plain = strings.ReplaceAll(plain, "\n", " ") - plain = strings.ReplaceAll(plain, "\r", "") - plain = strings.ReplaceAll(plain, "\t", "") - plain = strings.TrimSpace(plain) return plain }