22
Nov 2013
jekyll

安装jekyll及初步使用

字数:2793

作者:Jerry

到今天共写了两篇博客,一篇helloworld上传了两次才成功;一篇markdown初学笔记用markdown写的,github编译总有错误。

想了一下还是要装ruby及jekyll,实现本地预览。毕竟github的错误反馈有点坑,效率也低,还是本地编译预览方便一点。

jekyll安装

首先感谢purediy雁起平沙,整个ruby及jekyll安装都是按照两者博客指导进行,博客步骤清晰,解说也到位。

Ruby下载地址:rubyinstaller(for windows)

Devkit下载地址:devkit(for windows)

详细步骤可看purediy雁起平沙的教程。

简单描述一下安装步骤:

  1. 安装ruby:下载最新的RubyInstaller并安装,设置环境变量,path中配置C:\Ruby193\bin目录
  2. 安装Devkit:DevKit是windows平台下编译和使用本地C/C++扩展包的工具;是安装jekyll的前提。下载,解压到C:\DevKit,cmd输入: cd C:\DevKit
    ruby dk.rb init
    ruby dk.rb install
  3. 安装jekyll:通过RubyGems(gem)安装。gem install Jekyll
    用命令检验是否安装成功: jekyll --version
    类似的输出表示成功:
    jekyll 1.3.0
  4. 安装Rdiscount:这是用来解析Markdown标记的包。gem install rdiscount

安装中的一些问题:

  1. 是否需要为gem换sources?
    雁起平沙推荐换淘宝镜像,实际操作中不换速度也很快。
  2. gem install jekyll出错。
    错误代码:ERROR: Error installing jekyll:
    ERROR: Failed to build gem native extension.
    两篇博客均未给出相关信息,只能google。感谢mojombo,此君在linux下安装jekyll同样错误,最后卸载ruby重装解决错误。果断试一下,windows下重装ruby,问题解决!

jekyll使用

博文用的就是jekyll,现在讲一讲使用的方法。

目录结构

一般的jekyll项目,目录结构如下:

.
├── _config.yml
├── _drafts
| ├── begin-with-the-crazy-ideas.textile
| └── on-simplicity-in-technology.markdown
├── _includes
| ├── footer.html
| └── header.html
├── _layouts
| ├── default.html
| └── post.html
├── _posts
| ├── 2007-10-29-why-every-programmer-should-play-nethack.textile
| └── 2009-04-26-barcamp-boston-4-roundup.textile
├── _data
| └── members.yml
├── _site
└── index.html

jekyll命令

所有命令可参见官方文档

重要的jekyll serve
  • 在项目目录执行该命令即启动服务;默认生成到_site文件夹下。
  • 添加选项-w/--watch(jekyll serve -w),即开启文件检测,文件变动时自动重载。jekyll-1.3下.yaml设置auto:true已经失效。
jekyll build

当前文件夹将被生成到./_site

本地编译与预览

在项目所在文件夹,执行jekyll serve,项目被编译到项目根目录下的_site/文件夹下。

访问http://localhost:4000/实现本地预览。

如果想要监视文件,在发生变动时自动编译、重启服务器,则将上面的命令改成jekyll serve -w

如果想要上传到git时忽略_site/下的编译文件,可在项目根目录下添加.gitignore文件,文件中添加一行_site/

使用中的错误及解决

  1. windows下编码错误(invalid byte sequence in GBK)怎么办?
    jekyll-1.3中,把self.content = File.read_with_options(File.join(base, name),
    #merged_file_read_opts(opts))
    改为self.content = File.read(File.join(base, name),:encoding=>"utf-8")
    新添加:代码在C:\Ruby193\lib\ruby\gems\1.9.1\gems\jekyll-1.4.2\lib\jekyll下的convertible.rb文件中。
  2. jekyll serve --watch错误
    google后发现都基本没说清。感谢stackoverflow的Josh Infiesto,虽然不是按他的方法做的,但他的解答使我意识到可能没有安装wdm模块,gem install wdm,问题解决。
  3. jekyll serve错误
    这个错误是补充的,重装系统,然后按流程重装jekyll时发现了一个新错误:Generating... error: Invalid argument - D:/GitHub/jekyll_demo/blog/pashanhu.github.com/_site/D:. Use --trace to view backtrace
    经搜索,是jekyll版本过高导致,卸载1.4.3,重装1.4.2,问题解决。

更多

因为才刚刚使用jekyll,可能有的地方理解有误。如果有误,请谅解。

在以后,可能会补充一篇jekyll的深入使用说明。 ;-)