使用Jekyll在Github上搭建我的博客(环境搭建)

我的博客原文传送门css

以前曾经使用nodejs写了一个博客系统,可是偷偷用的公司服务器。无奈被发现了,o(╯□╰)o,被勒令下线了以后只能想其余方法写博客了。本来是想换个地方搭建,因而找百度的同窗要了个BAE的nodejs权限,可是抢不到配额,呵呵呵...因而乎就想到了Github上使用静态页面搭建博客的方法html

##为何是Jekyll+github?

官网首页 上的描述是: Transform your plain text into static websites and blogs。Jekyll将原始文本根据必定规则转换成静态的网页和博客。但这个转换并非简单的字符串替换就了事了,而是首先读取各个文件中的内容,根据配置文件中描述的参数在内存中构建一个巨大的对象存储整个博客的信息,而后再将这些信息根据配置文件中定义的输出方式来生成具体的HTML文件。整个项目是由Ruby写的,因此若须要在本地调试则须要安装Ruby。node

使用Jekyll搭建博客有几个好处:
1. 不须要使用额外的数据库
2. 支持markdown,liquid,以及原始的html、css
3. 能够定义模板,并在模板上进行代码复用
4. github对其支持,能够直接在github上搭建,能够继承github上的各类好处(版本控制,免费,无流量限制)
5. 有不少扩展插件(可是在github上用不了,github不容许用户使用扩展插件,大概是出于安全性考虑)git

固然缺点也有不少:
1. 生成的是静态网页,没法动态加载,若须要外部服务如评论,只能使用相似于disquz,多说这样的外部插件了
2. 仅仅适合小型网站,不适合大中型网站
3. 没有数据库及服务端的逻辑github

因而可知,用来搭建我的博客至关合适(github版本控制,免费,无流量限制,支持markdown,无需关心服务器端逻辑和数据库)web

##本地安装Jekyll

首先安装Ruby及gem

  1. RubyInstaller下载ruby,若是有经验的能够直接从Ruby官网进行下载,前者安装比较无脑,会有一些额外的依赖包进行安装,版本也较低,而Ruby官网的版本则相对较高,可是没有额外的依赖包。下载的时候版本选较高一些的,不然会有bug,我选择的是2.0.0p353(2013-11-22)。安装的时候记得勾选添加环境变量。shell

  2. 安装devkit,RubyInstaller页面中往下拉就能看到。选择本身版本的Ruby对应的devkit,下载并解压,而后执行:数据库

cd devkit
ruby dk.rb init
ruby dk.rb install

这样就完成ruby环境的安装了windows

  1. 安装gem,这个也能够去gem的官网进行下载,而后直接安装就好了,安装完成后使用gem -v查看一下是否安装成功。我安装的是2.1.11版本安全

  2. gem是能够选择源的,默认的源有点慢,可使用ruby.taobao.org的源,方便快捷
    查看当前源

D:\node\jekyll>gem sources list
*** CURRENT SOURCES ***

https://rubygems.org/

D:\node\jekyll>

添加新源

gem sources -a http://ruby.taobao.org/

删除默认源

gem sources --remove https://rubygems.org/

再次查看的时候保证只有http://ruby.taobao.org/就好了

若是上面出错,去网上找找教程吧,ruby环境的搭建和gem的安装教程仍是蛮多的,基本google一下遍地都是。

使用gem安装Jekyll

使用命令gem install jekyll就能够安装jekyll及全部须要的依赖,但不包括插件,安装jekyll的时候须要注意一下安装的版问题,jekyll的最新版本为1.4.3,可是有一个bug,stackoverflow上有人遇到过,我本身在使用的时候也遇到了相似的问题,解决方法是安装1.4.2版本,因此这里的安装命令为:gem install jekyll --version "=1.4.2"。安装完成后使用jekyll -v查看一下是否安装成功了

Jekyll在windows下的字符集问题

这个问题较多人遇到过,主要是在启动jekyll服务器的时候出现,以及一些中文文件名上出现,能够参考网上的解答:
1. windows下本地jekyll博客搭建手记
2. Jekyll 本地调试之若干问题
3. 在Windows下使用jekyll如何避免出现中文字符集错误

在这里,我仅仅是改了git bash的字符集,并无去改jekyll的源文件,由于self.content = File.read(File.join(base, name))语句已经变了,不敢随便改。中文文件名的问题则经过改成全英文文件命名来避开,category里中文的问题则经过修改Permalinks来避开,这些后面会详细介绍

相关文章
相关标签/搜索