ATOM 和 RSS 的簡介
RSS(Really Simple Syndication) 和 ATOM 都是用來分發網路內容的標準格式。它們的主要目的是幫助使用者訂閱和自動獲取網站更新,無需手動訪問網頁。這對於部落格或新聞網站非常有用,因為它能讓讀者即時接收新文章的通知。
RSS
RSS 是一種 XML 格式,常見的版本為 RSS 2.0。使用 RSS,網站可以將最新的內容發布到訂閱者的 RSS 閱讀器中。讀者可以使用 RSS 閱讀器訂閱 RSS Feed,當網站更新時,內容會自動推送到他們的裝置上。
ATOM
ATOM 是另一種 XML 格式,功能類似於 RSS,但有更多可自定義的元素。ATOM 被認為是 RSS 的改進版,因為它具有更好的格式和結構,適合用於更複雜的內容發佈需求。
如何使用
用戶只需將網站提供的 RSS 或 ATOM 連結添加到他們的 RSS 閱讀器中即可。對於網站管理員來說,提供 RSS 或 ATOM Feed 是吸引讀者的重要方式之一,能有效提升內容曝光率。
產出 Hexo 的 RSS 摘要格式文章檔案
RSS 摘要格式可以方便 WordPress 導入,在 _config.yml 檔案中調整設定
在 Hexo 中,如果要生成 RSS 摘要(也稱為 RSS Feed),你需要安裝一個 RSS 插件並進行相應設定。以下是詳細步驟:
安裝 RSS 插件
方法一 : hexo-generator-feed
首先,你需要安裝 hexo-generator-feed
插件。打開終端機並在你的 Hexo 專案目錄下執行以下命令:
1 | npm install hexo-generator-feed --save |
方法二 : hexo-migrator-rss
後來有看到這一篇hexo官方說明文件
https://hexo.io/zh-tw/docs/migration
裡面有提到使用 hexo-migrator-rss
這個工具來進行轉移
首先,安裝 hexo-migrator-rss 外掛。
1 | $ npm install hexo-migrator-rss --save |
一旦外掛安裝完成,執行下列指令,從 RSS 轉移所有文章。 source 可以是檔案路徑或網址。
1 | $ hexo migrate rss <source> |
這邊我最終是使用 hexo-generator-feed 產生的
配置 _config.yml
安裝完成後,你需要在 Hexo 的主配置檔 _config.yml
中添加 RSS 的相關設定。以下是我設定的配置:
1 | feed: |
變數內容說明
- enable:啟用或停用此插件。預設為啟用。
- type:Feed 的類型。可以是
atom
或rss2
。指定為['atom', 'rss2']
以輸出這兩種類型。(預設:atom
) - path:Feed 的路徑。如果指定了多種類型,路徑必須按照類型的順序排列。(預設:
atom.xml/rss2.xml
) - limit:Feed 中顯示的最大文章數量。(設為
0
或false
以顯示所有文章) - hub:PubSubHubbub hub 的 URL。(如果不使用,請保持空白)
- content:(可選)設為
true
時,會在 Feed 中包含整篇文章的內容。 - content_limit:(可選)摘要內容的字數上限。僅在
content
設為false
且沒有自訂文章描述時使用。 - content_limit_delim:(可選)如果使用
content_limit
來縮短文章內容,僅在達到字數上限前的最後一個指定分隔符處截斷內容。預設不使用。 - order_by:Feed 的排序方式。(預設:
-date
,即按日期倒序) - icon:(可選)自訂 Feed 圖示。預設使用主設定中的 email 對應的 Gravatar。
- autodiscovery:自動發現 Feed 的設定。(預設:
true
)許多主題已提供此功能,如果需要停用,可能需要調整主題設定。 - template:自訂模板路徑。這個檔案將用來生成 Feed 的 XML 檔案,預設模板為
atom.xml
和rss2.xml
。即使插件設定為輸出多種 Feed 類型,也可以只指定一個自訂模板。
依照這樣以上設定執行產生時,會生成下面兩種內容的網址:
https://gahgah147.github.io/atom.xml
https://gahgah147.github.io/rss2.xml
生成靜態文件
設定完成後,執行以下命令生成靜態文件:
1 | hexo generate |
或是
1 | hexo g |
生成後,RSS 文件會自動保存在你的 public 資料夾中,路徑是 public/rss.xml
(或者你在配置中設定的路徑)。
實際上我平常部屬到github.io網頁上的流程是這樣,一樣可以更新到RSS 或是ATOM
1 | hexo clean && hexo deploy |
驗證 RSS
在瀏覽器中打開 http://你的網站域名/atom.xml
或是 http://你的網站域名/rss2.xml
(或你設定的路徑)檢查 RSS 是否正確生成。
例如我這邊產生的是https://gahgah147.github.io/atom.xml
和https://gahgah147.github.io/rss2.xml
我這邊成功產生的RSS畫面
將文章導入 WordPress
我後來是使用 FeedWordPress 這個套件來匯入
安裝完成之後在 New source 這邊輸入生成的 http://你的網站域名/atom.xml
然後在這邊點選 Update Now
以下是我成功匯入的Hexo 部落格文章
為什麼這邊Wordpress 的標題點進去之後都會導引到hexo的文章連結?
當使用 RSS 將 Hexo 的文章同步到 WordPress 時,如果標題點進去後會導引到 Hexo 的文章連結,這通常是因為 RSS Feed 中的文章連結 (link 標籤) 指向的是原始網站(即 Hexo 部署的站點)。
原因分析: RSS Feed 的結構中,每篇文章都有一個 link 標籤,這個標籤是用來指定該文章的原始連結。在你將 RSS Feed 匯入到 WordPress 時,這些連結會保留原本的目標(即 Hexo 部落格的 URL),因此在 WordPress 中點擊標題後會導向原始的 Hexo 網頁。
使用 FeedWordPress 套件時,默認情況下匯入的文章會保留 RSS Feed 中的原始連結,因此點擊標題時會跳轉到 Hexo 的文章連結。然而,FeedWordPress 提供了一些選項,可以讓你調整這種行為。
你可以按照以下步驟來修改:
設定 FeedWordPress 將文章匯入為 WordPress 本地內容:
- 在 WordPress 後台,進入「FeedWordPress」的設定頁面。
- 在「Feeds & Updates」中,找到並點選你已經設定的 RSS Feed。
- 在該 Feed 的詳細設定中,找到「Posts & Links」部分。
- 會看到一個選項「Permalinks point to:」,將此選項設置為「The local copy on this website」而不是「The original source of the syndicated item」。
這邊應該要改為The local copy on this website
這樣設置後,FeedWordPress 會將匯入的文章設置為本地的 WordPress 文章,並且點擊標題後將導向 WordPress 上的文章頁面,而非 Hexo 原始連結。
手動修改匯入的文章:
如果希望更加自定義某些文章的行為,也可以在文章匯入後手動編輯文章中的連結。
透過這些設定,就可以讓 FeedWordPress 將 RSS Feed 的文章匯入為 WordPress 本地內容,避免跳轉到 Hexo 的文章頁面。
總結
這樣就可以成功同步 Hexo 的文章到 WordPress 部落格文章上,有些細節還是要花點時間測試調整之後才知道如何改動,這些功能實際大約花了我3天時間,大家如果之後有需要把hexo部落格搬家可以參考看看,同時也可以考慮保留兩邊的部落格,因為自動化導入RSS的功能我覺得其實蠻方便的,另外Hexo加上github的架設其實不用額外花錢維護。