h-feed: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
No edit summary
(→‎Readers: +Woodwind, github link for Shrewdness, notenoughneon 404 currently)
(10 intermediate revisions by 5 users not shown)
Line 1: Line 1:
HOW THING OUT
<entry-title>h-feed</entry-title>
HOW ANYTHING OUT
 
HOW EVERYTHING OUT
<dfn style="font-style:normal;font-weight:bold">h-feed</dfn> is a [[microformats2]] draft for marking up 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.
HOW UNIVERSE OUT
 
HOW MAKE THING OUT
h-feed is the [[microformats2]] update to [[hAtom]]'s "hfeed".
HOW MAKE ANYTHING OUT
 
HOW MAKE EVERYTHING OUT
{{cc0-owfa-license}}
HOW MAKE UNIVERSE OUT
 
HOW THING BE OUT
== Properties ==
HOW ANYTHING BE OUT
h-feed properties, inside an element with class '''h-feed'''. All properties are optional.
HOW EVERYTHING BE OUT
 
HOW UNIVERSE BE OUT
root class name: h-feed
HOW MAKE THING BE OUT
 
HOW MAKE ANYTHING BE OUT
=== Core Properties ===
HOW MAKE EVERYTHING BE OUT
The following ''core'' h-feed properties have broad consensus:
HOW MAKE UNIVERSE BE OUT
* '''<code>p-name</code>''' - name of the feed
HOW THING OUT
* '''<code>p-author</code>''' - author of the feed, optionally embed an [[h-card]] {{main|h-card}}
HOW ANYTHING OUT
* '''<code>u-url</code>''' - URL of the feed
HOW EVERYTHING OUT
* '''<code>u-photo</code>''' - representative photo / icon for the feed
HOW UNIVERSE OUT
 
HOW MAKE THING OUT
children:
HOW MAKE ANYTHING OUT
* nested [[h-entry]] objects representing the items of the feed
HOW MAKE EVERYTHING OUT
 
HOW MAKE UNIVERSE OUT
=== Draft Properties ===
HOW THING BE OUT
None currently.
HOW ANYTHING BE OUT
 
