podcast/doc.go

83 lines
3.0 KiB
Go
Raw Normal View History

2017-02-05 09:56:54 -05:00
// Package podcast generates a fully compliant iTunes and RSS 2.0 podcast feed
// for GoLang using a simple API.
2017-02-02 07:42:33 -05:00
//
2017-02-02 08:26:51 -05:00
// Full documentation with detailed examples located at https://godoc.org/github.com/eduncan911/podcast
2017-02-02 07:42:33 -05:00
//
2017-02-02 23:25:36 -05:00
// Usage
2017-02-02 07:42:33 -05:00
//
2017-02-05 09:56:54 -05:00
// To use, `go get` and `import` the package like your typical GoLang library.
//
2017-02-02 07:42:33 -05:00
// $ go get -u github.com/eduncan911/podcast
//
2017-02-05 09:56:54 -05:00
// import "github.com/eduncan911/podcast"
//
2017-02-02 07:42:33 -05:00
// The API exposes a number of method receivers on structs that implements the
// logic required to comply with the specifications and ensure a compliant feed.
// A number of overrides occur to help with iTunes visibility of your episodes.
//
2017-02-05 09:56:54 -05:00
// Notably, the [Podcast.AddItem(i Item)](#Podcast.AddItem) function performs most
// of the heavy lifting by taking the [Item](#Item) input and performing
// validation, overrides and duplicate setters through the feed.
2017-02-02 08:26:51 -05:00
//
2017-03-05 11:18:00 -05:00
// Full detailed Examples of the API are at https://godoc.org/github.com/eduncan911/podcast.
2017-02-02 07:42:33 -05:00
//
2017-02-02 08:41:45 -05:00
// Extensibility
2017-02-02 07:42:33 -05:00
//
// In no way are you restricted in having full control over your feeds. You may
// choose to skip the API methods and instead use the structs directly. The
// fields have been grouped by RSS 2.0 and iTunes fields.
//
// iTunes specific fields are all prefixed with the letter `I`.
//
// References
//
// RSS 2.0: https://cyber.harvard.edu/rss/rss.html
//
// Podcasts: https://help.apple.com/itc/podcasts_connect/#/itca5b22233
2017-02-03 12:03:48 -05:00
//
2017-03-05 11:18:00 -05:00
// Final Release
//
// This project is now in maintenance mode. This means no more planned releases expected.
//
// With the success of 6 iTunes-accepted podcasts I have published with this library, and
// with the feedback from the community, this library is now considered stable and complete.
//
// Feel free to open an issue, file a bug or suggest a non-breaking enhancement and I will
// address it as soon as possible.
//
// Thank you!
//
2017-02-03 12:03:48 -05:00
// Release Notes
//
2017-02-22 15:27:20 -05:00
// 1.3.1
// * increased itunes compliance after feedback from Apple:
// - specified what categories should be set with AddCategory().
// - enforced title and link as part of Image.
// * added Podcast.AddAtomLink() for more broad compliance to readers.
//
// 1.3.0
// * fixes Item.Duration being set incorrectly.
// * changed Item.AddEnclosure() parameter definition (Bytes not Seconds!).
// * added Item.AddDuration formatting and override.
// * added more documentation surrounding Item.Enclosure{}
//
2017-02-15 09:10:55 -05:00
// 1.2.1
// * added Podcast.AddSubTitle() and truncating to 64 chars.
// * added a number of Guards to protect against empty fields.
//
// 1.2.0
// * added Podcast.AddPubDate() and Podcast.AddLastBuildDate() overrides.
// * added Item.AddImage() to mask some cumbersome addition of IImage.
// * added Item.AddPubDate to simply datetime setters.
// * added more examples (mostly around Item struct).
// * tweaked some documentation.
//
// 1.1.0
// * Enabling CDATA in ISummary fields for Podcast and Channel.
//
2017-02-03 12:03:48 -05:00
// 1.0.0
2017-02-04 15:52:45 -05:00
// * Initial release.
// * Full documentation, full examples and complete code coverage.
2017-02-03 12:03:48 -05:00
//
2017-02-02 07:42:33 -05:00
package podcast