From f00f73a62db7abc414a1d2c2ee436ddd4f143587 Mon Sep 17 00:00:00 2001 From: jwb Date: Tue, 11 Feb 2025 11:48:26 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20W3C=E9=AA=8C=E8=AF=81=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - [ ] Invalid email address 在实现rss功能时用户表里还没有邮箱,所以在Author字段中只填了Name没填Email。现在邮箱已在邮件通知分支中添加,不过为了避免重复混淆,Rss分支上暂不处理。 - [x] Feeds should not be served with the "text/plain" media type 只在前端链接中指定了`type="application/rss+xml"`,但后端接口没有正确设定Header中的Content-Type,已修正。 - [x] item should contain a guid element 字段缺失,已修正 - [ ] Missing atom:link with rel="self" `gorilla\feeds`库的问题,见[gorilla/feeds #111](https://github.com/gorilla/feeds/issues/111) --- backend/handler/rss.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/backend/handler/rss.go b/backend/handler/rss.go index 9e93055..d001b9e 100644 --- a/backend/handler/rss.go +++ b/backend/handler/rss.go @@ -40,6 +40,9 @@ func (r RssHandler) GetRss(c echo.Context) error { if err != nil { return FailRespWithMsg(c, Fail, "RSS生成失败") } + + c.Response().Header().Set(echo.HeaderContentType, "application/rss+xml; charset=utf-8") + return c.String(http.StatusOK, rss) } @@ -102,9 +105,11 @@ func generateFeed(memos []db.Memo, sysConfigVO *vo.FullSysConfigVO, user *db.Use feed.Items = []*feeds.Item{} for _, memo := range memos { + memoLink := fmt.Sprintf("%s/memo/%d", host, memo.Id) feed.Items = append(feed.Items, &feeds.Item{ + Id: memoLink, Title: fmt.Sprintf("Memo #%d", memo.Id), - Link: &feeds.Link{Href: fmt.Sprintf("%s/memo/%d", host, memo.Id)}, + Link: &feeds.Link{Href: memoLink}, Description: parseMarkdownToHtml(getContentWithExt(memo, host)), Author: &feeds.Author{Name: memo.User.Nickname}, Created: *memo.CreatedAt,