11

这个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>

我还在这里找到了一个叫做 Yahoo 媒体扩展的东西,它允许您添加自定义的附加元素。

<?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>

谷歌似乎也有自己的类似扩展。见这里

<?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>

我自己的直觉告诉我,我应该能够像这样添加指向图像的链接:

<?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>

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

4

1 回答 1

2

最好的做法是像 Wordpress RSS 2.0 提要那样做——例如,如果您希望您的帖子图像出现在提要中,请将 放在<p><img...></p>内容的顶部。我的 110 设置在文章内有帖子标题图像,但content在提要中使用的变量内容之外。我解决了添加图像的问题:

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

git中的源码

我检查过,Atom 和 RSS 2.0 提要都没有在任何地方设置张贴图像作为独立标签。它们只是在文章内容的顶部。

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

“vanilla” Atom RSS 提要有一个模式xmlns="http://www.w3.org/2005/Atom",其文档在RFC4287中定义。

据此,“香草”Atom RSS feed 严格来说可以有<logo>2:1 比例的图像,即 feed 的标志。遗憾的是,它被放置在XML的根目录atom:logo中(请注意在规范中,它不是atom:entry:logo)。实际上,这意味着,您可以放置​​ RSS 提要本身的图片,但不能按文章放置。如果您确实放入<logo>inside <entry>,则提要不会通过验证器,并且发布图像不会出现在提要中(我尝试过)。

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

仅此而已——Atom 规范并未正式定义如何在每篇文章中放置图像的方式。

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

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

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

总而言之,最好的做法是将帖子标题图片放在内容的顶部,在<content>.

于 2020-09-09T17:28:48.053 回答