HOW EVERYTHING BE OUT
=== Proposed Properties ===
HOW UNIVERSE BE OUT
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:
HOW MAKE THING BE OUT
* '''<code>p-summary</code>''' - based on non-trivial actual content usage of "atom:subtitle" on Blogger and WordPress.com featured blogs's Atom feeds.
HOW MAKE ANYTHING BE OUT
* '''<code>p-entry</code>''' - to be more consistent with the cascading of p-author or [http://microformats.org/wiki/comment-brainstorming#Proposal p-comment].
HOW MAKE EVERYTHING BE OUT
 
HOW MAKE UNIVERSE BE OUT
== Status ==
HOW THING OUT
'''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.
HOW ANYTHING OUT
 
HOW EVERYTHING OUT
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".
HOW UNIVERSE OUT
 
HOW MAKE THING OUT
== Use Cases ==
HOW MAKE ANYTHING OUT
* Named feeds
HOW MAKE EVERYTHING OUT
** IndieWeb Readers are consuming home page feeds marked up with h-feed and using the name of the h-feed in their user interfce.
HOW MAKE UNIVERSE OUT
 
HOW THING BE OUT
* Generate an Atom feed
HOW ANYTHING BE OUT
** This seems like a legacy use-case, not sufficient to actually justify h-feed.
HOW EVERYTHING BE OUT
 
HOW UNIVERSE BE OUT
* Feed per channel of content - needs a name
HOW MAKE THING BE OUT
** "I will have a feed per tag (channel) so I want to name them." - Sandeep Shetty in #indiewebcamp
HOW MAKE ANYTHING BE OUT
** It appears there is some desire to create separate feeds for an indieweb site for separate subsets of content, and name them <em>explicitly</em> accordingly. This presents a need for a container object for the h-entry elements, where the container itself can have a name. This is a potential interesting use-case for an explicit 'h-feed'.
HOW MAKE EVERYTHING BE OUT
 
HOW MAKE UNIVERSE BE OUT
== Examples in the wild ==
HOW THING OUT
Add any examples in the wild that you find to the top of this list.
HOW ANYTHING OUT
* ...
HOW EVERYTHING OUT
* http://sandeep.io/ uses h-feed with p-name and p-author properties and child h-entry posts. In particular using h-feed on the &lt;html&gt; element allows using p-name on the &lt;title&gt; element and re-using the visible window title of the HTML page as the name of the feed, neatly avoiding a [[DRY]] violation.
HOW UNIVERSE OUT
* http://tantek.com/ uses h-feed with p-name and p-author properties and child h-entry posts.
HOW MAKE THING OUT
 
HOW MAKE ANYTHING OUT
== Implementations ==
HOW MAKE EVERYTHING OUT
=== Readers ===
HOW MAKE UNIVERSE OUT
* [https://github.com/kylewm/woodwind Woodwind]
HOW THING BE OUT
* [https://github.com/barnabywalters/shrewdness Shrewdness]
HOW ANYTHING BE OUT
* http://notenoughneon.com/feed.php (404 as of 2017-05-29)
HOW EVERYTHING BE OUT
 
HOW UNIVERSE BE OUT
=== Proxies ===
HOW MAKE THING BE OUT
* Bridgy
HOW MAKE ANYTHING BE OUT
 
HOW MAKE EVERYTHING BE OUT
=== Converters ===
HOW MAKE UNIVERSE BE OUT
* '''[http://unmung.com unmung]''' - will transform an RSS or Atom feed into an [[h-feed]] containing h-entries,
HOW THING OUT
* '''[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])
HOW ANYTHING OUT
 
HOW EVERYTHING OUT
== Parsing ==
HOW UNIVERSE OUT
When parsing a page for an h-feed, do so per [[microformats2]].
HOW MAKE THING OUT
 
HOW MAKE ANYTHING OUT
Fallback:
HOW MAKE EVERYTHING OUT
 
HOW MAKE UNIVERSE OUT
If there is no explicit "h-feed" element, implementations may:
HOW THING BE OUT
* Treat the <code>&lt;title&gt;</code> of the page or the URL of the page as the p-name
HOW ANYTHING BE OUT
* Use http://indiewebcamp.com/authorship to discover authorship of posts.
HOW EVERYTHING BE OUT
* Treat top level [[h-entry]] elements as items in the feed.
HOW UNIVERSE BE OUT
 
HOW MAKE THING BE OUT
== FAQ ==
HOW MAKE ANYTHING BE OUT
=== How do I avoid duplicating the page title ===
HOW MAKE EVERYTHING BE OUT
''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?''
HOW MAKE UNIVERSE BE OUT
 
HOW THING OUT
If you want re-use the &lt;title&gt; of your page as the name of your feed, you can do so by putting the h-feed root class name on the &lt;html&gt; element, and the p-name property class name on the &lt;title&gt; element, e.g. here's a snippet showing how those tags would look:
HOW ANYTHING OUT
<source lang=html4strict>
HOW EVERYTHING OUT
<html class="h-feed">
HOW UNIVERSE OUT
  …
HOW MAKE THING OUT
  <title class="p-name">sandeep.io</title>
HOW MAKE ANYTHING OUT
  …
HOW MAKE EVERYTHING OUT
</source>
HOW MAKE UNIVERSE OUT
 
HOW THING BE OUT
=== What should a subscriber do with a page with multiple feeds ===
HOW ANYTHING BE OUT
''What do I do when a user subscribes to a URL with multiple distinct h-feeds?''
HOW EVERYTHING BE OUT
 
HOW UNIVERSE BE OUT
A feed reader should subscribe to the first h-feed it finds at a URL.
HOW MAKE THING BE OUT
 
HOW MAKE ANYTHING BE OUT
Related: http://indiewebcamp.com/reader
HOW MAKE EVERYTHING BE OUT
 
HOW MAKE UNIVERSE BE OUT
== See Also ==
HOW THING OUT
* [[h-feed-issues]]
HOW ANYTHING OUT
* [[h-entry]]
HOW EVERYTHING OUT
* [[microformats2]]
HOW UNIVERSE OUT
* [[hAtom]]
HOW MAKE THING OUT
 
HOW MAKE ANYTHING OUT
[[Category:Draft Specifications]]
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT

Revision as of 19:48, 29 May 2017

<entry-title>h-feed</entry-title>

h-feed is a microformats2 draft for marking up 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 the microformats2 update to hAtom's "hfeed".

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 2024-04-18, the editors have made this specification available under the Open Web Foundation Agreement Version 1.0.

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:

  • p-name - name of the feed
  • p-author - author of the feed, optionally embed an h-card
    Main article: h-card
  • u-url - URL of the feed
  • u-photo - representative photo / icon for the feed

children:

  • nested h-entry objects representing the items of the feed

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:

  • p-summary - based on non-trivial actual content usage of "atom:subtitle" on Blogger and WordPress.com featured blogs's Atom feeds.
  • p-entry - to be more consistent with the cascading of p-author or p-comment.

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

  • Named feeds
    • IndieWeb Readers are consuming home page feeds marked up with h-feed and using the name of the h-feed in their user interfce.
  • Generate an Atom feed
    • This seems like a legacy use-case, not sufficient to actually justify h-feed.
  • Feed per channel of content - needs a name
    • "I will have a feed per tag (channel) so I want to name them." - Sandeep Shetty in #indiewebcamp
    • It appears there is some desire to create separate feeds for an indieweb site for separate subsets of content, and name them explicitly accordingly. This presents a need for a container object for the h-entry elements, where the container itself can have a name. This is a potential interesting use-case for an explicit 'h-feed'.

Examples in the wild

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

  • ...
  • http://sandeep.io/ uses h-feed with p-name and p-author properties and child h-entry posts. In particular using h-feed on the <html> element allows using p-name on the <title> element and re-using the visible window title of the HTML page as the name of the feed, neatly avoiding a DRY violation.
  • http://tantek.com/ uses h-feed with p-name and p-author properties and child h-entry posts.

Implementations

Readers

Proxies

  • Bridgy

Converters

Parsing

When parsing a page for an h-feed, do so per microformats2.

Fallback:

If there is no explicit "h-feed" element, implementations may:

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