window下Jekyll建站過程

> 前言

最近決定要寫一個博客,前後註冊了博客園和CSND的博客,可是他們的界面主題都不是很符合本身的要求,尚未足夠個性化的發揮空間,遂決定本身建一個博客。javascript

網上找了一下教程,感受都不太詳細,容易踩坑,因此就想詳細一下本身的搭建過程,不能算做教程吧。
但願你們踩少點,若有錯誤,各位看官老爺們拍輕點。html

既然選擇了本身建一個,就須要選擇一個合適本身用的博客引擎了,主要就這幾大引擎:java

  • wordpress
  • jekyll
  • octopress
  • hexo
  • 還有FarBox和Ghost,這兩個沒有太多瞭解就不說了

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

> 配置環境

>> 安裝Ruby

window要用 Rubyinstaller 安裝(linux和mac能夠直接在官網下載,由於Ruby對window不太友好)
安裝時把下面兩個勾 勾上

安裝Ruby

安裝好後,運行cmd.exe,輸入 ruby -v,出現版本號,則安裝成功

安裝測試

>> RubyGems

用RubyInstaller安裝Ruby以後都自帶Gems的,有須要能夠在這裏下載 RubyGems

>> 解壓DEVELOPMENT KIT

下載 DEVELOPMENT KIT,就在rubyinstaller下載頁面的最下面。
下載好後解壓到隨意位置

devKit

進入剛纔解壓的文件夾,空白處 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

換了鏡像後,執行命令:

gem update

而後等升級完成,這個步驟須要聯網

此處輸入圖片的描述

>> 安裝bundler

若是配置過Jekyll環境或者安裝過bundler,能夠跳過這步。
更新完了,而後安裝bundler,執行命令:

gem install bundler

此處輸入圖片的描述

成功安裝bundler後,bundler 也須要換鏡像源

此處輸入圖片的描述

> 安裝Jekyll

前面弄了這麼就,終於能夠入正題了,執行命令:

$ gem install jekyll

Jekyll須要的gem包都會自動安裝

此處輸入圖片的描述

> 建立博客站點

打開你須要建立博客的目錄下,好比我在E盤下建立,執行建立博客的命令,等待完成:

jekyll new yourBlogName

此處輸入圖片的描述

> 開啓服務器

建立完博客站點後,用cd命令進入博客的目錄下,執行如下命令:

cd yourBlogName
jekyll serve --watch

不加--watch則不會檢測文件夾內的變化,修改文件後須要從新啓動jekyll。

此處輸入圖片的描述

Jekyll服務器默認端口是4000,因此打開瀏覽器輸入:http://localhost:4000 便可看到生成的博客頁面。

> Jekyll目錄結構

  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:網站的小圖標

這些目錄結構以及具體的做用能夠參考 官網文檔

到此,博客初步搭建算是完成了

> 使用Jekyll寫博文

全部的文章都是放在_posts 目錄下,文件格式爲 mardown 格式,要注意文件名的格式前面必須爲必須爲 年-月-日-文章名,且最好不要用中文。

此文件上的日期跟實際頁面顯示的日期不要緊,頁面的日期由YAML頭信息中的date來決定(沒有date時才由文件名決定)

必須在文章頭部添加YAML頭信息(YAML front- matter):

---
layout: post
title:  "Jekyll和Github搭建我的靜態博客"
date:   2016/6/26 13:03:42
categories: original
---

正文...
  • layout表示使用post佈局
  • title 是文章標題
  • date是自動生成的日期
    必須按照y-m-l的語法來寫,不然就會出現編譯錯誤,能夠只用YYYY-MM-DD來顯示日期在後面加上 HH:MM:SS+00:00 來表示更具體的時間
  • categories
    是該文章生成html文件後的存放目錄,也就是文章的分類屬性,能夠在_site/original下找到。(category
    只能添加一個分類屬性, categories 能夠添加多個分類屬性,各屬性使用空格隔開)

> 報錯處理

常見的報錯是Bundler和鏡像源問題,上面已經處理好了,通常不會有問題。

>>Error: jekyll-sitemap

這個是由於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

解決辦法:

  • 打開當前目錄下的 _config.yml 文件,把 gems: [jekyll-paginate,jekyll-sitemap] 換成
    gems: [jekyll-paginate] ,也就是去掉jekyll-sitemap。
  • 升級 jekyll 版本

>>其餘錯誤

暫時我遇到的坑就這些了,若是仍是報錯的話,我推薦你們到各工具的github或stackoverflow上找一下緣由:
Ruby問題 (其實大多報錯是Ruby的問題)
鏡像源問題 (就是有SSLError,connect之類的報錯信息)
Jekyll問題stackoverflow
另外還有Jekyll的官網中文網

最後說一句,這個只是本身搭建過程當中踩過的坑,分享給你們,不算很好的教程,其實最好的教程是官方文檔,Jekyll有中文網,並不用擔憂英語讀不懂。

完.

相關文章
相關標籤/搜索