從 2014 開始在Logdown 經營部落格至今,終於在近期決定花一點時間搬家。
這次搬家,是採取全站搬移,所以在匯出 Logdown 所有文章後,花了一些時間將網站內容灌到 Hugo,整體來說,流程還算順利,大概花了兩天完成新站建立,新家位置在這裡:
https://hoohoo.top/blog
在這裡,大概分享一下我搬家的流程,希望對於有同樣需求的人,可以幫得上忙:
Logdown 搬家流程分享
(1) 匯出 Logdown 文章
首先在 Logdown 登入後台,可以直接點擊匯出 Logdown 內容,大約幾分鐘後就會收到文章原始內容。
這時就將原始檔案檔案下載至本地。
(2) 轉導 logdown.meta
下載檔案後,要再登入 logdown dashboard,在文章管理列表,開啟 chrome console 介面
執行以下指令,會產生 json 格式檔案,接著在 ConvertToHugo 目錄下 建立 logdown.meta ,將輸出的 json 資料貼上並儲存。
const type2status = {draft: 'icon-inbox', published: 'icon-globe', private_mode: 'icon-lock'};
const z = [...document.querySelectorAll('ul.logdown-posts-list li.post')]
.map(l => {
const cl = l.classList;
cl.remove('group', 'post');
const ret = {
type: cl.item(0),
id: l.id,
title: l.querySelector('.post-title').textContent,
status: l.querySelector('.post-status i').className,
timestamp: l.querySelector('.post-timestamp').textContent,
};
cl.add('group', 'post');
return ret;
});
console.assert(z.every(l => type2status[l.type]===l.status));
console.log(JSON.stringify(z));
(3) 下載 ConvertToHugo
接著,我們要透過轉檔程式,將文章轉換成 Hugo 支援的內容。
將轉檔程式 ConvertToHugo clone 到本地
git clone https://github.com/adon988/ConvertToHugo
開始轉換
在 ConvertToHugo 目錄執行以下指令
python3 ConvertToHugo.py jekyll-post-dir output-dir
匯出後,當啟用 Hugo 後,發現轉換的格式還是有非常多的問題(其中,包含本人過去在 content 加了非常多的客製化內容導致的問題)
雖然分類 (tags) 還在,但是在 Logdown 設定的"分類"全部都不見,只好一篇篇硬幹重新標記
在這部分費了滿多時間,但大致上搬家的過程還算順利,大約 2 天左右完成新站建立。
如果你在換站過程有遇到問題,可以在底下留言說明
最後,如果你喜歡這篇文章,請幫忙點個讚