之前 Libersky 的 hexo 環境放置在筆電中,如果要筆電沒放在身上,寫完可能要丟到學校才可以 generate 並 deploy,當然可以用 remote software 的方式解決,不過筆電要一直開著很麻煩,原先是想說把 hexo 環境重新佈署到 VMware,不過這種方法還是需要到處帶著隨身碟/行動硬碟,而且相對來說不太優雅(一個系統很肥阿),找 hexo 轉移電腦相關資料過程中,突然看到一篇如何在 Koding 雲端開發平台上建置 Hexo 環境,受到這篇的啟發,決定將筆電的 hexo 環境遷移到 Cloud 9,這個 Cloud IDE 上面。
有關於 Cloud 9,節錄至 Wikipedia:
Cloud9 provides an open source integrated development environment in the cloud. It supports more than 40 languages, with class A support for PHP, Ruby, Python, JavaScript/Node.js, and Go. It enables developers to get started with coding immediately with pre-setup environments (workspaces), collaborate with their peers with collaborative coding features, and web development features like live preview and browser compatibility testing.
簡單的說只要有 browser 並且連的上網路,就可以到處編輯/生成,非常的方便。
遷移的步驟,具體如下:
- tar 指令打包原本的 hexo 目錄
- 將 tar 上傳到 Cloud 9 並解壓縮到 workscape(/home/ubuntu/workspace)
- npm 安裝 hexo npm install -g hexo@2.7.1
- cd hexopath
- hexo generate
注意第三步驟,[email protected],將斜體的地方換成自己原本 hexo 環境中的版本號(hexo -v 查詢),其實遷移生成環境把握一個原則:讓欲遷移的環境與原本的環境盡量相同,基本上就可以無痛遷移。
hexo: 2.7.1
os: Linux 3.14.13-c9 linux x64
node: 0.10.33
Ming 原先的 node.js 版本不是 Cloud 9 Custom 預設 node.js 0.10.33,不過版本號都是 10 開頭,就沒有重新 compile node.js,如果原先 hexo 環境中的 node.js 版本(node -v 查詢)與 Cloud 9 相差過大的話,可以考慮重新 compile node.js(記得先刪除內建的 node.js 版本,可以參考Uninstall Node.JS using Linux command line?)。
補上一些 issue:
安裝 Dropbox 同步 hexo 環境
今年 Ming 跟 Hard Disk 有點相衝,掛了兩顆硬碟,所以資料備份是很重要的,因為 hexo 環境整個目錄占用的空間其實很小(< 100 MB),所以可以考慮利用 Dropbox 備份整個 hexo 目錄。
要如何在 Linux 安裝 Dropbox 請參考:
安裝完之後,家目錄會多一個 Dropbox 資料夾,因為我把 hexo 目錄放置在 ~/workspace 下面,而 Dropbox 則在 ~/Dropbox,所以如果要可以順利同步 hexo 目錄的話,可以考慮用 ln(符號鏈結) 的方式進行。
Ming 的 hexo 目錄在:/workspace/libersky//Dropbox/
Ming 的 Dropbox 目錄在:
輸入以下指令,可以讓 Dropbox 同步 hexo 目錄。
ln -s ~/workspace/libersky/ ~/Dropbox/
在 Cloud 9 預覽 hexo generate 生成的環境(hexo server)
之前在筆電上,hexo generate 完之後,都可以透過 hexo server 進行預覽生成後的檔案,Cloud 9 一樣可以進行預覽。
在 hexo 目錄下面:
hexo server -i $IP -p $PORT
在 Cloud 9 IDE 右上角的 Share 裡面的 Preview 欄位中的網址(格式:http://<workspacename>-c9-<username>.c9.io)即可預覽生成後的環境。
hexo 常用指令
hexo generate
hexo server
hexo new “title”