環境配置
Hexo官網上本就有對Hexo安裝及使用的詳細介紹,強烈推薦。這里來講述自己安裝的親身步驟,或有區別。
1.Node.js
用來生成靜態頁面。移步Node.js官網,下載v6.10.0 LTS 一路安裝即可。
2.Git
用來將本地Hexo內容提交到Github上。Mac OS自帶Git,這里不再贅述。如果沒有可以參考Hexo官網上的安裝方法。
安裝Hexo
當Node.js和Git都安裝好后就可以正式安裝Hexo了,終端執行如下命令:
sudo npm install -g hexo
輸入管理員密碼(Mac登錄密碼)即開始安裝 (sudo:linux系統管理指令 -g:全局安裝)
注意坑一:Hexo官網上的安裝命令是$ npm install -g hexo-cli,安裝時不要忘記前面加上sudo,否則會因為權限問題報錯。
初始化
終端cd到一個你選定的目錄,執行hexo init命令:
hexo init myblog
myblog是你建立的文件夾名稱。cd到myblog文件夾下,執行如下命令,安裝npm:
npm install
執行如下命令,開啟hexo服務器:
hexo s
此時,瀏覽器中打開網址http://localhost:4000,能看到如下頁面:
本地設置好后,接下來開始關聯Github。
關聯Github
1.創建倉庫
登錄你的Github帳號,新建倉庫,名為用戶名.github.io固定寫法,如jovelin.github.io即下圖中所示:
本地的myblog文件夾下內容為:
_config.yml
db.json
node_modules
package.json
scaffolds
source
themes
終端cd到myblog文件夾下,vim打開_config.yml,命令如下:
vim _config.yml
打開后往下滑到最后,修改成下邊的樣子:
deploy:
type: git
repository: https://github.com/jovelin/jovelin.github.io.git
branch: master
你需要將repository后jovelin換成你自己的用戶名,地址在GitHub倉庫獲取。hexo 3.1.1版本后type:值為git。
注意坑二:在配置所有的_config.yml文件時(包括theme中的),在所有的冒號:后邊都要加一個空格,否則執行hexo命令會報錯,切記 切記 切記!
在myblog文件夾目錄下執行生成靜態頁面命令:
hexo generate 或者:hexo g
此時若出現如下報錯:
ERROR Local hexo not found in ~/blog
ERROR Try runing: 'npm install hexo --save'
則執行命令:
npm install hexo --save
若無報錯,自行忽略此步驟。
再執行配置命令:
hexo deploy 或者:hexo d
注意坑三:若執行命令hexo deploy
仍然報錯:無法連接git或找不到git,則執行如下命令來安裝hexo-deployer-git:
npm install hexo-deployer-git --save
再次執行hexo generate和hexo deploy命令。
若你未關聯Github,則執行hexo deploy命令時終端會提示你輸入Github的用戶名和密碼,即
Username for 'https://github.com': GitHub用戶名
Password for 'https://github.com': GitHub密碼
hexo deploy 命令執行成功后,瀏覽器中打開網址http://jovelin.github.io(將 jovelin 換成你的用戶名)能看到和打開 http://localhost:4000 時一樣的頁面。
為避免每次輸入Github用戶名和密碼的麻煩,可參照第二節方法
2.添加ssh key到Github
1.1.檢查SSH keys是否存在Github
執行如下命令,檢查SSH keys是否存在。如果有文件id_rsa.pub或id_dsa.pub,則直接進入步驟1.3將SSH key添加到Github中,否則進入下一步生成SSH key。
ls -al ~/.ssh
1.2.生成新的ssh key
執行如下命令生成public/private rsa key pair,注意將your_email@example.com換成你自己注冊Github的郵箱地址。
ssh-keygen -t rsa -C "your_email@example.com"
默認會在相應路徑下(~/.ssh/id_rsa.pub)生成id_rsa和id_rsa.pub兩個文件。
1.3.將ssh key添加到Github中
Find前往文件夾~/.ssh/id_rsa.pub打開id_rsa.pub文件,里面的信息即為SSH key,將這些信息復制到Github的Add SSH key頁面即可。
進入Github –> Settings –> SSH keys –> add SSH key:
Title里任意添一個標題,將復制的內容粘貼到Key里,點擊下方Add key綠色按鈕即可。
3.發布文章
終端cd到myblog文件夾下,執行如下命令新建文章:
hexo new "firstArticle"
名為firstArticle.md的文件會建在目錄/blog/source/_ posts下,firstArticle是文件名,為方便鏈接不建議摻雜漢字。你當然可以用vim來編輯文章。還可以用Mou、Atom編輯器,支持預覽!
文章編輯完成后,終端cd到myblog文件夾下,執行如下命令來發布:
hexo generate //生成靜態頁面
hexo deploy //將文章部署到Github
至此,Mac上搭建基于Github的Hexo博客就完成了。下面的內容是介紹安裝theme和綁定個人域名,如果有興趣且還有耐心的話,請繼續吧。
安裝Theme
你可以到Hexo官網主題頁去搜尋自己喜歡的theme。這里以hexo-theme-next為例
終端cd到 myblog 目錄下執行如下命令:
git clone https://github.com/iissnan/hexo-theme-next themes/next
將myblog目錄下_config.yml里theme的名稱landscape修改為next
終端cd到myblog目錄下執行如下命令(每次部署文章的步驟):
hexo clean //清除緩存文件 (db.json) 和已生成的靜態文件 (public)
hexo g //生成緩存和靜態文件
hexo d //重新部署到服務器
至于更改theme內容比如名稱、描述、頭像等去修改myblog/_ config.yml 文件和myblog/themes/next/_ config.yml 文件中對應的屬性名稱即可,不要忘記冒號: 后加空格。NexT 使用文檔里有極詳細的介紹。
注意坑四:hexo g 時會根據NexT.Mist主題重新生成緩存和靜態文件,如果要修改頭像的話,記得替換/myblog/themes/next/source/images/avatar.gif圖片, 其它的文件同理!
綁定個人域名
現在使用的域名是Github提供的二級域名,也可以綁定為自己的個性域名。購買域名,可以到GoDaddy官網,網友親切稱呼為:狗爹,也可以到阿里萬網或新網購買。我是在萬網買的,可直接在其網站做域名解析。
1.Github端
在/myblog/themes/next/source目錄下新建文件名為:CNAME文件,注意沒有后綴名!直接將自己的域名如:jovelin.cn寫入。
2.域名解析
如果將域名指向一個域名,實現與被指向域名相同的訪問效果,需要增加CNAME記錄。登錄萬網,在你購買的域名后邊點擊:解析 –> 添加解析
記錄類型:CNAME
主機記錄:將域名解析為example.com(不帶www),填寫@或者不填寫
記錄值:jovelin.github.io. (不要忘記最后的.,jovelin改為你自己的用戶名),點擊保存即可,如下圖:
[海外]是從國外訪問時的鏈接,開始使用[默認]國內就行。
此時,點擊訪問http://jovelin.cn和訪問http://jovelin.github.io效果一致。
1、把Github項目轉移到Coding.net
操作如下:
1.首先找到github的托管地址https://github.com/***/*****.git
比如:https://github.com/jovelin/jovelin.github.io.git
2.在coding.net上創建個私有倉庫,不用同步本地代碼比如新倉庫地址為https://git.coding.net/xxx/xxxxx.git
比如:https://git.coding.net/jovelin/jovelin.git
3.在控制臺cd到桌面路徑
git clone --bare https://github.com/***/******.git
//--bare 創建的克隆版本庫都不包含工作區,直接就是版本庫的內容,這樣的版本庫稱為裸版本庫。
然后桌面就會出現一個xxxxx.git 這就是在github上的項目
4.使用鏡像推送的方式上傳代碼到新的服務器
cd xxxx.git
git -push --mirror https://git.coding.net/xxx/xxxxx.git
//https://git.coding.net/xxx/xxxxx.git 是coding.net倉庫地址
5.刪除本地代碼
cd ..//返回上一路徑
rm -rf xxxx.git //干掉
6.從新服務器clone下來
git clone https://git.coding.net/xxx/xxxxx.git
2、將個人博客同時部署到 GitHub 和 Coding
1、首先到 Coding 上注冊并開一個項目,項目名稱和用戶個性后綴相同(方便二級域名訪問博客),拿到項目的 https 地址(上面操作已克隆好GitHub上的項目)
2、打開本地 myblog 目錄下的 _config.yml 文件,修改如下
deploy:
type: git
repository:
github: https://github.com/jovelin/jovelin.github.io.git
coding: https://git.coding.net/jovelin/jovelin.git
branch: master
3、cd 到本地 myblog/source 目錄下執行如下命令新建 Staticfile 文件
touch Staticfile //名字必須是Staticfile
原因是 coding.net 需要以這個文件來作為靜態文件部署的標志,就是說看到這個 Staticfile 就知道按照靜態文件來發布。
4、執行發布命令 hexo g 、 hexo d
5、個人域名添加兩條 CNAME 解析。將 jovelin.github.io. 解析為 [海外] ,將 jovelin.coding.me. 解析為 [默認]
這樣就是為了從國內訪問 jovelin.cn 就是訪問 Coding 上的博客項目,從國外訪問 jovelin.cn 就是訪問 GitHub 上的博客項目。
6、到 Coding 上的博客項目主頁,點擊 Pages服務 輸入部署分支 master 立即開啟
這樣就可以訪問自己在 Coding 上的個人博客了 jovelin.coding.me/jovelin 如果像這樣你的用戶后綴名與博客項目名稱相同你還可以省略項目名稱直接訪問 jovelin.coding.me
7、添加域名綁定,輸入個人域名就 OK 了,可能需要耐心等待幾分鐘,這樣在國內訪問自己的博客就快得多了。
OK,大功告成!