@tabnas/feed
v0.2.1
Published
Parses RSS (0.90, 0.91, 0.92, 1.0, 2.0) and Atom (0.3, 1.0) feeds into a typed structure, defaulting to a normalized Atom shape.
Downloads
80
Maintainers
Readme
@tabnas/feed
A plugin for the tabnas parsing
engine — built on @tabnas/xml — that
parses syndication feeds (RSS 0.90, 0.91, 0.92, 1.0, 2.0 and Atom
0.3, 1.0) into a typed structure. By default every dialect is
normalised to an Atom-shaped result, so the same downstream code can
consume feeds from any source.
|
| This open source module is sponsored and supported by Voxgig. |
| ---------------------------------------------------- | --------------------------------------------------------------------------------------- |
Install
npm install @tabnas/feed @tabnas/parser @tabnas/jsonic @tabnas/xmlOne tiny example
const { Tabnas } = require('@tabnas/parser')
const { jsonic } = require('@tabnas/jsonic')
const { Feed } = require('@tabnas/feed')
const j = new Tabnas().use(jsonic).use(Feed)
const feed = j.parse('<rss version="2.0"><channel><title>My Blog</title></channel></rss>')
feed.title // => { type: 'text', value: 'My Blog' }
feed.format // => 'atom'The input was RSS 2.0 but the result is in Atom shape — title is an
AtomText ({ type, value }), and the whole object follows RFC 4287.
Pass { format: 'native' } to keep the source dialect's structure, or
{ format: 'raw' } for the underlying XmlElement tree.
Documentation
Full docs follow the four Diátaxis quadrants:
- Tutorial — your first feed parse, step by step.
- How-to guide — recipes: native shape, raw tree, dialect detection, error handling.
- Reference — the API, the
formatoption, the Atom/native types, mapping tables, and the accepted grammar. - Concepts — why it defaults to Atom, what
conversion loses, and how it rides on
@tabnas/xml.
The Go port lives in ../go/ with its own
docs; the project main README covers both
languages.
License
MIT. Copyright (c) Richard Rodger and contributors.
