On this page:
Splitflap:   Atom and RSS Feeds

Splitflap: Atom and RSS Feeds

Joel Dueck <joel@jdueck.net>

 (require splitflap) package: splitflap-lib

This library provides a simple interface for building valid Atom and RSS feeds, including podcast feeds, for your web properties.

It’s not mechanically difficult to generate feeds without any special libraries, but there are a lot of tedious details to get right. Syndication feeds involve several layers of standards and specifications about how different types data should be encoded, what elements are required, and so forth. Adhering strictly to those standards is not only good citizenship, it’s the best way of preventing problems for your subscribers.

With this library, you are only made to supply the minimum set of data needed to produce a feed. But everything you supply is carefully validated, so that the result is either a fully valid feed or an exception.

Please report any problems on the Github repo.

Installation: Splitflap requires Racket 8.1 or higher. To install this package from the command line:

> raco pkg install splitflap

Or using DrRacket: click the File menu → Install Package ….

If deploying Splitflap in a production environment, you will probably want to use splitflap-lib instead of splitflap. This will avoid fetching/building this documentation, and will greatly reduce the number of dependencies installed.

    1 Quick start

      1.1 Step 1: Mint a tag URI

      1.2 Step 2: Create a list of items

      1.3 Step 3: Create your feed

      1.4 Step 4: Generate the XML for your feed

      1.5 Wrap up

    2 Library Reference

      2.1 Building feeds

      2.2 Producing feed XML

      2.3 Podcasts

      2.4 Feed type predicates

    3 Feed Constructs

      3.1 Tag URIs

      3.2 Persons

      3.3 Date and time information

      3.4 Enclosures and MIME types

      3.5 Domains, URLs and email addresses

      3.6 Language codes

    4 Package Notes (1.2)

      4.1 Known Issues

        4.1.1 Non-ASCII email addresses and domains

      4.2 Version History

        4.2.1 Version 1.2

        4.2.2 Version 1.1

      4.3 Licensing