]> granicus.if.org Git - cgit/commit
ui-atom: generate valid Atom feeds ch/atom
authorC. McEnroe <june@causal.agency>
Tue, 8 Jun 2021 21:06:54 +0000 (17:06 -0400)
committerChristian Hesse <mail@eworm.de>
Mon, 5 Jul 2021 07:15:01 +0000 (09:15 +0200)
commitf8d6f5b197e966e8d5269491c2e4e28d7c1f5328
treebf9389a2c2a13f5ab0333d14a748a73d610a781e
parent5258c297ba6fb604ae1415fbc19a3fe42457e49e
ui-atom: generate valid Atom feeds

Fixes several RFC 4287 violations:

> 4.1.1. The "atom:feed" Element
>    o  atom:feed elements MUST contain exactly one atom:id element.
>    o  atom:feed elements SHOULD contain one atom:link element with a rel
>       attribute value of "self".  This is the preferred URI for
>       retrieving Atom Feed Documents representing this Atom feed.
>    o  atom:feed elements MUST contain exactly one atom:updated element.

An atom:id element is generated from cgit_currentfullurl(), and an
atom:link element with a rel attribute of "self" is generated with
the same URL. An atom:updated element is generated from the date
of the first commit in the revision walk.

> 4.1.2.  The "atom:entry" Element
>    o  atom:entry elements MUST NOT contain more than one atom:content
>       element.

The second atom:content element with the type of "xhtml" is removed.

> 4.2.6.  The "atom:id" Element
>    Its content MUST be an IRI, as defined by [RFC3987].  Note that the
>    definition of "IRI" excludes relative references.  Though the IRI
>    might use a dereferencable scheme, Atom Processors MUST NOT assume it
>    can be dereferenced.

The atom:id elements for commits now use URNs in the "sha1" or
"sha256" namespaces. Although these are not registered URN namespaces,
they see use in the wild, for instance as part of magnet URIs.

Signed-off-by: C. McEnroe <june@causal.agency>
ui-atom.c