在搭建我的博客時,RSS是一種值得一試的爲讀者提供信息聚合的方式。RSS也被各種博客框架(如Hugo,Hexo,Jekyll等)所支持。在各種博客框架中,RSS文件通常可自動生成。然而仍有一些特定狀況下咱們須要對生成的RSS進行定製化,這時咱們就須要對RSS的語法有一個簡單的瞭解。web
所以本篇文章的主要內容就是對RSS及其語法的簡要介紹及使用中的注意事項。segmentfault
本文首發於個人我的博客 技術公館(wcc.im): RSS語法簡介
RSS全稱爲Really Simple Syndication,是一種簡單易用的爲用戶提供信息聚合方式的規範。RSS能夠使用戶經過RSS客戶端接收文章更新等內容,用戶能夠在不打開網頁的狀況下收到文章推送,給用戶帶來更好的用戶體驗。post
RSS的語法較爲簡單,基於XML 1.0
,且應以.xml結尾。由於其基於XML的特色,RSS的語法要求也較爲嚴格,須要較爲嚴謹地遵照。網站
接下來以一個很是簡單的RSS文件做爲示例來進行分析。ui
<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0"> <channel> <title>技術公館</title> <link>https://wcc.im</link> <description>技術公館</description> <item> <title>Hello, World!</title> <link>https://www.wcc.im/zh/post/hello-world/</link> <description>Hello, World!</description> </item> <item> <title>RSS語法簡介</title> <link>https://www.wcc.im/zh/rss-syntax</link> <description>本文的主要內容是對RSS及其語法的簡要介紹及使用中的注意事項。</description> </item> </channel> </rss>
對熟悉XML語法規則的使用者來講,RSS的語法很是的簡潔易懂。示例代碼中的第一行是對XML的聲明,聲明其版本和編碼方式。第二行則是對RSS的聲明,聲明其版本。編碼
在<channel>...</channel>
中的是RSS具體的內容,可將該部分的示例代碼分爲三大部分。url
<title>技術公館</title> <link>https://wcc.im</link> <description>技術公館</description>
如上所示的第一部分爲該RSS站點的基本信息,除此以外還有版權信息等內容也可添加到此部分,具體內容將會在後文中講到。須要注意的是<title>
,<link>
,<description>
三部分均爲必須的。code
<item> <title>RSS語法簡介</title> <link>https://www.wcc.im/zh/rss-syntax</link> <description>本文的主要內容是對RSS及其語法的簡要介紹及使用中的注意事項。</description> </item>
除RSS站點的基本信息以外,以上的即爲RSS中的一篇文章的基本格式。每個<item>
中爲一篇文章的內容,通常包含標題,連接,描述等部分。除<item>
外,還有<image>
等,具體內容也將在後文中提到。
除上述示例中的基本語法外,RSS還支持許多其餘的語法,如下爲部分常見語法的列舉。
除<title>
,<link>
,<description>
三部分必須的站點信息外,RSS文件中還有如下屬性。
<language>...</language> <rating>...</rating> <copyright>...</copyright> <pubDate>...</pubDate> <lastBuildDate>...</lastBuildDate> <generator>....</generator> <docs>...</docs> <cloud>...</cloud> <ttl>...</ttl> <managingEditor>...</managingEditor> <webMaster>...</webMaster>
因爲此部分較於簡單,所以採起表格的方式對其進行解釋。
代碼塊 | 含義 |
---|---|
<language>...</language> |
網站語言 |
<rating>...</rating> |
PICS評級 |
<copyright>...</copyright> |
版權聲明 |
<pubDate>...</pubDate> |
發佈日期 |
<lastBuildDate>...</lastBuildDate> |
最後修改日期 |
<generator>....</generator> |
生成者 |
<docs>...</docs> |
RSS文檔地址 |
<cloud>...</cloud> |
訂閱服務器地址 |
<ttl>...</ttl> |
存活時間 |
<managingEditor>...</managingEditor> |
做者聯繫方式 |
<webMaster>...</webMaster> |
管理員聯繫方式 |
<skipHours> <hour>...</hour> </skipHours> <skipDays> <day>...</day> </skipDays>
以上爲表示爲網站在那一個時間段不會進行更新,<skipHours>
中應使用GMT時間。<skipDays>
中應爲週一至週日中的一個或多個值。
<image> <title>...</title> <url>...</url> <link>...</link> <width>...</width> <height>...</height> <description>...</description> </image>
以上代碼爲內容是圖片時的相關設置。須要注意的是,<title>
和<url>
的值是必須的,其他爲可選的。
<item> <title>...</title> <link>...</link> <description>...</description> <author>....</author> <category>....</category> <comments>....</comments> <enclosure ..../> <guid>....</guid> <pubDate>....</pubDate> <source>....</source> </item>
以上代碼爲內容是文章時的相關設置。<item>
中的值均爲可選的。
<textInput> <title>...</title> <description>...</description> <name>...</name> <link>...</link> </textInput>
以上代碼爲文本框的相關設置。須要注意的是,<textInput>
中的全部值都是必須的。
RSS有着能夠爲用戶提供一種簡單便捷的信息聚合方式的優勢,所以在不少之內容爲基礎的平臺(博客,新聞等)獲得了普遍的應用。但同時須要注意的是,因爲其形式上的特色,RSS的內容也很容易被爬蟲所爬取,進而產生文章被盜用等版權上的問題。
所以在使用中,用戶須要綜合考量RSS的使用方式,選擇最適合本身的方式加以利用。
本文首發於個人我的博客 技術公館(wcc.im)。
原文連接: https://wcc.im/zh/post/rss-syntax/
本博客內文章除特別聲明外均爲原創,採用 CC BY-NC-SA 4.0 許可協議進行許可。超出 CC BY-NC-SA 4.0 許可協議的使用請聯繫做者得到受權。