diff --git a/lib/rss.go b/lib/feeds.go similarity index 59% rename from lib/rss.go rename to lib/feeds.go index b097fbf..4efc58b 100644 --- a/lib/rss.go +++ b/lib/feeds.go @@ -6,7 +6,7 @@ import ( "github.com/gorilla/feeds" ) -func RssFeed() *feeds.RssFeedXml { +func genFeed() *feeds.Feed { feed := &feeds.Feed{ Title: "Isabel Roses", Link: &feeds.Link{Href: "https://isabelroses.com", Rel: "self"}, @@ -23,17 +23,25 @@ func RssFeed() *feeds.RssFeedXml { created.Format(time.RFC3339) href := "https://isabelroses.com/blog/" + post.Slug feedItems = append(feedItems, &feeds.Item{ - Id: href, - Title: post.Title, - Link: &feeds.Link{Href: href, Rel: "self"}, - Description: string(post.Content), - Created: created, + Id: href, + Title: post.Title, + Link: &feeds.Link{Href: href, Rel: "self"}, + Content: string(post.Content), + Created: created, }) } feed.Items = feedItems - rssFeed := (&feeds.Rss{Feed: feed}).RssFeed() - xmlRssFeeds := rssFeed.FeedXml() + return feed +} + +func AtomFeed() *feeds.AtomFeed { + feed := (&feeds.Atom{Feed: genFeed()}).AtomFeed() + atomFeed := feed.FeedXml() + return atomFeed.(*feeds.AtomFeed) +} - return xmlRssFeeds.(*feeds.RssFeedXml) +func JSONFeed() *feeds.JSONFeed { + feed := (&feeds.JSON{Feed: genFeed()}).JSONFeed() + return feed } diff --git a/main.go b/main.go index cb62599..c710ae9 100644 --- a/main.go +++ b/main.go @@ -61,8 +61,18 @@ func main() { apiGroup.POST("/github", api.Github) e.GET("/rss.xml", func(c echo.Context) error { - rss := lib.RssFeed() - return c.XML(http.StatusOK, rss) + c.Redirect(http.StatusMovedPermanently, "/feed.xml") + return nil + }) + + e.GET("/feed.xml", func(c echo.Context) error { + atom := lib.AtomFeed() + return c.XML(http.StatusOK, atom) + }) + + e.GET("/feed.json", func(c echo.Context) error { + json := lib.JSONFeed() + return c.JSON(http.StatusOK, json) }) e.Static("/*", lib.GetPath("/public")) diff --git a/templates/components/header.tmpl b/templates/components/header.tmpl index 6c7271f..3a3a0bb 100644 --- a/templates/components/header.tmpl +++ b/templates/components/header.tmpl @@ -41,7 +41,7 @@