跳转至内容

Wikivoyage:RDF 探险/RSS

来自维客旅行

RSS 是一系列相关的协议,允许人们订阅信息的“频道”或“订阅源”。它通常用于网络上,让人们在一个地方组织他们最喜欢的博客、wiki、新闻网站或其他定期更新的信息的更新。

我们目前为英文 Wikivoyage 拥有一个 RSS 频道,该频道基于 Wikivoyage 上定期更新的内容 (Project:Discover, 旅游新闻, Project:Destination of the month 等)。 订阅源依赖于一个长而脆弱的脚本,该脚本直接抓取这些文章。

如果有一种方法可以让用户为英文 Wikivoyage 和其他 Wikivoyage 语言版本设计和组织 RSS 频道,而无需编写页面抓取程序,那就太好了。一些可能的例子

随着 Wikivoyage 新功能或内容的开发,我们可以增强或替换 RSS 订阅源的部分内容,而无需额外的编程。一个通用的 RSS 生成器脚本(例如,每天晚上运行)可以从 Wikivoyage 上的页面读取所有 RSS 订阅源的信息,并自动输出 RSS。它可以读取 MediaWiki 命名空间文章,例如 MediaWiki:rsschannels,以获取要创建的每个订阅源的的文章名称。然后,每个频道将有自己的页面,例如 Project:Community channelProject:Readers channel。这将有一些内置的 RDF 代码定义频道属性,以及指向包含 RSS 项目的 RDF 代码的文章的链接。

表示

[]

RSS 1.0 是一个用于定义订阅源的 RDF 词汇表。它是 RSS 的三个竞争标准之一,可能也是使用最少的,但它的优势在于基于 RDF 实现。由于大多数订阅源阅读器都支持所有三个标准,因此使用 RSS 1.0 构建此功能应该没问题。

RSS 1.0 定义了两种东西:RSS 频道和 RSS 项目。我们可以在频道页面上包含频道定义,然后在每个项目页面中包含一个或多个项目定义。

示例

[]

RSS 频道的 Turtle RDF 看起来像这样

    <http://wikivoyage.org/rss/en-news.rss>  a rss:Channel;
    rss:title "Wikivoyage News and Trivia";
    rss:link <https://wikivoyage.cn/wiki/Main_Page>;
    rss:description "Travel news, trivia, and featured destinations from Wikivoyage, the free travel guide.".

对于 RSS 项目,它看起来像这样。请注意,该项目必须有一个唯一的 URI;我正在使用 标签 URI

    <tag:wikitavel.org:en:2007:January:Destination-of-the-Month> a rss:item;
    rss:title "January 2007 Destination of the Month: Taipei";
    rss:link <https://wikivoyage.cn/wiki/Taipei>;
    rss:description "Taipei is the provisional capital of the Republic of China, otherwise known as Taiwan. ...".

模板

[]

将定义项目的 RDF 包装在它自己的 MediaWiki 模板 Template:rssitem 中是有意义的; 频道也是如此 Template:rsschannel。然后,第二层模板可以使用这些 RSS 模板来使页面“启用 RSS”。 例如,Template:Newsitem 可以包含 {{rssitem|...}},为每个新闻项目添加一个 RSS 项目,而无需贡献者的任何工作。

© 2026 wikivoyage.cn. Text is available under the CC BY-SA 4.0 License.