Blog Cover Image

Inspire you to have New thinking, Walk out your unique Road.

有的時候,你無意間遇到的一些故事,會激發你的靈感,改變你的想法,接下來你會用與之前全然不同的觀念去創造屬於你獨特的故事。

Sign @MinaYu.

[Blog] 從Wordpress 移動到 Hugo

Posted on

看著草稿夾有七篇文章等待我撰寫,就知道有一陣子沒有在update近況

感覺好久沒打文章了,我應該神隱一陣子了

我成功用Hugo架出我的網站,並部屬到Github上

這是我的新網站: minayu.site

還有許多功能還沒Ready,不過大致上已經做好根基了

該是寫文章來分享一下

由於上班之後,能夠做自己的事的時間很少,在動工之前,我找了兩三周的資料

就是不希望我又像 上次衝動租Bluehost ,架好網站後發現苗頭不對,所以趕緊搬回這邊XD

雖然找了很多網站,但是真正施工時,又遇上不少問題


此篇分享從Wordpress搬家到Hugo並部屬到Gituhb上


找尋資料

對於Hugo還一無所知,Hugo與Wordpress這種CMS是不太一樣的系統
我前後參考了幾了網站來了解Hugo是一個 靜態網站生產器
一開始覺得很不靠鋪,我也是wordpress用戶,少了資料庫的靜態網頁生產器怎麼能媲美功能美滿的CMS呢?
後來我錯了, 架好Hugo後,我發現我可以離開Wordpress的限制,自由的改動網站的外觀,以及添加任何我想要的功能

非常的自由,但要有一個認知就是

從此之後想要甚麼都要自己手動做qq

所以我看了些比對的文章,像是選個最好的靜態網頁生產器, Jekyll vs Hugo
首先也要記得參觀Hugo官網,選主題時你會常常在主題頁面中停留
用Hugo怎能不看Hugo官網呢?
再來我擔心沒有後台我就變成了不會寫文章的手殘
所以我找到了跟Hugo與Github相容的CMS: Forestry
(可是我昨天實際用過Forestry,不可否認很好用,但我現在卻正在調查她是不是造成我的網頁掛掉的兇手 …,等我查明後才會推薦,這讓我的心情很鬱悶)
有機會分下個文章跟大家分享


架設Hugo

我找了一堆網站,來輔助我架設Hugo

等到我真的開始實作後,我發現完全架不起來

這份簡報是我歷經千辛萬苦,架了幾十次,跟著架才成功的指南

請服用

 

我是使用Mac


開啟你的終端機! Lets DO it

首先安裝Hugo

$ brew install hugo

如果沒有brew,可以試試看 這篇文章 裝一下

*註: brew 就是mac系統的套件管理系統 Homebrew, 若是沒有 homebrew,可以找尋安裝指南,幾行指令就搞定!


新建一個網站

hugo new site mysite

此時您的網站已經初始生成


進入網站資料夾

cd mysite

內部的資料夾包刮 content, theme, layout, ….


安裝Theme

接著就去Hugo官網挑挑你愛的主題吧!
我是挑 Tranquilpeak
每個主題點進Download都會進到該主題的Github
那我們就用Git指令把主題裝到我們的網站資料夾內

進到主題資料夾安裝

$ cd themes

這邊以Tranquilpeak為例

$ git clone https://github.com/kakawait/hugo-tranquilpeak-theme.git

裝好後利用ls指令會看到hugo-Tranquilpeak-theme資料夾在您眼前

$ ls
hugo-Tranquilpeak-theme

接著看你要使用編譯器,還是手動拉

將一些相關文件從theme複製到你的根目錄

將你的主題theme資料夾內 “archetyps” 內的檔案複製到你的"archetyps"

這邊是用hugo-Tranquilpeak-theme 主題

hugo-Tranquilpeak-theme/archetyps/內容移動至 mysite/archetyps/

將你的主題theme資料夾內 exampleSite 內的檔案, 直接取代根目錄的檔案

忘記在哪邊看到,在簡報中是沒有看到這個部分

要順利先將主題的頁面刻出來,就將 exampleSite 內像是content, static 都直接複製取代掉你的mysite/ 中的content 及 static

將你的主題theme資料夾內 exampleSite 內的config.toml, 直接取代掉根目錄的config.toml

就是取代mysite/config.toml

接下來回到根目錄

將hugo run 起來 就能看到完整的主題頁面

$ hugo server

先求有再求好

接下來就是您的工作囉~

打開根目錄的config.toml 檔案, 將參數改一改,改成你要的


將Wordpress文章輸出, 轉為,並放入Hugo

