本文部分內(nèi)容參考github使用幫助
接觸博客是在06年5月份光绕,當時在CSDN上寫博客,隨著技術(shù)的發(fā)展,我的博客也經(jīng)歷了幾個時代骤宣,除了CSDN這樣的網(wǎng)站托管方式外,我還經(jīng)歷了租主機空間的時代序愚,VPS主機(云主機)時代憔披,SaaS平臺托管時代,github時代爸吮。
主機空間時代就是運營商給你一個空間芬膝,把你的程序上傳到空間,然后給個地址就能跑起來形娇。
VPS(云)主機時代锰霜,相當于給你一個操作系統(tǒng),需要自己安裝php運行環(huán)境桐早、wordpress程序癣缅,有獨立的IP地址厨剪,需要使用域名解析……
SaaS平臺托管時代,就是像新浪SEA友存,可以在應(yīng)用商店里選擇wordpress程序祷膳,輕松點幾步就搭建好了博客系統(tǒng)。
當前爬立,對于程序員來說钾唬,如果要顯得你很專業(yè),很潮的話侠驯,當然是直接等托管到github了抡秆,所有資源都是免費的,也可以綁定自己的域名吟策。
本節(jié)就將介紹"github pages"的功能儒士,最終的目的就是在github上寫博客(當然除了博客之外,所有靜態(tài)站點都能托管到github)檩坚。
github pages包括兩種類型的靜態(tài)站點(pages)着撩。
項目類型的pages,對于每一個項目匾委,你可能都要建立一個網(wǎng)站來介紹和宣傳你的項目拖叙,在github上,你只需要把你的靜態(tài)內(nèi)容push到這個項目的gh-pages分支赂乐,然后通過http(s)://username(orgname).github.io/projectname就可以直接訪問薯鳍。
用戶、組織類型的pages挨措,只需在用戶或組織名下挖滤,創(chuàng)建一人名為"username(orgname).github.io"的repository后,將靜態(tài)站點push到master分支浅役,就可以通過域名username(orgname).github.io訪問斩松。
使用Automatic page generator功能創(chuàng)建pages
我們將繼續(xù)用上一節(jié)的項目https://github.com/ChangjunZhao/coderbook為例,講解如何使用Automatic page generator功能創(chuàng)建一個項目的pages(靜態(tài)站點)觉既。
對于用戶惧盹、組織類型的pages,需要先創(chuàng)建一個"username(orgname).github.io"的repository瞪讼。
首先進入項目首頁https://github.com/ChangjunZhao/coderbook岭参,如下圖所示
點擊“Settings”按鈕,進入repository設(shè)置頁面尝艘,你將看到關(guān)于pages的設(shè)置項如下圖所示:
這里是關(guān)于github pages的簡單說明演侯,點擊“Automatic page generator”按鈕,即進入生成項目靜態(tài)站點向?qū)А?/p>
在此頁背亥,你可以更改項目名稱秒际,Tagline相關(guān)于首頁的一個副標題悬赏,body部分為首頁內(nèi)容,這里使用markdown語法娄徊∶銎模“Google Analytics Tracking ID”是google網(wǎng)頁分析的跟蹤ID,建議不填寄锐,因為國內(nèi)用戶目前無法使用兵多。
填寫完成后點擊“continue to layouts”,為你的靜態(tài)站點選擇一個模板橄仆。如下圖所示:
選擇好你理想的站點模板后剩膘,點擊上圖中綠色的√,您的項目靜態(tài)站點就生成了盆顾。
此時系統(tǒng)自動給您創(chuàng)建了一個gh-pages的分支怠褐,保存剛才系統(tǒng)自動生成的靜態(tài)站點。
通過http://Changjunzhao.github.io/coderbook就可以直接訪問網(wǎng)站您宪。
如果是用戶奈懒、組織類型的pages,使用username(orgname).github.io即可訪問。
OK宪巨,剩下的工作就是把gh-pages分支clone到本地來磷杏,發(fā)揮你的才能做你的網(wǎng)站,搞完之后再push到github的gh-pages分支捏卓,更改會立即生效(國內(nèi)會有短時延遲)极祸。
手工創(chuàng)建pages
通過前面的學(xué)習,你應(yīng)該自己能想到如何通過手工創(chuàng)建pages天吓,其實很簡單贿肩,只需要手工創(chuàng)建一個gh-pages分支峦椰,在這個分支里開發(fā)你的靜態(tài)站點龄寞,然后push到github就可以了。
整個過程的命令如下(沒有驗證過汤功,遇到問題學(xué)會自己想辦法解決吧):
git checkout --orphan gh-pages #這里--orphan指獨立分支物邑,不會把當前分支內(nèi)容添加到新的分支
git rm -rf .
echo "My GitHub Page" > index.html
git add index.html
git commit -a -m "First pages commit"
git push origin gh-pages
使用Jekyll搭建博客系統(tǒng)
Transform your plain text into static websites and blogs.
Jekyll是一個將純文本轉(zhuǎn)換成靜態(tài)站點或blog的工具。
github pages對Jekyll提供原生支持滔金,可以免費將你的blog托管到github pages色解。
廢話不說,如果想詳細了解Jekyll餐茵,請到官網(wǎng):http://jekyllrb.com/
下面我們就開始建我們的blog吧科阎。
安裝Jekyll
這里以ubuntu為例,其它操作系統(tǒng)舉一反三忿族。
Jekyll是用ruby開發(fā)的锣笨,所有安裝Jekyll之前需要執(zhí)行下面的命令安裝一些依賴蝌矛。
sudo apt-get install ruby ruby1.9.1-dev nodejs
安裝Jekyll:
sudo gem install jekyll
Jekyll基礎(chǔ)
我們將為ChangjunZhao創(chuàng)建一個blog,并托管到github错英。
在命令行執(zhí)行如下命令生成Jekyll基本目錄結(jié)構(gòu):
jekyll new ChangjunZhaoBlog
cd ChangjunZhaoBlog
執(zhí)行tree
命令入撒,可看到完整的Jekyll目錄如下圖所示:
文件/目錄 | 說明 |
---|---|
_config.yml | Jekyll配置文件 |
_drafts | 草稿目錄 |
_includes | 頁頭、頁腳之類的放于這個目錄椭岩,可以使用{% include header.html %}這樣的標簽在別的地方引用 |
_layouts | 這里是存放頁面模板的地方茅逮,可以在模板中使用{{ content }} 來引用頁面內(nèi)容 |
_posts | 這里就是存放動態(tài)的博客內(nèi)容,標題必須為YEAR-MONTH-DAY-title.MARKUP格式 |
_data | 存放yaml格式的數(shù)據(jù)文件判哥,比如存了一個members.yml的文件献雅,那么在別的地方可以使用site.data.members引用相關(guān)數(shù)據(jù) |
_site | 使用Jekyll編譯后的靜態(tài)站點將存放于這個目錄下,這個目錄不需要push到github姨伟,所以要在.gitignore文件中加入這個目錄 |
index.html and other HTML, Markdown, Textile files | 首頁內(nèi)容 |
Other Files/Folders | 其它文件和目錄會當做靜態(tài)內(nèi)容處理 |
好了惩琉,先來看看效果,再簡單介紹幾個關(guān)鍵的要點吧夺荒。
在命令行執(zhí)行:jekyll server
啟動jekyll站點瞒渠。用瀏覽器打開http://localhost:4000,如下圖所示:
我們在_posts目錄下技扼,新建文件2014-07-24-changjunzhao-first-blog.md伍玖,內(nèi)容如下:
---
layout: post
title: "趙昌峻的第一篇blog!"
date: 2014-07-24 10:47:13
categories: other
---
大家好,歡迎來到我的博客剿吻,本篇博客將向大家介紹如何在Jekyll中實現(xiàn)代碼高亮顯示窍箍。
假設(shè)我們的代碼是java的,看看下面的效果還可以吧丽旅?
{% highlight java %}
class test{
public static void main(String[] args){
System.out.println("hello, world");
}
}
{% endhighlight %}
當然所有markdown的語法Jekyll都支持哦椰棘。
這里layout: post
的意思是使用_layouts下的post模板來顯示這個blog。
title
會作為blog的標題榄笙。
date
為發(fā)表時間邪狞。
categories
為分類,我們可以使用site.posts.categories這樣的標簽來引用指定分類的博客茅撞。
其它即為使用markdown寫的博客內(nèi)容帆卓。
好了,執(zhí)行jekyll server
再看看效果如下:
點擊“趙昌峻的第一篇blog!”米丘,如下圖所示:
好了剑令,關(guān)于Jekyll的內(nèi)容,我不想再寫了拄查,再寫就成一本介紹Jekyll的書了吁津,還是希望大家到官網(wǎng)http://jekyllrb.com/去看相關(guān)的文檔,因為Jekyll其實也是一個很高深的東西堕扶,能做出很漂亮的網(wǎng)站碍脏。比如github官方培訓(xùn)站點:https://training.github.com/癣疟,代碼在:https://github.com/github/training.github.com/tree/7049d7532a6856411e34046aedfce43a4afaf424
發(fā)布到github pages
結(jié)合前面講的github pages你應(yīng)該已經(jīng)知道如何發(fā)布到github pages了。
只需要把ChangjunZhaoBlog目錄下的東西push到gh-pages分支即可潮酒,如果是用戶睛挚、組織類型的,push到master分支急黎。
假設(shè)我們把ChangjunZhaoBlog發(fā)布到ChangjunZhao.github.io的站點扎狱,那么需要進行如下操作。
創(chuàng)建ChangjunZhao.github.io的repository勃教。
在ChangjunZhaoBlog目錄執(zhí)行如下命令:
git init
git add .
git commit -m "first blog commit"
git remote add origin git@github.com:ChangjunZhao/ChangjunZhao.github.io.git
git push -u origin master
瀏覽器打開changjunzhao.github.io就能看到博客內(nèi)容了近刘。
最后想補充一點: 在“簡書”上寫寫文章也不錯哦武鲁。
國際范程序必讀:
程序員的編輯器-VIM(愛就是愛)
向開源社區(qū)貢獻您的代碼
企業(yè)級應(yīng)用開發(fā)和Maven之間的那些事
DevOps是什么東東表牢?
js依賴管理工具bower
JS模塊化編程-requirejs