最近決定要寫一個博客,前後註冊了博客園和CSND的博客,可是他們的界面主題都不是很符合本身的要求,尚未足夠個性化的發揮空間,遂決定本身建一個博客。javascript
網上找了一下教程,感受都不太詳細,容易踩坑,因此就想詳細一下本身的搭建過程,不能算做教程吧。
但願你們踩少點,若有錯誤,各位看官老爺們拍輕點。html
既然選擇了本身建一個,就須要選擇一個合適本身用的博客引擎了,主要就這幾大引擎:java
wordpress:
老牌博客引擎,網上不少前人踩過的坑
功能強大,須要服務器數據庫,插件豐富,擴展功能方便
搭建須要基本PHP和MySQL知識,搭建好後就傻瓜式操做
wordpress相對臃腫,遷移麻煩node
jekyll:
靜態網頁生成引擎,不須要數據庫
搭配github或gitcafe就能夠不用本身的服務器
用Ruby開發,須要基本GIT知識,支持markdown語法linux
octopress:
基於jekyll的靜態網頁生成引擎,相似於javascript和JQuery的關係,就是已經打包好了一些博客框架git
hexo:
同樣是靜態網頁生成引擎,不須要數據庫
搭配github或gitcafe就能夠不用本身的服務器
用node.js開發,做者是臺灣大學生@tommy351
相比jekyll,安裝和命令更簡單,生成速度更快
一樣須要基本GIT知識,支持markdown語法github
這個是做者的網站 Zespia 能夠圍觀一下數據庫
只有最適合本身的,沒有最好的,根據本身的須要選擇,我這裏聽說jekyll比較能折騰(坑多),因此就選用了jekyll。瀏覽器
我是在window下搭建的,因此linux和mac的老爺們就去下家看看吧。sass
window要用 Rubyinstaller 安裝(linux和mac能夠直接在官網下載,由於Ruby對window不太友好)
安裝時把下面兩個勾 勾上
安裝好後,運行cmd.exe,輸入 ruby -v
,出現版本號,則安裝成功
用RubyInstaller安裝Ruby以後都自帶Gems的,有須要能夠在這裏下載 RubyGems
下載 DEVELOPMENT KIT,就在rubyinstaller下載頁面的最下面。
下載好後解壓到隨意位置
進入剛纔解壓的文件夾,空白處 Shift + 右鍵打開 命令窗口(cmd.exe),執行如下兩條命令
ruby dk.rb init ruby dk.rb install
若是安裝的是64bit的Ruby,可能會報錯,須要修改dk.rb
文件
用文本編輯器打開,在 REG_KEYS
中添加一條:
REG_KEYS = [ 'Software\RubyInstaller\MRI', 'Software\RubyInstaller\Rubinius', 'Software\Wow6432Node\RubyInstaller\MRI' ]
由於牆的問題,須要把原來的鏡像源換了,我目前是用阿里雲的鏡像,有人用淘寶的,但我那時不行了,可能之後阿里雲的也會失效。
執行命令
gem sources --add http://mirrors.aliyun.com/rubygems/ --remove http://rubygems.org
換了鏡像後,執行命令:
gem update
而後等升級完成,這個步驟須要聯網
若是配置過Jekyll環境或者安裝過bundler,能夠跳過這步。
更新完了,而後安裝bundler,執行命令:
gem install bundler
成功安裝bundler後,bundler 也須要換鏡像源
前面弄了這麼就,終於能夠入正題了,執行命令:
$ gem install jekyll
Jekyll須要的gem包都會自動安裝
打開你須要建立博客的目錄下,好比我在E盤下建立,執行建立博客的命令,等待完成:
jekyll new yourBlogName
建立完博客站點後,用cd
命令進入博客的目錄下,執行如下命令:
cd yourBlogName jekyll serve --watch
不加--watch
則不會檢測文件夾內的變化,修改文件後須要從新啓動jekyll。
Jekyll服務器默認端口是4000,因此打開瀏覽器輸入:http://localhost:4000 便可看到生成的博客頁面。
Jekyll 的核心實際上是一個文本轉換引擎。它的概念其實就是: 你用你最喜歡的標記語言來寫文章,能夠是 Markdown,也能夠是 Textile,或者就是簡單的 HTML, 而後 Jekyll 就會幫你套入一個或一系列的佈局中。
在整個過程當中你能夠設置URL路徑, 你的文本在佈局中的顯示樣式等等。這些均可以經過純文本編輯來實現,最終生成的靜態頁面就是你的成品了。
一個基本的 Jekyll 網站的目錄結構通常是像這樣的:
blog .sass-cache _posts 2017-04-21-welcome-to-jekyll.markdown _site .gitignore _config.yml about.md Gemfile.lock Gemfile index.md
根據實際須要,可能還須要建立以下文件或文件夾:
一、 _includes:用於存放一些固定的HTML代碼段,文件爲.html格式,能夠在模板中經過liquid標籤引入,經常使用來在各個模板中複用如 導航條、標籤欄、側邊欄 之類的在每一個頁面上都同樣不變的內容,須要注意的是,這個代碼段也能夠是未被編譯的,也就是說也可使用liquid標籤放在這些代碼段中
二、 image和js等自定義文件夾:用來存放一些須要的資源文件,如圖片或者javascript文件,能夠任意命名
三、 CNAME文件:用來在github上作域名綁定的,將在後面介紹
四、 favicon.ico:網站的小圖標
這些目錄結構以及具體的做用能夠參考 官網文檔
到此,博客初步搭建算是完成了
全部的文章都是放在_posts
目錄下,文件格式爲 mardown 格式,要注意文件名的格式前面必須爲必須爲 年-月-日-文章名
,且最好不要用中文。
此文件上的日期跟實際頁面顯示的日期不要緊,頁面的日期由YAML頭信息中的date來決定(沒有date時才由文件名決定)
必須在文章頭部添加YAML頭信息(YAML front- matter):
--- layout: post title: "Jekyll和Github搭建我的靜態博客" date: 2016/6/26 13:03:42 categories: original --- 正文...
常見的報錯是Bundler和鏡像源問題,上面已經處理好了,通常不會有問題。
這個是由於Jekyll 3.1.1版本的問題,這個版本沒法使用jekyll-sitemap,錯誤信息提示:
Configuration file:... Dependency Error: Yikes! It looks like you don't have jekyll-sitemap or one of its dependencies installed. In order to use Jekyll as currently configured, you'll need to install this gem. The full error message from Ruby is: 'cannot load such file -- jekyll-sitemap' If you run into trouble, you can find helpful resources at http://jekyllrb.com/help/! jekyll 3.1.1 | Error: jekyll-sitemap
解決辦法:
暫時我遇到的坑就這些了,若是仍是報錯的話,我推薦你們到各工具的github或stackoverflow上找一下緣由:
Ruby問題 (其實大多報錯是Ruby的問題)
鏡像源問題 (就是有SSLError,connect之類的報錯信息)
Jekyll問題,stackoverflow
另外還有Jekyll的官網和中文網
最後說一句,這個只是本身搭建過程當中踩過的坑,分享給你們,不算很好的教程,其實最好的教程是官方文檔,Jekyll有中文網,並不用擔憂英語讀不懂。
完.