向 Atom 1.0 条目添加图像或缩略图

Posted

技术标签:

【中文标题】向 Atom 1.0 条目添加图像或缩略图【英文标题】:Adding Images or Thumbnails to Atom 1.0 Entries 【发布时间】:2015-06-30 03:43:34 【问题描述】:

This *** 回答建议您应该使用 html 条目内容并使用标准的<img> 标记链接到您的图像。

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

我还发现了一个叫做 Yahoo 媒体扩展 here 的东西,它允许您添加自定义的附加元素。

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

Google 似乎也有自己的类似扩展。见here。

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

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

【问题讨论】:

我不敢相信像 Atom 1.0 这样的主要互联网基础设施已经 8 年了,文档却如此之少。甚至没有很多关于它的博客文章!!! 我写了一篇博文(在过去几年中我能找到的关于该主题的少数几篇文章之一)here。 【参考方案1】:

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

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

source in git

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

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

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

据此,“vanilla”Atom RSS 提要严格可以有&lt;logo&gt;,即 2:1 比例图像,logo of the feed。遗憾的是,它被放置在XML 的根 中(注意规范中的atom:logo,它不是atom:entry:logo)。实际上,这意味着,您可以放置​​ RSS 提要本身的图片,但不能按文章放置。如果您确实将&lt;logo&gt; 放入&lt;entry&gt; 中,则提要不会通过验证器并且帖子图像不会出现在提要中(我试过了)。

此外,规范将 &lt;icon&gt; 定义为模糊的 defined 为一个小的方形图像,也放置在根中。无论如何,Feedly 似乎都能检测到网站的 favicon,尽管在 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 方法,&lt;link rel="enclosure" type="image/png" length="1337" href="http://example.org/image.png"/&gt; 将是有希望的,但 length 旨在声明 filesize in bytes。例如,在Eleventy 中,这是一个有问题的值。

总而言之,最好的做法是将帖子标题图片放在内容顶部,&lt;content&gt; 内。

【讨论】:

以上是关于向 Atom 1.0 条目添加图像或缩略图的主要内容,如果未能解决你的问题,请参考以下文章

将图像覆盖添加到特定类别的缩略图 - wordpress

带有简单缩略图的衬垫合身

在网格中平铺缩略图

在 Django Admin 中有 Jcrop 的缩略图吗?

在 iPhone 上显示多个图像缩略图时 UI 失真

php [WooCommerce Instagram]如果您想将其更改为缩略图或其他图像尺寸,请将此代码添加到您的“自定义功能”区域