将图像或缩略图添加到Atom 1.0条目

Muh*_*eed 9 image feed google-base yahoo-api atom-feed

StackOverflow答案表明您应该使用HTML条目内容并使用标准<img>标记链接到您的图像.

<content type="html">
  <![CDATA[
    <a href="http://test.lvh.me:3000/listings/341-test-pics?locale=en">
      <img alt="test_pic" src="http://test.lvh.me:3000/system/images/20/medium/test_pic.jpg?1343246102" />
    </a>
  ]]>
</content>
Run Code Online (Sandbox Code Playgroud)

我还在这里找到了一个名为Yahoo media extensions的东西,它允许你添加自定义的附加元素.

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
<!-- ommitted -->
  <entry>
    <!-- ommitted -->
    <media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="path_to_image.jpg" />
  </entry>
</feed>
Run Code Online (Sandbox Code Playgroud)

谷歌似乎也有自己类似的扩展.看到这里.

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
<!-- ommitted -->
  <entry>
    <!-- ommitted -->
    <g:image_link>http://www.google.com/images/google_sm.gif</g:image_link>
  </entry>
</feed>
Run Code Online (Sandbox Code Playgroud)

我自己的直觉告诉我,我应该只需添加链接到图像,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <!-- ommitted -->
  <entry>
    <!-- ommitted -->
    <link rel="enclosure" type="image/png" length="1337"
        href="http://example.org/image.png"/>
  </entry>
</feed>
Run Code Online (Sandbox Code Playgroud)

最大兼容性的正确方法是什么?

rev*_*elt 3

最佳实践是像 WordPress RSS 2.0 feeds 那样 \xe2\x80\x94 如果你希望你的帖子图像出现在 feedly 中,例如,将 放在<p><img...></p>内容的顶部。我的 111 设置在文章内有帖子标题图像,但content在提要中使用的外部变量内容。我解决了添加回图像的问题:

\n
<item>\n...\n  <content:encoded>\n    <![CDATA[<p>{% include "src/components/partials/post-hero-img.njk" %}</p>{{ post.templateContent | textDeletePresentationDivs | htmlToAbsoluteUrls(absolutePostUrl) | safe }}]]>\n  </content:encoded>\n
Run Code Online (Sandbox Code Playgroud)\n

源代码在git中

\n

我检查过,Atom 和 RSS 2.0 提要都没有将帖子图像设置为独立标签。它们只是位于文章内容的顶部。

\n

关于你的例子......

\n

“普通”Atom RSS 提要有一个架构,其文档在RFC4287xmlns="http://www.w3.org/2005/Atom"中定义。

\n

据其介绍,“vanilla”Atom RSS feed 严格可以具有<logo>2:1 比例的图像,即feed 的徽标。遗憾的是,它被放置在 XML 的根目录中(注意atom:logo规范中,它不是atom:entry:logo)。实际上,这意味着您可以添加 RSS 源本身的图片,但不能添加每篇文章的图片。如果你确实放入<logo>inside <entry>,提要将不会通过验证器,并且发布图像不会出现在 feedly 中(我尝试过)。

\n

另外,spec 定义了<icon>它,它被模糊地定义为一个小的方形图像,也放置在根中。Feedly 似乎无论如何都会检测到网站的图标,尽管在 rss 中显式设置此标签并没有什么坏处。

\n

这就是 \xe2\x80\x94 Atom 规范没有正式定义如何在每篇文章中放置图像的方法。

\n

这就是附加命名空间的用武之地(或 RSS 2.0、不同的规范、不同的 XML)。你xmlns:media="http://search.yahoo.com/mrss/"在例子中提到过。我试过了,帖子图片不会在 feedly 中显示。另外,规格链接http://search.yahoo.com/mrss/未显示任何规格。

\n

您引用的 Google 命名空间xmlns:g="http://base.google.com/ns/1.0"也不起作用,发布图像不会显示在 feedly 中。

\n

除了以字节为单位说明文件大小之外,该link方法<link rel="enclosure" type="image/png" length="1337" href="http://example.org/image.png"/>很有前途。例如,在Eleventy中,获取该值是有问题的。length

\n

总而言之,最佳实践是将帖子标题图像放在内容顶部的<content>.

\n