如果大家看到這篇文,可能已留意到《樂山樂水》的網站改變了樣子,因為我們搬家了。
《樂山樂水》開始於2014年,一直以來都是一個小網誌。我們一直以來都是以分享信仰為宗旨。最忙碌的時間,有幾位朋友願意定期寫文,實在十分感激。十年過去,每人也有改變,各人生活變得忙碌,有人能夠轉跑道真正能夠靠文字分享信仰為職業,實在感謝天主的恩寵。人變了,網誌也要跟着變。這就是《樂山樂水》搬家的契機。
既然搬家了,也以一篇文章作留念。當中會有點技術性,看不明白也不太重要。
十年前開站 #
十年前由 WordPress 起家,是因為 WordPress十分容易支援多人參與之餘,由不需要用到其他的個人網上戶口。相較之下,當時也同樣考慮的 blogger 因為屬 Google 旗下,會顯示出 Google 戶口圖片或帳號名稱,這樣私隱度就明顯不足。當時開始《樂山樂水》時,是以多人合作為考慮,所以私隱方面不能忽視。
開站後一段時間,便買了 https://mountainandwater.blog 網站,和 https://mountainandwater.wordpress.com 並用,而使用 .blog 這個 sub-domain的確感覺專業些,也是提醒自己要寫下去。
WordPress 的問題 #
十年之間,不但《樂山樂水》變了, WordPress 也變了。WordPress 的文章編寫工具由簡單的編輯器變成了複雜的、以一個個區塊為單元為的編輯器。看似功能強大,但很易出錯。例如要改變某一段文字的格式,其實很容易出錯;而且編輯工具卻不能反映到文章最終的樣子。往往是在準備刊出時,筆者才發現一大段的文字格式錯了。實在令人沮喪。而且這個區塊編輯器背後是用 WordPress 自己的 Syntax 去記錄文字格式,而非使用通用的 Markdown 格式。所以就算筆者選擇直接以程式碼編寫,也非常不方便。
另一方面,從前 WordPress 的流動軟件很簡單,但已經足夠筆者使用:上載圖片、打草稿、觀看網站流量,一個手機程式就可以了。但是現在,程式變大了,但檢視流量的功能卻要移到另一個 JetPack程式,不能用一個手機程式完成所有的工作了。
WordPress 的變化可能對一些 power user更方便,提供了更仔細的分工,讓一個團隊的各人能夠專心自己的工作;但對於《樂山樂水》來說,這些變化越來越不合適了。同一時間, WordPress的收費不算便宜。最近的帳單是兩年 US$70 多,相對我能夠用到的功能可能沒有十分之一,筆者覺得這個錢越來越不值得了。
最後一個重要的原因是控制權的問題。其實由《樂山樂水》第一天開始,筆者就對於要將文章全部放上一個他人擁有的平台有一點保留。萬一這個平台因各種原因把筆者的帳號停用的話,《樂山樂水》就不止是暫停數天,而是多年來的文章都會被別人沒收了。在這個對基督信仰越來越敵視的世界,筆者一直都希望找一個方法,不必依賴特定的平台,自己重新全權擁有所有資料,隨時可以在新地方重建網站。
尋找替代方案 #
筆者早前的幾年生活實在很忙碌,上年年尾開始才慢慢回覆寫文章,希望重新記錄自己的信仰,和其他信友分享。以此為契機,筆者也開始為網站尋找一個離開 WordPress的機會。
曾經有一段時間,《樂山樂水》網站也有些留言,但老實說在網站內的留言都是很少;思考了一段時間後,便決定不將留言區功能當為首要功能。考慮到《樂山樂水》只是靜態網站,只是要處理大量文字及少量圖片,便由這個方向尋找合適的架構。
現在最火熱的 React、Vue 都很強調互動功能及簡便的資料存取,對《樂山樂水》來說都實在是太過用牛刀殺雞了。結果尋找了一段時間,便發現以 Go 語言為基礎的Hugo十分合適。Go 言語比起 React/ Vue所用的 JavaScrip 更快,這使網站每次更新的速度更快。 Hugo 本身就是以簡單靜態網站目標,每一篇文章都是以上述提過的 Markdown 語言記錄,簡單方便,是筆者已熟習的工具。
其中一個選擇新架構的重要考慮是資料過渡的問題。 Hugo 沒有官方的工具,但社群已有不少有心人編寫了由 WordPress 下載資料,過渡到 Hugo 的工具。
而 Hugo 的社群已編寫了不了的主題,安裝容易,更加可以在主題之上再自己改動。筆者選用的 Blowfish 主題更是用業界標準的 tailwind 做排版,不用自己寫 CSS,十分方便。
參考了不少資料,筆者便決定試用 Hugo server。Hugo 伺服器也支援 Disqus 留言區,如果日後需要加回留言區也是可行的。
轉移資料及重建網站 #
由 WordPress 下載資料不太難,只需要使用官方的匯出功能即可下載一個 xml檔案。筆者最終選用了 wp2hugo 這個工具。試用了幾個不同的設定,終於把所有的文章及相關的圖片、pdf檔案都下載到本機。這時才發現,所有文章都失去了一層層的架構,而檔案名稱也亂七八糟。筆者猜想是中文字碼的問題。
幸好是 wp2hugo 轉化出來的文章 markdown 文章都有資料齊全的 frontmatter。筆者想了一想,與其再花時間試另一些工具,索性把心一橫,自己寫了幾行代碼,讓電腦按每個 markdown 檔案記錄的網址,改名並抄到另一處。結果筆者就得出一個以年、月、日、文章名稱分類的檔案架構了。
Hugo 使用簡單,馬上就可以起動了。接着便是選擇主題。結果在簡約主義及豐富設計兩端之間,選用了較中庸而適合《樂山樂水》的 Blowfish 主題。這個主題本身已有相當多的自訂設計,一兩行的設訂碼就能為網站添加新功能、新菜單。
有一件麻煩事是下載回來的文章檔案有很多仍帶有 WordPress 專屬的文字格式,離開 WordPress 之後根本就沒有用。所以要另花一些時間改回來。但另一方面,在舊文章添加兩行代碼,便能將幾篇文章納為一個系列,使閱讀得方便。大家可以到這裡看看效果。筆者想把舊有文章整理一下,讓讀者方便翻閱舊文。
網頁寄存 #
網站在本機成功起動,接下來就是尋找網站託管。參考了不同的意見,便試用了 Netlify 和 Cloudflare Pages。兩個供應商都能夠和 GitHub 完美結合,一有新改動便能自動更新。再參考了兩間公司對保安、每月更新次數、儲存空間的政策,最終便決定使用 Cloudflare Pages
最後一步便是將 https://mountainandwater.blog 這個網址轉到 Cloudflare 管理以及指向新的網站。首要在 WordPress 的 custom domain 鎖定解除,再由 Cloudflare 這一邊提出轉移申請。睡前申請,第二天起床便轉移成功了。
待辦工作 #
搬遷到新網站,舊網站便能夠慢慢地退下來。筆者想可能之後會將 wordpress 那邊改為私人,作儲存留底之用。新網站使用了新的架構,多了一些新功能。筆者希望慢慢把不同的系列找出來,讓各位能夠易於各位讀者參閱。
結論 #
在工餘時間,大概花了一個多星期,將網站由 WordPress 遷移到 Cloudflare Pages。其實功能方面是次要,最大的得着是:
- 實現資料自主。現在所有的文章、圖片、檔案都重回自己的控制。不必害怕某一個網站供應商會因為信仰、或支持被逼害的教會而禁言。反正從沒有想過靠《樂山樂水》賺取一分一毫。能夠靠自身的能力,獲得更大的自由去分享基督徒信仰,是一種恩寵。
- 減少開支。從前在 WordPress 每兩年要付大概 $70多美金。現在自行架設網站,使用最基本的 Cloudflare Pages和 domain 功能,免費。實在沒有可以投訴的地方。
雖然《樂山樂水》讀者不多,但天主能夠給予我能力和各位讀者在互聯網分享信仰,筆者實在要感謝各位支持和天主的大恩大德。這令我想起保祿的話:
我若傳福音,原沒有什麼可誇耀的,因為這是我不得已的事;我若不傳福音,我就有禍了。假使我自願作這事,便有報酬;若不自願,可是責任已委託給我。這樣看來,我的報酬是什麼呢﹖就是傳佈福音時白白地去傳,不享用我在傳福音上所有的權利。我原是自由的,不屬於任何人;但我卻使自己成了眾人的奴僕,為贏得更多的人。(格林多人前書9:16-19)
當然保祿是大宗徒,筆者只是在工餘時間、安坐自己房間用鍵盤打字的最小的弟兄。願籍保祿宗徒的代禱,我的文字能夠在我不知道的地方,成為傳播天主恩寵的工具。