能快樂旅行的人,必定是輕裝旅行的人html
應廣大的網友(裝逼~~哈哈)要求,決定寫個Jekyll+Giuhub搭建博客的教程,以便幫助更多的人,畢竟我也是這麼過來的。這是個人博客地址,能夠先看看效果。
首先介紹一下Jekyll這個框架,這個框架是Ruby語言一個基於靜態文件的框架,由於不須要數據庫,直接用靜態文件來渲染,再加上有Github的支持因此成了搭建博客的不二之選。目前支持Markdown和
Textile兩種格式的文件。可是當你的博客寫的越多的時候加載的就越慢,因此這就是靜態文件的缺點。可是和他的優勢比起來,這徹底能夠忽略不計。那廢話很少說,我們開幹!!python
安裝Rubylinux
$ yum install ruby
查看ruby版本git
$ ruby -v
輸出github
ruby 2.0.0p648 (2015-12-16) [x86_64-linux]
jekyll 最新版要求 ruby 2.2或更高,因此更新ruby
這裏我使用rvm更新ruby數據庫
安裝rvmwindows
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 $ curl -sSL https://get.rvm.io | bash -s stable $ source ~/.bashrc $ source ~/.bash_profile $ source /etc/profile.d/rvm.sh
修改rvm 的鏡像到國內centos
$ echo "ruby_url=https://cache.ruby-china.org/pub/ruby" > /usr/local/rvm/user/db
注意這裏可能提示找不到/usr/local/rvm/user/db這個文件夾,因此你得本身用find命令找一下看你的這個rvm/user/db在哪裏ruby
安裝Ruby 2.4bash
jekyll 最新版要求 ruby 2.3因此保險起見我們直接安裝2.4
你還能夠更新到更高版本,能夠用 $ rvm list known 查看當前各個操做系統能夠安裝的全部版本
$ rvm install 2.4
gem在中國很差使, 萬能的中國Ruby社區給咱們搭建了gem鏡像
移除gem默認倉庫地址並添加中國的倉庫
$ gem sources --remove https://rubygems.org/
$ gem source -a https://gems.ruby-china.com/
安裝
$ gem install jekyll
安裝好好了之後,到這一步咱們已經成功一大半了。
咱們這時候就要建立一個博客看一看了,這裏有兩種方式
1.方法一
在當前目錄建立一個博客目錄,並進入到目錄
$ jekyll new myblog $ cd myblog
啓動咱們的博客
$ jekyll serve --host 0.0.0.0
若是不出意外, 啓動是失敗的, 錯誤信息應該相似於:
/usr/local/rvm/rubies/ruby-2.1.10/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- bundler (LoadError) from /usr/local/rvm/rubies/ruby-2.1.10/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/local/rvm/gems/ruby-2.1.10/gems/jekyll-3.6.2/lib/jekyll/plugin_manager.rb:48:in `require_from_bundler' from /usr/local/rvm/gems/ruby-2.1.10/gems/jekyll-3.6.2/exe/jekyll:11:in `<top (required)>' from /usr/local/rvm/gems/ruby-2.1.10/bin/jekyll:23:in `load' from /usr/local/rvm/gems/ruby-2.1.10/bin/jekyll:23:in `<main>' from /usr/local/rvm/gems/ruby-2.1.10/bin/ruby_executable_hooks:15:in `eval' from /usr/local/rvm/gems/ruby-2.1.10/bin/ruby_executable_hooks:15:in `<main>'
安裝bundle
$ gem install bundle
再次執行
$ jekyll serve --host 0.0.0.0
輸出
Configuration file: /usr/local/test/myblog/_config.yml Source: /usr/local/test/myblog Destination: /usr/local/test/myblog/_site Incremental build: disabled. Enable with --incremental Generating... done in 0.427 seconds. Auto-regeneration: enabled for '/usr/local/test/myblog' Server address: http://0.0.0.0:4000/ Server running... press ctrl-c to stop.
OK這樣咱們就起了一個Jekyll
server的博客,可是這種是系統默認的主題,既然我說這是方法一那確定就還有方法二對吧
方法2:自定義主題
在Jekyll主題上,咱們能夠選擇本身喜歡的主題,我本身隨便選一個給你們演示一下
下載,解壓到linux
CD到咱們解壓的文件夾
執行命令
jekyll server --host 0.0.0.0
這時候不出意外會報錯
Could not find proper version of jekyll (3.4.0) in any of the sources Run `bundle install` to install missing gems.
可是提示也很明顯,直接
bundle install
OK,再來執行
jekyll server --host 0.0.0.0
訪問地址
這裏貼一下啓動時候的一些命令參數 請猛擊這裏
好了,這樣咱們就能夠實現定製咱們本身的博客主題了。
這裏就須要一點Git基礎了,如有不會的也不打緊,由於這裏都是些簡單的操做。
倉庫名必須是:你的github帳號名.github.io
若是Linux上沒有git的請安裝Git
yum install git
而後CD到咱們以前下載的文件夾下
git init git add . git commit -m '第一次' git remote add origin https://github.com/你的帳號/剛剛新建的倉庫名.git git push origin master
這樣操做成功以後,咱們就能夠訪問
h ttps://你的帳號.github.io 就能夠看到咱們以前的畫面了,好了一個Jekyll+Github的博客算是搭起來了。
有了博客網站,就到了最後「最難」的一部分了——寫博客。。
推薦先將博客項目從github上clone到windows環境,而後再慢慢寫,而後再push到Github上看效果,調試。這樣雖然麻煩點,可是絕對比你在Linux上調試要方便的多,之因此前面讓你們搭建Linux環境,只是想讓你們知道如何去自定義一個原生的Jekyll server 版的博客。若是在push後出現構建Github Pages錯誤的問題,GitHub 會向你的帳戶發送郵件。
或者直接打開本身的github的倉庫主頁查看settings選項,會有顯示那個頁面報錯,具體哪一行,這個功能你們必定要記得,由於後面的調試會常常遇到。
那麼咱們仍是先看目錄說明
這裏特地強調一下這個_post目錄,和_config.yml文件
_posts目錄就是專門存放博客文件的,你可使用markdown或者Textile格式的文件來寫博客,我我的是用markdown格式寫的。可是不論是哪一種格式的文件都須要包含 YAML 頭信息, Jekyll 纔會把它當作一個特殊的文件來處理。
在_posts目錄下新建一個markdown文件,頭信息必須在文件的開始部分,而且須要按照 YAML 的格式寫在兩行三虛線之間。以下所示:
Jekyll 有這很是靈活和強大的配置功能,既能夠在網站根目錄下的 _config.yml 文件中進行配置,也能夠做爲命令行參數來配置。默認配置大體以下:
title: Your awesome title email: your-email@example.com description: >- # this means to ignore newlines until "baseurl:" baseurl: "" # the subpath of your site, e.g. /blog url: "" # the base hostname & protocol for your site, e.g. http://example.com twitter_username: jekyllrb github_username: jekyll # Build settings markdown: kramdown theme: minima plugins: - jekyll-feed
yml文件使用了YAML語法,若是想更好的理解Jekyll就須要瞭解一下YAML語法的內容,這裏引用一下阮一峯老師寫的一篇YAML語法教程
通常來講_config.yml的默認內容不須要太大改動,只須要往裏面添加你須要的自定義屬性,而後你就能夠在頁面模板中使用site.屬性名來取得對應的值,例如site.title的值就是Your awesome title。
通常主題中也會自動幫你寫好這些自定義屬性,搭建你本身的博客時你只須要將這些自定義屬性改成你想要的值便可。
如果上面的知識不足以讓你寫出滿意的博客,因此這裏我強烈推薦Jekyll中文文檔,這個文檔寫的很好,而且仍是中文的能夠說是很是友好了,我相信你讀了文檔以後,對Jekyll語法,目錄結構確定都有了一個很好的理解。
要放大招了。哈哈哈哈
我既然說是全網最全的Jekyll搭建博客教程,萬一上面的你都不會,Linux環境也搭建不起來,那該如何是好,別急,這就告訴你絕招!!!
直接到github上去Fork別人已經搭建好的代碼(友情提示,Fork記得給Star,也算是尊重原創),我是Fork的黃玄大佬的,代碼倉庫在這裏。fork到本身的代碼倉庫以後,把倉庫名字按照我上面的教程改過來,而後訪問h ttps://你的帳號.github.io,就能夠看到和大佬如出一轍的博客,就問你激不激動。~~~接下來你要作的就是修改配置文件,而後後把_POST文件夾的文件都刪掉,把本身寫的Markdown文件放進去。可是刪以前請看下別人的模板,這樣有助於更好的理解語法。詳細的說明仍是看他的倉庫的README吧,寫的很清楚,而且也有中文版的。之後如果再遇到好看的模板如法炮製便可!
這種方法,既不須要上面Linux環境,直接一個Fork搞定,是否是很爽。哈哈
可是會萬一哪天你想本身搭建,那不會Linux環境下的操做但是不行的,因此會Linux環境下的原生Jekyll仍是有用的老鐵。
教程就寫到這裏,如果以爲寫得好請記得點贊。若是有不懂的地方的歡迎在下面留言,一塊兒討論學習。另外歡迎訪問個人我的網站一塊兒交流學習。