Wikivoyage:RDF 探险/RSS
| 此页面已不再活跃,仅供历史参考。 此页面已不再相关,或者对其用途的共识变得不明确。 不要认为此页面上的内容仍然正确或最新。 |
RSS 是一系列相关的协议,允许人们订阅信息的“频道”或“订阅源”。它通常用于网络上,让人们在一个地方组织他们最喜欢的博客、wiki、新闻网站或其他定期更新的信息的更新。
我们目前为英文 Wikivoyage 拥有一个 RSS 频道,该频道基于 Wikivoyage 上定期更新的内容 (Project:Discover, 旅游新闻, Project:Destination of the month 等)。 订阅源依赖于一个长而脆弱的脚本,该脚本直接抓取这些文章。
如果有一种方法可以让用户为英文 Wikivoyage 和其他 Wikivoyage 语言版本设计和组织 RSS 频道,而无需编写页面抓取程序,那就太好了。一些可能的例子
- 普通读者的频道。 吸引人们定期返回该网站,例如当前的“旅游新闻和琐事”订阅源。
- 社区频道。 面向更积极参与社区的人们的订阅源。 它可能包括来自 Project:Requests for comment, Project:Votes for deletion, Project:User rights nominations, Project:Collaboration of the week, Project:Logbook 等的项目。
随着 Wikivoyage 新功能或内容的开发,我们可以增强或替换 RSS 订阅源的部分内容,而无需额外的编程。一个通用的 RSS 生成器脚本(例如,每天晚上运行)可以从 Wikivoyage 上的页面读取所有 RSS 订阅源的信息,并自动输出 RSS。它可以读取 MediaWiki 命名空间文章,例如 MediaWiki:rsschannels,以获取要创建的每个订阅源的的文章名称。然后,每个频道将有自己的页面,例如 Project:Community channel 或 Project: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 项目,而无需贡献者的任何工作。
