使用ATOM 和 RSS 格式把Hexo內容搬到 WordPress 上的流程

ATOM 和 RSS 的簡介

RSS(Really Simple Syndication)ATOM 都是用來分發網路內容的標準格式。它們的主要目的是幫助使用者訂閱和自動獲取網站更新,無需手動訪問網頁。這對於部落格或新聞網站非常有用,因為它能讓讀者即時接收新文章的通知。

RSS

image

RSS 是一種 XML 格式,常見的版本為 RSS 2.0。使用 RSS,網站可以將最新的內容發布到訂閱者的 RSS 閱讀器中。讀者可以使用 RSS 閱讀器訂閱 RSS Feed,當網站更新時,內容會自動推送到他們的裝置上。

ATOM

image

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

image

方法二 : 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
2
3
4
5
6
7
8
9
10
feed: 
type:
- atom
- rss2
path:
- atom.xml
- rss2.xml
limit: 0
hub:
content: true

變數內容說明

  • enable:啟用或停用此插件。預設為啟用。
  • type:Feed 的類型。可以是 atomrss2。指定為 ['atom', 'rss2'] 以輸出這兩種類型。(預設:atom
  • path:Feed 的路徑。如果指定了多種類型,路徑必須按照類型的順序排列。(預設:atom.xml/rss2.xml
  • limit:Feed 中顯示的最大文章數量。(設為 0false 以顯示所有文章)
  • 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.xmlrss2.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.xmlhttps://gahgah147.github.io/rss2.xml

我這邊成功產生的RSS畫面
image

https://gahgah147.github.io/atom.xml

將文章導入 WordPress

我後來是使用 FeedWordPress 這個套件來匯入

image

安裝完成之後在 New source 這邊輸入生成的 http://你的網站域名/atom.xml
image

然後在這邊點選 Update Now
image

以下是我成功匯入的Hexo 部落格文章
image

為什麼這邊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 提供了一些選項,可以讓你調整這種行為。

你可以按照以下步驟來修改:

  1. 設定 FeedWordPress 將文章匯入為 WordPress 本地內容:

    • 在 WordPress 後台,進入「FeedWordPress」的設定頁面。
    • 在「Feeds & Updates」中,找到並點選你已經設定的 RSS Feed。
    • 在該 Feed 的詳細設定中,找到「Posts & Links」部分。

image

  • 會看到一個選項「Permalinks point to:」,將此選項設置為「The local copy on this website」而不是「The original source of the syndicated item」。

image

這邊應該要改為The local copy on this website

這樣設置後,FeedWordPress 會將匯入的文章設置為本地的 WordPress 文章,並且點擊標題後將導向 WordPress 上的文章頁面,而非 Hexo 原始連結。

  1. 手動修改匯入的文章:

    如果希望更加自定義某些文章的行為,也可以在文章匯入後手動編輯文章中的連結。

透過這些設定,就可以讓 FeedWordPress 將 RSS Feed 的文章匯入為 WordPress 本地內容,避免跳轉到 Hexo 的文章頁面。

總結

這樣就可以成功同步 Hexo 的文章到 WordPress 部落格文章上,有些細節還是要花點時間測試調整之後才知道如何改動,這些功能實際大約花了我3天時間,大家如果之後有需要把hexo部落格搬家可以參考看看,同時也可以考慮保留兩邊的部落格,因為自動化導入RSS的功能我覺得其實蠻方便的,另外Hexo加上github的架設其實不用額外花錢維護。

返回頂端