Github + Markdown + Jekyll 搭建博客

概述

Github + Markdown + Jekyll 搭建博客的步骤如下,不过首先得注册Github账号,以及创建一个Repository,命名格式为:username.github.io(username 必须和账号一致。)这样就生成了属于你的Github下的网页,其中过程可以参照GitHub Pages

安装

安装Kekyll需要以下环境:

  • Ruby2.0以上
  • RubyGems
  • Linux,Unix,Mac OS

安装Ruby2.0

1
2
$ sudo apt-get install ruby2.0
$ sudo apt-get install ruby2.0-dev

由于我的Ubuntu 14.04默认的Ruby是1.9.3,而Ruby 2.0则需要用命令ruby2.0运行,程序前必须设定好运行版本,不然会运行错误。于是我强制替换了/usr/bin目录下与Ruby相关的符号链接到Ruby 2.0对应的版本,进行了如下步骤:

1
2
3
4
5
6
7
8
$ cd /usr/bin/
$ ln -sf ruby2.0 ruby
$ ln -sf gem2.0 gem
$ ln -sf erb2.0 erb
$ ln -sf irb2.0 irb
$ ln -sf rake2.0 rake
$ ln -sf rdoc2.0 rdoc
$ ln -sf testrb2.0 testrb

替换完后还要更新下gem

1
2
$ gem update \-\-system
$ gem pristine \-\-all

这时Ruby的默认版本就已经切换到Ruby 2.0了。当然虽然这样做比较暴力,但也是可以还原的,如果想切换会Ruby 1.9.3,只需要运行(请注意在Ubuntu 14.04中,Ruby 1.9.3的名称为ruby1.9.1),这里另外附上还原Ruby 1.9.3的方法:

1
2
3
4
5
6
7
8
9
10
$ cd /usr/bin/
$ ln -sf ruby1.9.1 ruby
$ ln -sf gem1.9.1 gem
$ ln -sf erb1.9.1 erb
$ ln -sf irb1.9.1 irb
$ ln -sf rake1.9.1 rake
$ ln -sf rdoc1.9.1 rdoc
$ ln -sf testrb1.9.1 testrb
$ gem update \-\-system
$ gem pristine \-\-all

安装Jekyll

1
2
$ gem install jekyll
$ gem install bundler

安装模板解释器RDiscount

默认模板是Maruku,这里替换为RDiscountMaruku是纯ruby写的Markdown模板解释器。RDiscount是C写的模板解释器,重点是它的效率比Maruku快很多。

1
$ gem install rdiscount

新建一个Jekyll目录

1
$ jekyll new blogname

然后bundle

1
2
$ bundle update
$ bundle install

启动server

因为Jekyll自带一个服务器,所以可以直接运行服务。只不过它默认是只能本机访问4000端口(使用--host 服务器IP参数,可允许外部IP访问),而且并不是后台运行(可用--detach后台运行)。

1
$ jekyll serve \-\-host 自己外网IP \-\-detach

OK! 可以用浏览器访问这个服务器http://IP:4000
关闭后台程序:

1
$ kill -9 pid

修改配置

1
$ vim _config.yml

修改里面的url为username.github.io(username是你的github账户名)

上传github

1
2
3
4
$ git init
$ git add \-\-all
$ git commit -m "博客"
$ git push origin maste

过一会就可已访问username.github.io(username是你的github账户名)了

Jekyll主题

接下来再说说jeykll的目录结构。Jekyll的核心其实是一个文本转换引擎。它的概念其实就是:你用你最喜欢的标记语言来写文章,可以是Markdown,也可以是 Textile, 或者就是简单的 HTML, 然后 Jekyll 就会帮你套入一个或一系列的布局中。在整个过程中你可以设置 URL 路径,你的文本在布局中的显示样式等等。这些都可以通过纯文本编辑来实现,最终生成的静态页面就是你的成果。

至于Jekyll的主题,你可以参照jekyllthemes。找到合适的主题之后,只要修改_config.yml即可,然后就是再_posts里写文章了,文章的命名格式为YYYY-MM-DD-name-of-post.md。而Markdown的语法可以参照Markdown语法,至于Markdown的编辑器,最好不要用vim,去下个专门的编辑器。