當初要實作時,我參考了一個網站,發現完全不work

我也實際參觀Hugo migrations的頁面,照著上面的一些功能,也是不work xD

後來參照from wordpre to hugo 的文章後,使用了Exitwp ,才順利把文章從xml 轉到md檔

 

Wordpress後台 Export 你的文章 .xml

[你的wordpress url]/wp-admin/

可以進到wordpress的管理員後台

點選 Tools > Export

可以進去Export文章的網頁

*若沒有Export 要去 Plugin 安裝,wordpress.com都會有,Wordpress.org可能要安裝套件Plugin

選擇免費的 Start Export

開始把你的部落格點匯出,完成的檔案會寄信到您的信箱

 

用外部套件將Wordpress XML 轉為Hugo 使用md

參考網站: from wordpre to hugoExitwp

 

將 exitwp 下載下來

git clone https://github.com/thomasf/exitwp.git

 

將 wordpress xml 放進 wordpress-xml 資料夾中

 

*請注意這個套件的環境為python 2.7

pip install pip_requirements.txt

或者

pip install
  • html2text
  • PyYAML
  • Beautiful soup
 

驅動python程式來轉檔

python exitwp.py

幸運沒報錯的話,就可以進build資料夾領取md囉~

 

將轉出的.md檔放進hugo內

這個部分老實說要看不同的主題會有不同的要求,主要看你的 網站資料夾 內的 “archetyps” / themes/你的主題/archetyps/內的.md檔怎麼定義一篇部落格

將輸出的.md檔放進Hugo, 通常會是這幾個資料夾,取決於你的theme/exampleSite/content 內容

content/blog
content/post
content/posts

確認一下每篇md檔有沒有和archetyps 內.md規範符合

至少要有archetyps 內.md 內規定的幾個元素

有可能是

title
layout

 

注意一下是 yaml 還是toml
------
------

+++++
+++++

最後,到根目錄跑一次建置,進入 1313 看一下網頁有沒有問題,就可以準備部署囉!

hugo server

部屬至Github

將網頁建在哪都可以,AWS, GCP 或其他平台,而我看大部分的人都部屬在github上

這部分我自己做的也不是很好,沒辦法建議甚麼qq


2019.05.19

跟大家說個福音,那就是, 隨著我後來的功力大增,我終於知道怎麼好好的部署至Github啦!!!!

傳送門在此: [BLOG] 如何在GITHUB上架設HUGO網站

當然還是可以繼續往下讀,只是當時不怎麼會弄寫得不怎麼好就是XD


 

你可以參考hugo本身的網站

 

但我用的方法:這位部落格主提供的方法

在github分成兩個repo,一個是放你build網站的程式資料夾(當然你也可以選擇不存)

另外一個則是取名為

你的帳號名稱.github.io

 

這個指令會生成public資料夾

hugo
cd public

 

接著再按照新開的repo上有指南,把git init 後,往github repo 推送

 

應該不用幾分後,進入你的網站

[使用者名稱].github.io

就可以看到你的網站囉!

 

問題大哉問

*exitwp不能跑?

除了注意一下環境要是python2.7外,若想使用python3執行

我想可以試試看在exitwp.py 程式裡,把print 換成 print() 語法

我有試過,但我忘了有沒有成功

 

*exitwp系統說缺少yaml,可是我執行 pip install yaml 卻說沒有這個套件?

正確的套件是 PyYAML

pip install PyYAML

 

*theme 內只有theme.toml 沒有 config.toml?

theme 內的 config.toml 在 範例網站的資料夾內

應該會有個 exampleSite 的demo 網站\,裡面有demo用的config.toml

 

*為什麼我hugo server後畫面是空白的?

很多教學文章都是說將theme clone下來後,把config.toml檔改一改就好了

但實際上需要把 exampleSite 內的 archetyps, static 及 content 最好都取代根目錄的資料

(注意不要把exampleSite 內的content/post內容取代掉你的文章)

確認主題可以顯示後,再把你的部落格文章.md檔放進 content內

 

*為什麼我把我的文章放進content後跑不出來?

我想這要參考一下 theme 內的 archetyps 怎麼定義為一篇文章

 

 

以上大致上是我架站時發生的一些問題

原先以為調查兩三周後可以順利實作,但真正到了實作時又遇上了一些困難,但我的網頁初版還是用了我半天的時間內完成

 

只不過我昨天手賤 去使用了第三方的網站來讀取我的github 直接做操作

在我歡樂愉悅的沉浸在這美麗又舒服的操作時,發現他把我很多網頁都搞壞了

偏偏這假日忘了帶電腦回來, 好鬱悶阿 …..