restore pre-Atom behavior of linking directly to the article

RFC4287 section 4.2.7.2 specifies that "rel=alternate" is effectively
the default for the link element:

   If the "rel" attribute is not present, the link
   element MUST be interpreted as if the link relation type is
   "alternate".

So having a plain `<link>` and a `<link rel="alternate">` is kind of
weird, *especially* if they point to different resources. So we just
remove the plain entry and *replace* it with the rel=alternate, which
is really the default here.

The sample Atom feeds in RFC4287 (section 1.1) do give an
example *only* with `rel="alternate"`:

     <entry>
       <title>Atom draft-07 snapshot</title>
       <link rel="alternate" type="text/html"
        href="http://example.org/2005/04/02/atom"/>
       <link rel="enclosure" type="audio/mpeg" length="1337"
        href="http://example.org/audio/ph34r_my_podcast.mp3"/>

To refer to the actual Wallabag URL, we use the "via", which is
defined in the RFC as:

   5.  The value "via" signifies that the IRI in the value of the href
       attribute identifies a resource that is the source of the
       information provided in the containing element.

I'm not sure how widely used that tag is, but I feel that the
distinction between `rel="alternate"` is weird at best, and buggy (and
certainly introducing unpleasantness in my usage) at worse.

Before:

        <link href="{{ entry.url }}"/>
        <link rel="alternate" type="text/html"
              href="{{ url('view', {'id': entry.id}) }}"/>
        <link rel="via"
              href="{{ entry.url }}"/>

That is:

        <link href="http://example.com/"/>
        <link rel="alternate" type="text/html"
              href="http://wallabag.example.com/view/1"/>
        <link rel="via"
              href="http://example.com/"/>

After:

        <link rel="alternate" href="{{ entry.url }}"/>
        <link rel="via" type="text/html"
              href="{{ url('view', {'id': entry.id}) }}"/>

That is:

        <link rel="alternate" href="http://example.com"/>
        <link rel="via" type="text/html"
              href="http://wallabag.example.com/view/1"/>

Closes: #7848
This commit is contained in:
Antoine Beaupré 2024-11-22 11:51:13 -05:00
parent f856afbef8
commit 6f53da0fc9
No known key found for this signature in database
GPG key ID: 02293A6FA4E53473

View file

@ -31,11 +31,9 @@
{% for entry in entries %}
<entry>
<title><![CDATA[{{ entry.title|e }}]]></title>
<link href="{{ entry.url }}"/>
<link rel="alternate" type="text/html"
<link rel="alternate" href="{{ entry.url }}"/>
<link rel="via" type="text/html"
href="{{ url('view', {'id': entry.id}) }}"/>
<link rel="via"
href="{{ entry.url }}"/>
<id>wallabag:{{ domainName|removeScheme|removeWww }}:{{ user }}:entry:{{ entry.id }}</id>
<updated>{{ entry.updatedAt|date('c') }}</updated>
<published>{{ entry.createdAt|date('c') }}</published>