Hacker News 中文摘要

RSS订阅

原子入门 -- Introduction to Atom

文章摘要

这篇文章简要介绍了Atom(一种网络内容联合格式)的基本概念和文档结构,包括Atom feed的必需、推荐和可选元素,以及entry元素的分类和常见结构。文章还提供了示例feed和相关文档链接,帮助用户了解Atom的语法验证和使用方法。

文章总结

Atom格式简介

什么是Atom?

Atom是一种基于XML的Web内容与元数据联合格式,同时也是用于发布和编辑周期性更新网站资源的应用层协议。所有Atom订阅源都必须是符合规范的XML文档,并使用application/atom+xml媒体类型标识。

文档说明

本文档重点介绍由IETF AtomPub工作组制定的《Atom联合格式》。若与互联网草案存在差异,以互联网草案为准。

关键规范要求: - 所有元素必须位于http://www.w3.org/2005/Atom命名空间 - 时间戳需符合RFC 3339标准 - 默认使用纯文本值(不包含HTML实体编码) - 可通过xml:lang标识人类可读文本的语言 - 可通过xml:base控制相对URI解析方式

订阅源示例

xml <feed xmlns="http://www.w3.org/2005/Atom"> <title>示例订阅源</title> <link href="http://example.org/"/> <updated>2003-12-13T18:30:02Z</updated> <author><name>张三</name></author> <id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id> <entry> <title>Atom驱动的机器人失控</title> <link href="http://example.org/2003/12/13/atom03"/> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <updated>2003-12-13T18:30:02Z</updated> <summary>示例文本</summary> </entry> </feed>

订阅源元素

必需元素

| 元素 | 说明 | |---------|----------------------------------------------------------------------| | id | 使用永久唯一URI标识订阅源,建议使用长期有效的域名(如<id>http://example.com/</id>) | | title | 人类可读的订阅源标题,不应为空(如<title>示例公司</title>) | | updated | 最后修改时间(如<updated>2003-12-13T18:30:02Z</updated>) |

推荐元素

| 元素 | 说明 | |---------|----------------------------------------------------------------------| | author | 至少包含一个作者信息,除非所有条目都包含作者(包含name/email/uri子元素) | | link | 相关网页链接,必须包含指向订阅源自身的链接(如<link rel="self" href="/feed" />) |

可选元素

| 元素 | 说明 | |--------------|-----------------------------------| | category | 分类标签(如<category term="体育"/>) | | contributor | 贡献者信息 | | generator | 生成订阅源的软件信息 | | icon/logo | 标识图标/标志图像 | | rights | 版权信息 | | subtitle | 副标题/描述 |

条目元素(适用于单篇内容)

必需元素

| 元素 | 说明 | |---------|----------------------------------------------------------------------| | id | 唯一标识符(如<id>http://example.com/blog/1234</id>) | | title | 人类可读的条目标题(如<title>Atom驱动的机器人失控</title>) | | updated | 最后修改时间(如<updated>2003-12-13T18:30:02-05:00</updated>) |

推荐元素

| 元素 | 说明 | |----------|----------------------------------------------------------------------| | author | 作者信息(当订阅源未指定作者时必须包含) | | content | 完整内容(若无替代链接则必须提供) | | link | 相关链接(若无内容元素则必须提供替代链接) | | summary | 内容摘要(当内容非内联或为base64编码时应提供) |

可选元素

| 元素 | 说明 | |--------------|-----------------------------------| | category | 分类标签 | | contributor | 贡献者信息 | | published | 首次发布时间 | | rights | 条目版权信息 | | source | 源订阅源元数据(适用于复制内容) |

通用结构

  1. 分类:包含必选属性term,可选属性scheme和label
  2. 内容:可通过type属性指定文本/HTML/XHTML类型,或通过src引用外部内容
  3. 链接:包含href属性,可通过rel指定关系类型(alternate/enclosure/related等)
  4. 人员信息:包含必选name元素,可选uri和email元素
  5. 文本:通过type属性控制编码方式(text/html/xhtml)

扩展机制

Atom支持通过XML命名空间引入其他词汇表: - 可在link元素的rel属性中使用任意完整URI - 支持在任意位置引入其他命名空间的元素 - 兼容大多数RSS 1.0和RSS 2.0模块

相关资源

(注:本文已过滤原始文档中的导航菜单、页脚信息及装饰性图片等非核心内容)

评论总结

评论总结:

  1. 怀旧与复兴

    • 有用户感叹Atom格式的回归("what is old is new again?" - perrohunter)
    • 另一用户表示这是"过去的回忆"("blast from the past" - drob518)
  2. 技术实用性

    • 用户认为Atom格式简单易用("reasonable, easy format" - mplanchard)
    • 有开发者提到Google早期API曾使用Atom("First iteration of Google's APIs were atom" - intrasight)
  3. 与RSS的对比

    • 用户不清楚Atom与RSS的区别,但认为Atom规范更好("better spec" - tkcranny)
    • 指出Atom是20年前未流行的RSS替代方案("alternative to RSS...didn't catch on" - eterevsky)
  4. 命名混乱与历史

    • 调侃"Atom"名称被过度使用("more Atoms...than atoms in the universe" - rippeltippel)
    • 提及Aaron Swartz曾参与开发("Aaron Swartz was one of the contributors" - echelon)

(注:所有评论均无评分数据,观点平衡呈现)