windows下搭建jekyll博客

By whitewater

jekyll作为博客引擎是在是程序员们的一大福音,github的pages功能对于jekyll的完美支持可以让你轻松拥有自己域名的博客,这篇文章主要介绍在windows搭建jekyll博客的步骤。

###1.什么是git git是一个分布式版本控制工具(DVCS),不需要服务端软件支持(即使在地铁里也可以正常commit),Linux内核开发用的版本控制工具就是它。 常用的SVN属于集中式版本控制工具(CVCS),需要在服务端开启SVN服务,然后客户端checkout,commit,update。 更详细的介绍请参考百度百科git ##2.什么是github GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单︰首先点击项目站点的fork的按 钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的pull request机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。 github的pages功能是给用户提供发布网页的功能,你可以自己提交html文件让github帮你发布,你也可以提交按照固定模板的文档来让github帮你为这些文档生成html。下面是别人总结过的github pages的优缺点: github Pages有以下几个优点:

  • 轻量级的博客系统,没有麻烦的配置
  • 使用标记语言,比如Markdown
  • 无需自己搭建服务器
  • 根据github的限制,对应的每个站有300MB空间
  • 可以绑定自己的域名

当然他也有缺点:

  • 使用Jekyll模板系统,相当于静态页发布,适合博客,文档介绍等。 * 动态程序的部分相当局限,比如没有评论,不过还好我们有解决方案。
  • 基于Git,很多东西需要动手,不像Wordpress有强大的后台

###3.原理 我解决问题,一般会从原理上来思考。一旦你解决了原理,你碰到问题思考的程度就深,也容易找出问题的突破口。利用github写博客的原理,其实就是利用了 github pages的服务。github pages本来是用来给托管在github上的项目展示说明和文档的,它会在你的项目中产生一个gh-pages的分支,这个分支里按照一定 的目录和文件格式生成,最最重要的是有一个index.html。github向你展示的就是这个页面,你可以在index中写内容,也可以加链接。链接可以是外部的也可以是 内部的,所以你可以在分支里添加其他html,然后把这些html的链接添加在index.html中,你整个静态的网站也就形成了。但是如果仅仅是这些还不够,我们写博客 关注的是内容,需要把博主从繁重的html标记中解脱出来,因此有了jellky. jekyll可以使你仅仅按照markdown的语法来书写博文,通过自定义的css样式和页面结构来 生成最后的html,这样博主在写文章的时候只关注markdown语法的博文就可以了,至于css样式和页面结构,jellky也提供了几个模板供你选择,如果你不满意的话可以 去把更改模板,如果你还不满意的话可以把别人的在github上的博客fork到自己的版本库中,使用他们的网站主题。

更令人兴奋的是,如果你在github上的用户名是USERNAME,并且博客项目的名称也是USERNAME.github.com的话,github可以为你产生一个二级域名USERNAME.github.com, 这样你就可以通过访问USERNAME.github.com来访问你的博客了。如果你有自己的一级域名的话,可以提供给github,这样就可以直接访问这个以及域名来访问你的博客了。

###4.一步一步搭建博客 这里主要介绍利用jekyll bootstrap,即官方推荐的方法。你需要确保的是在你的github账户中建立一个USERNAME.github.com的版本库。

###4.1 搭建环境(windows 版) ###4.1.1 安装github for windows 这一步其实是为了安装git,我最开始安装的是git for windows。后来我发现有github for windows这个 好东西,不仅有了git,而且有了和github的接口,快哉,快哉。安装方法很简单,在http://windows.github.com 上下载最新版的release,按部就班的安装就ok。安装完了之后你的桌面就有了GitHub和Git Shell。GitHub是一个图形化的程序,可以图形化的使用git命令和github通信。Git Shell 一个terminal的git工具,可以使用各种git命令。安装完之后你第一步要做的事情就是配置你的github账户,只要运行GitHub,然后输入用户名密码就ok啦。如果跳过这个步骤会使得你在使用Git Shell来push项目到github上会发生ssh key的问题。

总结一下:

1.安装github for windows

2.运行GitHub,配置github账户。

###4.1.2 安装Jeklly

  1. 安装Ruby:http://rubyinstaller.org/downloads/上下载安装Ruby以及development kit, 安装完之后你会发现c:/下多出了RubyXXX和devkit目录。

2.运行cmd,敲入如下命令

cd c:/devkit
ruby dk.rb init

这时,devkit目录中多出了一个config.yml,编辑它使得它包含ruby的路径,编辑完之后内容应该为:

# This configuration file contains the absolute path locations of all
# installed Rubies to be enhanced to work with the DevKit. This config
# file is generated by the 'ruby dk.rb init' step and may be modified
# before running the 'ruby dk.rb install' step. To include any installed
# Rubies that were not automagically discovered, simply add a line below
# the triple hyphens with the absolute path to the Ruby root directory.
#
# Example:
#
# ---
# - C:/ruby19trunk
# - C:/ruby192dev
#
---
- C:/Ruby193

