h-feed

(Difference between revisions)

Jump to: navigation, search
(replace misleading "Parsing" section with "Backward Compatibility" stub sections)
Current revision (14:44, 28 June 2018) (view source)
m (down for more than a year)
 
(5 intermediate revisions not shown.)
Line 58: Line 58:
* [https://github.com/kylewm/woodwind Woodwind]
* [https://github.com/kylewm/woodwind Woodwind]
* [https://github.com/barnabywalters/shrewdness Shrewdness]
* [https://github.com/barnabywalters/shrewdness Shrewdness]
-
* http://notenoughneon.com/feed.php (404 as of 2017-05-29)
 
=== Proxies ===
=== Proxies ===
Line 64: Line 63:
=== Converters ===
=== Converters ===
-
* '''[http://unmung.com unmung]''' - will transform an RSS or Atom feed into an [[h-feed]] containing h-entries,
+
* '''[http://unmung.com unmung]''' - will transform an RSS or Atom feed into an [[h-feed]] containing h-entries
-
* '''[http://pipes.yahoo.com/pipes/pipe.info?_id=afc5568b4e8643bfb05436b1caaf91bc microformats to RSS]''' - a Yahoo! pipe that converts a URL containing an [[h-feed]] containing h-entries, into an [[RSS]] feed. ([http://waterpigs.co.uk/notes/4SeNi5/ 2013-10-21 blog post announcing])
+
== Backward Compatibility ==
== Backward Compatibility ==
Line 72: Line 70:
=== Parser Compatibility ===
=== Parser Compatibility ===
-
When <span id="Parsing">parsing</a> a page for an h-feed, in addition to just following the [[microformats2-parsing]] specification, implementations may do the following for backward compatibility with existing [[hatom|hAtom]] content.
+
For backward compatibility with existing [[hatom|hAtom]] content, microformats parsers {{should}} detect classic properties only if a classic root class name is found and parse them as microformats2 properties.  
-
(this section is a stub and needs review and citations to note what real world examples would each of these rules actually help parse)
+
If an "h-feed" is found, don't look for an "hfeed" on the same element.
-
If there is no explicit "h-feed" element, implementations may:
+
Compat root class name: <code id="hfeed">hfeed</code><br/>
-
* Treat the <code>&lt;title&gt;</code> of the page or the URL of the page as the p-name
+
Properties: (parsed as '''p-''' plain text unless otherwise specified):
-
* Use http://indiewebcamp.com/authorship to discover authorship of posts.
+
 
-
* Treat top level [[h-entry]] elements as items in the feed.
+
(this section is a stub and needs review and citations to note what real world examples would each of these backcompat parsing rules actually help parse)
 +
 
 +
* <code>rel=tag</code> - parse as '''<code>p-category</code>'''. While not a class name nor typical microformats property, rel=tag was the defined way to tag an hfeed. Thus parsers should look for rel=tag hyperlinks inside an hfeed, and take the last path segment of their "href" value as a value for a '''<code>p-category</code>''' property.
 +
* <code>site-title</code> - parse as '''<code>p-name</code>''' [WordPress (Core? Typical themes?) has this class name by default, and without it buggy parsers may imply p-name as the whole h-feed ([http://microformats.org/wiki/microformats2-parsing#parsing_for_implied_properties implied properties only apply to actual h-x roots, not backcompat]).]
 +
* <code>site-description</code> - parse as '''<code>p-summary</code>''' [WordPress (Core? Typical themes?) has this class name by default]
 +
 
 +
If no "h-feed" nor "hfeed" element is found, however multiple top-level [[h-entry]] elements (explicit or backcompat) are found, implementations may use:
 +
* top level [[h-entry]] elements as items in a synthetic h-feed.
 +
* <code>&lt;title&gt;</code> of the page or the URL of the page as '''<code>p-name</code>'''
 +
* https://indieweb.org/authorship on the page to discover default authorship for any h-entry posts lacking explicit parsed <code>author</code> properties.
== FAQ ==
== FAQ ==

Current revision


Tantek Çelik (Editor)


h-feed is a simple, open format for publishing a stream or feed of h-entry posts, like complete posts on a home page or archive pages, or summaries or other brief lists of posts. h-feed is one of several open microformat draft standards suitable for embedding data in HTML.

h-feed is the microformats2 update to hAtom, and in particular its "hfeed" root class.

Per CC0, to the extent possible under law, the editors have waived all copyright and related or neighboring rights to this work. In addition, as of 2020-06-05, the editors have made this specification available under the Open Web Foundation Agreement Version 1.0.

Contents

Properties

h-feed properties, inside an element with class h-feed. All properties are optional.

root class name: h-feed

Core Properties

The following core h-feed properties have broad consensus:

children:

Draft Properties

None currently.

Proposed Properties

The following properties are proposed additions based on various observed examples in the wild, but are awaiting at least one reader / real world consuming code example to become a draft property:

Status

h-feed is a microformats.org draft specification. Public discussion on h-feed takes place on h-entry-feedback and the #microformats irc channel on irc.freenode.net.

h-feed is ready to use and implemented in the wild, but for backwards compatibility you should also mark h-feed up as a classic hAtom "hfeed".

Use Cases

Examples in the wild

Add any examples in the wild that you find to the top of this list.

Implementations

Readers

Proxies

Converters

Backward Compatibility

Publisher Compatibility

(this section is a stub and needs to be expanded with real world examples and minimal properties)

Parser Compatibility

For backward compatibility with existing hAtom content, microformats parsers SHOULD detect classic properties only if a classic root class name is found and parse them as microformats2 properties.

If an "h-feed" is found, don't look for an "hfeed" on the same element.

Compat root class name: hfeed
Properties: (parsed as p- plain text unless otherwise specified):

(this section is a stub and needs review and citations to note what real world examples would each of these backcompat parsing rules actually help parse)

If no "h-feed" nor "hfeed" element is found, however multiple top-level h-entry elements (explicit or backcompat) are found, implementations may use:

FAQ

How do I avoid duplicating the page title

I want to use the name (title) of my page as the name of my feed, how do I avoid duplicating the page title somewhere invisibly on the page as the feed name?

If you want re-use the <title> of your page as the name of your feed, you can do so by putting the h-feed root class name on the <html> element, and the p-name property class name on the <title> element, e.g. here's a snippet showing how those tags would look:

<html class="h-feed"><title class="p-name">sandeep.io</title>

What should a subscriber do with a page with multiple feeds

What do I do when a user subscribes to a URL with multiple distinct h-feeds?

A feed reader should subscribe to the first h-feed it finds at a URL.

Related: http://indiewebcamp.com/reader

See Also

Categories

h-feed was last modified: Thursday, June 28th, 2018

Views