有一個個人博客或許是作為現(xiàn)代人的標配,今天就來一步一步地講講利用github和cloud9創(chuàng)建自己的博客。
Step1 在github上創(chuàng)建帳戶
plan里選擇unlimited public repositories for free
接下來就需要驗證你的電子郵件。
Step2 利用github page創(chuàng)建博客
Github Pages 是面向用戶、組織和項目開放的公共靜態(tài)頁面搭建托管服務(wù),站點可以被免費托管在Github 上,你可以選擇使用Github Pages 默認提供的域名github.io 或者自定義域名來發(fā)布站點。
注意repository name需要填寫的是:你的用戶名.github.io
創(chuàng)建完repository后,就需要用到博客模板了。
現(xiàn)在github上主流的博客框架有hexo和jekyll,兩個都使用過后,覺得還是hexo更加簡單方便,所以這里主要介紹用hexo搭建博客。
Hexo 是一個快速、簡潔且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在幾秒內(nèi),即可利用靚麗的主題生成靜態(tài)網(wǎng)頁。
hexo的安裝需要Node.js和Git,在linux和mac上可以用代碼實現(xiàn)安裝,而在windows上比較蛋疼,所以我用到了cloud9,一個網(wǎng)頁版的linux虛擬機。
Step 3 利用cloud9安裝hexo
首先,需要在cloud9上創(chuàng)建一個工作環(huán)境,選項如下:
其中,clone from git or mercurial URL里填的不用管,留空白就行
hexo的安裝需要Node.js和Git,下面將介紹這兩個東西的安裝
3 .1 安裝git
在命令行里輸入
sudo apt-get install git-core
3.2 安裝Node.js
終端中輸入:
nvm install stable
3.3 安裝hexo
有了上面兩個軟件后,安裝hexo只需在終端中輸入:
npm install -g hexo-cli
Step 4 用hexo建站
安裝完hexo后,就可以利用hexo建站。代碼也很簡單,只有三條
hexo init yourname
初始化,其中yourname是你的文件夾名字可隨意取
cd yourname
進入到你的文件夾
npm install
這里需要特別提一下,官方的文檔里并沒講解如何配置與Github pages
進行關(guān)聯(lián),在此特意說一下配置信息。進入到你的站點(使用hexo init yourname命令時,這里的yourname文件夾目錄,然后以文本編輯器打開_config.yml
文件,并滾動到最下面添加如下配置信息(注意最下邊有deploy
和type字段,覆蓋這兩個字段或者刪除這兩個字段然后復制下面的四個字段也行。):
deploy:
type: git
repo: 在github中復制粘貼
branch: master
把其中repo字段的值替換成你的github pages提交代碼的git地址。
然后在命令行中輸入:
hexo clean
hexo g
hexo d
第一條是清楚緩存(clean),第二條命令是生成本地發(fā)布文件夾(generate),第三條命令才是最后的發(fā)布到github pages上(depoly)
陷阱提醒
剛開始始終deploy不上,網(wǎng)上找了半天才知道有兩個陷阱:
(1)
ERROR Deployer not found: git
解決辦法是安裝一個擴展:
npm install hexo-deployer-git --save
(2)
ERROR: Permission to zhang-yinping/zhang-yinping.io.git denied to xxx
Could not read from remote repository.Please make sure you have the correct access rights and the repository exists.
則是因為沒有設(shè)置好public key所致。在本機生成public key(參考github幫助):
#ssh-keygen -t rsa -b 4096 -C "xxx@xxx.com"
然后在.ssh目錄下會生成兩個文件,id_rsa.pub和id_rsa.然后登陸github,在SSH設(shè)置頁面添加上剛才的public key文件也就是id_rsa.pub的內(nèi)容即可。
這里可以用指令:
ls -al ~/.ssh
然后點開id_rsa.pub文件:
復制里面內(nèi)容,粘貼到github的ssh設(shè)置里就可以了:
能正常運行hexo d之后,你的網(wǎng)頁也就上傳到github了,可以輸入網(wǎng)址:
https://用戶名.github.io/
查看才建的博客:
是不是感覺很難看?接下來我們就要套用模板了
Step5 使用next模板
next是我發(fā)現(xiàn)的比較漂亮的hexo模板,詳見:next
Hexo 安裝主題的方式非常簡單,只需要將主題文件拷貝至站點目錄的 themes 目錄下, 然后修改下配置文件即可。具體到 NexT 來說,安裝步驟如下。
首先下載主題:
git clone https://github.com/iissnan/hexo-theme-next themes/next
接下來,將配置文件_config.yml中的theme改為next
接下來,就是用那老三條指令:
hexo clean
hexo g
hexo d
之后查看網(wǎng)站
https://用戶名.github.io/
更多設(shè)置詳見官網(wǎng)
至此,博客已搭建完畢,當然還有很多其他設(shè)置,像綁定獨立域名,添加404公益頁面,添加about頁面等,可以看這里
Step6 發(fā)布新博文
建站之后有默認的一篇博文「Hello World」,里面詳述了如何創(chuàng)建新博文。除了利用這篇博文中介紹的hexo new post NAME的命令之外,你還可以通過在「站點根目錄」的source/_posts文件夾中創(chuàng)建 Markdown 文件來創(chuàng)建新博文,不過要在文件開頭加上這么幾行:
---
title: 用github和cloud9創(chuàng)建自己的博客
date: 2017-08-2
tags:
- blog
- markdown
---
最后,還是用那老三條指令:
hexo clean
hexo g
hexo d
就能在網(wǎng)頁里看到新的博文了,并且有目錄:
ps:測試博客可以用指令:
hexo server -i $IP -p $PORT
總結(jié)
- 論壇里經(jīng)常有人問,換了電腦怎么更新blog,用cloud9這種辦法就可以完美解決,只要那臺電腦上有瀏覽器。
- cloud9里存的文件是一直在那個項目里的,他相當于你的一臺虛擬電腦,里面裝的各種軟件也會一直存在。
- 當然可以用cloud9去做linux下的一些事情,新建一個項目就好。
- 剛開始找建博客資料時遇到各種命令行代碼,而我用的又是windows,走了不少彎路,用這種方法只要把代碼拷貝到cloud9里運行就好。
- 希望每個人都可以完成自己的blog建立
附錄
最后想說說設(shè)置ssh時的坑。
設(shè)置ssh是為了在用hexo d時不用輸入用戶名和密碼,在開始時,我用了https的方法,每次都需輸入用戶名密碼,repo在換成ssh之后,各種不行,最后發(fā)現(xiàn),這都是權(quán)限問題。
剛開始輸入hexo d時遇到的問題類似:
permission denied, open '/home/ubuntu/workspace/zhang-yinping/db.json'
一看permission denied,想當然在前面加了sudo,沒想到這讓我進入了另一個坑。
這下錯誤變成了:
Error: Permission denied (publickey). fatal: Could not read from remote repository
網(wǎng)上找了半天解決辦法,最后終于找到,詳見這里
原因:
生成ssh公鑰時,用的命令是 ssh-keygen -t rsa -C “xxx@xx.com”
沒有加sudo,生成的公鑰是當前用戶的,路徑是 ~/.ssh。而sudo hexo deploy命令執(zhí)行的時候應(yīng)該會去讀取的root用戶的公鑰,很顯然root下還沒有對應(yīng)的公鑰信息生成。
解決方法
生成ssh公鑰時,用命令 sudo ssh-keygen -t rsa -C “xxx@xx.com”
提取公鑰信息并配置到github中通過
sudo cat /root/.ssh/id_rsa.pub
先顯示公鑰,再直接復制,然后就成功啦。
此時再回到最開始的問題,如果我們不用sudo呢?
于是我找到了chown
sudo chown ubuntu:ubuntu -R ./zhang-yinping
其中的兩個ubuntu分別是用戶名和組名,可以通過whoami和groups找到
chown的詳細用法見這里
這樣修改以后,hexo d這條指令就可以正常使用了。