## gorilla/feeds
[![GoDoc](https://godoc.org/github.com/gorilla/feeds?status.svg)](https://godoc.org/github.com/gorilla/feeds) [![Build Status](https://travis-ci.org/gorilla/feeds.png?branch=master)](https://travis-ci.org/gorilla/feeds)
feeds is a web feed generator library for generating RSS and Atom feeds from Go
applications.
### Goals
* Provide a simple interface to create both Atom & RSS 2.0 feeds
* Full support for Atom and RSS2.0 spec elements
* Ability to modify particulars for each spec
### Usage
```go
package main
import (
"fmt"
"log"
"time"
"github.com/gorilla/feeds"
)
func main() {
now := time.Now()
feed := &feeds.Feed{
Title: "jmoiron.net blog",
Link: &feeds.Link{Href: "http://jmoiron.net/blog"},
Description: "discussion about tech, footie, photos",
Author: &feeds.Author{Name: "Jason Moiron", Email: "jmoiron@jmoiron.net"},
Created: now,
}
feed.Items = []*feeds.Item{
&feeds.Item{
Title: "Limiting Concurrency in Go",
Link: &feeds.Link{Href: "http://jmoiron.net/blog/limiting-concurrency-in-go/"},
Description: "A discussion on controlled parallelism in golang",
Author: &feeds.Author{Name: "Jason Moiron", Email: "jmoiron@jmoiron.net"},
Created: now,
},
&feeds.Item{
Title: "Logic-less Template Redux",
Link: &feeds.Link{Href: "http://jmoiron.net/blog/logicless-template-redux/"},
Description: "More thoughts on logicless templates",
Created: now,
},
&feeds.Item{
Title: "Idiomatic Code Reuse in Go",
Link: &feeds.Link{Href: "http://jmoiron.net/blog/idiomatic-code-reuse-in-go/"},
Description: "How to use interfaces effectively",
Created: now,
},
}
atom, err := feed.ToAtom()
if err != nil {
log.Fatal(err)
}
rss, err := feed.ToRss()
if err != nil {
log.Fatal(err)
}
fmt.Println(atom, "\n", rss)
}
```
Outputs:
```xml
jmoiron.net bloghttp://jmoiron.net/blog2013-01-16T03:26:01-05:00discussion about tech, footie, photosLimiting Concurrency in Go2013-01-16T03:26:01-05:00tag:jmoiron.net,2013-01-16:/blog/limiting-concurrency-in-go/A discussion on controlled parallelism in golangJason Moironjmoiron@jmoiron.netLogic-less Template Redux2013-01-16T03:26:01-05:00tag:jmoiron.net,2013-01-16:/blog/logicless-template-redux/More thoughts on logicless templatesIdiomatic Code Reuse in Go2013-01-16T03:26:01-05:00tag:jmoiron.net,2013-01-16:/blog/idiomatic-code-reuse-in-go/How to use interfaces <em>effectively</em>jmoiron.net blog
http://jmoiron.net/blog
discussion about tech, footie, photosjmoiron@jmoiron.net (Jason Moiron)2013-01-16T03:22:24-05:00Limiting Concurrency in Go
http://jmoiron.net/blog/limiting-concurrency-in-go/
A discussion on controlled parallelism in golang2013-01-16T03:22:24-05:00Logic-less Template Redux
http://jmoiron.net/blog/logicless-template-redux/
More thoughts on logicless templates2013-01-16T03:22:24-05:00Idiomatic Code Reuse in Go
http://jmoiron.net/blog/idiomatic-code-reuse-in-go/
How to use interfaces <em>effectively</em>2013-01-16T03:22:24-05:00
```