3.继续敲入如下命令安装jekyll

ruby dk.rb install
gem install jekyll

###5 使用bootstrap模板 如果你的英文可以的话,可以参考http://jekyllbootstrap.com/,并跳过这一节。 假设你的github账户名为USERNAME,并且你已经建立了一个USERNAME.github的版本库,我们本地工作的目录为d:/workspace。

运行Git Shell,然后:

cd d:/workspace
git clone https://github.com/plusjade/jekyll-bootstrap.git USERNAME.github.com
cd USERNAME.github.com
git remote set-url origin git@github.com:USERNAME/USERNAME.github.com.git
git push origin master

这几行命令把bootstrap的项目clone到本地USERNAME.github.com目录,并且push到github上USERNAME.github的master分支上。查看d:/workspace/USERNAME.github.com 你会发现特殊的文件和目录:

_config.yml

存储了一些设置,大部分的设置都可以通过命令行指定,但放到配置文件里更方便些

_layouts

_layouts文件夹存放的是模板文件,文章会被渲染到这些模板里,变量指代的是文章内容

_posts

这里就是真正存放博客文章的地方了,文件命名要遵守这种格式:year-month-day-title.markup

_site

这个文件夹是程序生成的,如果本地没有安装jekyll的话,是不会有这个文件夹的,如果想要先本地预览一下,再提交到github,最好通过.gitignore把这个文件夹排除。

index.html

这个文件也有一个yaml前缀,可以指定使用哪个模板,标题等等,所有根文件夹下的 .html/ .htm/ .textile/ .markdown都会被解析。

other files/folders

上面没有列出的文件/文件夹都会被jekyll放到_site文件夹下,如css/image/script等等。

Shell 中继续输入

jekyll --server

这样jekyll在本地生成了你的博客网站,你可以在浏览器中访问:http://localhost:4000来预览你的博客。这个功能可以方便博主预览完了之后再一起push到github上, 而不用每次修改都要push到远端的github来预览。

需要说明的是,github产生pages的时候只有在第一次是非即时的,需要大概几分钟的时间,所以你在过一段时间之后,就可以通过浏览器访问http://USERNAME.github.com来 访问你的博客了,哈哈是不是有眼前一亮的感觉!

如果这个步骤报编码错误的话,需要编辑

C:\Ruby193\lib\ruby\gems\1.9.1\gems\jekyll-0.11.2\lib\jekyll\convertible.rb

第27行

self.content = File.read(File.join(base, name))

替换为

self.content = File.read(File.join(base, name), :encoding => “utf-8”)

###5 书写博文 Bootstrap中包含了一个rake file,可以使用rake task来产生空的博客,在博客目录下输入:

rake post title="Hello world!"

这样就在_post目录中生成了一个空的名为date_Hello_world.md的文件,你可以随意使用markdown的语法来编辑它,加入你的博文正文,注意如果是中文的话,要使用utf-8编码。

###6 发表博文 如果你已经编辑好了博文,并且已经本地预览满意了,可以push到远端的github上来发布你的博文:

git add .
git commit -m "new post"
git push origin master

成功执行后,你就可以访问USERNAME.github.com看到你最新的博文了。

###7 配置博客 主要涉及到配置_config.yml和使用自定义的模板,这一节可以参考 <a href=”http://jekyllbootstrap.com/usage/jekyll-theming.html”, target=”_blank”>http://jekyllbootstrap.com/usage/jekyll-theming.html</a>

<a href=”http://jekyllbootstrap.com/usage/blog-configuration.html”, target=”_blank”>http://jekyllbootstrap.com/usage/blog-configuration.html</a>

###8 参考文档 [1] <a href=”http://blog.leezhong.com/tech/2010/08/25/make-github-as-blog-engine.html”, target=”_blank”>http://blog.leezhong.com/tech/2010/08/25/make-github-as-blog-engine.html</a>

[2] <a href=”http://www.madhur.co.in/blog/2011/09/01/runningjekyllwindows.html”, target=”_blank”>http://www.madhur.co.in/blog/2011/09/01/runningjekyllwindows.html</a>

[3] <a href=”http://taberh.me/2011/12/26/use-Jekyll-build-Blog-on-Github.html”, target=”_blank”>http://taberh.me/2011/12/26/use-Jekyll-build-Blog-on-Github.html</a>

[4] <a href=”http://mookrs.com/2012/04/hello-jekyll.html”, target=”_blank”>http://mookrs.com/2012/04/hello-jekyll.html</a>

[5] <a href=”http://beiyuu.com/github-pages/”, target=”_blank”>http://beiyuu.com/github-pages/</a>

[6] <a href=”http://jekyllbootstrap.com/usage/jekyll-quick-start.html”, target=”_blank”>http://jekyllbootstrap.com/usage/jekyll-quick-start.html</a>

comments powered by Disqus
about theme

I am whitewater.I love all kinds of beauty

Recent Comments

Keep Space

TBD