使用Jekyll在Github上搭建个人博客(环境搭建)

个人博客原文传送门

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

##为什么是Jekyll+github?

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

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

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

由此可见,用来搭建个人博客相当合适(github版本控制,免费,无流量限制,支持markdown,无需关心服务器端逻辑和数据库)

##本地安装Jekyll

首先安装Ruby及gem

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

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

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

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

  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来避开,这些后面会详细介绍


尘世间一个迷途的小码农

5.3k 声望
564 粉丝
0 条评论
推荐阅读
聊一聊前端自动化测试
以前不喜欢写测试,主要是觉得编写和维护测试用例非常的浪费时间。在真正写了一段时间的基础组件和基础工具后,才发现自动化测试有很多好处。测试最重要的自然是提升代码质量。代码有测试用例,虽不能说百分百无b...

天镶63阅读 24.6k评论 14

git 多用户配置(多用户 & 公司/个人)
多用户配置公司和github,经常会遇到要多用户使用git的情况,以下为配置信息,以下拿xiaoxuete1 & xiaofute2举例设置ssh-key {代码...} 会提示存储的文件名,输入如果需要push时确认的密码,可在该步骤输入.pub文件...

小夫特1阅读 7.5k

github 和 gitlab 之自定义首页样式
🎈 个性首页相信很多小伙伴在逛 github 和 gitlab 的时候会发现很多开发者的首页异常的炫酷,如 [链接]🎈 制作步骤是不是立马想拥有一个属于自己的高大上主页了从上图中我们可以看出,其实它展示的一个 readme 里面...

tiny极客3阅读 1.7k评论 4

封面图
[译]尤雨溪: Ref语法糖提案
最近 ref 的语法糖引起了极大的争议,很多人也是没看 RFC 就直接开喷,虽然我也不喜欢这种语法,但还是有必要让大家看一看在 GitHub 上的提案,看看国外开发者们普遍都是些什么态度,是否和我们持有同样的观点,...

手撕红黑树阅读 2.8k

K8S 生态周报| containerd 存在 bug 会导致 Pod 被重启,建议升级
这是 2023 年的第一篇『K8S 生态周报』,在上个月的月中之后我因为阳了就停止更新了,一直在修养身体。生病相关的内容我在上一篇文章 张晋涛:我的 2022 总结 | MoeLove有做介绍。愿大家都注意身体,保持健康。

张晋涛1阅读 746

封面图
新开源项目(solidjs-use)随想录
如果你是 React 技术栈,就会发现其对新手其实是不太友好的,会导致新人写出很多重复渲染的组件和 BUG,而且排查难度高(当然 React 依然是最优秀的框架,很多理念的提出者和先行者)。

超杰2阅读 701

封面图
java 中文繁简体转换工具 opencc4j 使用介绍 1.8.0
Opencc4jOpencc4j 支持中文繁简体转换,考虑到词组级别。在线体验Features 特点严格区分「一简对多繁」和「一简对多异」。完全兼容异体字,可以实现动态替换。严格审校一简对多繁词条,原则为「能分则不合」。词...

老马啸西风2阅读 273

尘世间一个迷途的小码农

5.3k 声望
564 粉丝
宣传栏