联合创作人招募中!
微信联系:yulone

Jekyll是什么?如何用Jekyll生成静态网站?

前段时间就想把这边文章写了,但是由于其他事情的关系没有腾出时间。这边还是想把Jekyll的介绍和基本的使用方法写一下,给自己一个总结也给其他有需要的朋友一个参考。Simon在好多年之前就因为WordPress的效率问题寻找过替代品,比如typecho或者其他简单的可以使你专注于写作的程序。但是由于这两年WordPress的程序优化得比较不错了,另外WordPress提供的强大的插件和主题支持也是我一直还使用它的原因。但对于一些简单的网站需求,我可能就不会去使用WordPress,而采用一种更加“麻烦”的静态网站生成器:Jekyll。

 

Jekyll是什么?它有什么优缺点?

jekyll简单的说,Jekyll是一个静态网站页面生成器,通过 Markdown (或者 Textile)可以自动转化生成,并自动发布一个完全静态的网站。开头我说它“麻烦”是因为在上手习惯他的写作方式之前(页面布局、路由、设置)的工作就不像 WordPress 这么傻瓜,但是在熟悉了之后便会觉得它真的是非常舒服,而且生成的网站是全静态的,Jekyll 系统只负责生成页面,因此对于服务器的要求也很低(不需要数据库),对资源的占用也很少,使你可以真正的专注于写作。

也因为上面的这些优点,Jekyll 可以很容易地被部署在 Github 等代码托管平台,Github Pages 甚至直接接入了 Jekyll 的服务,你可以在上面直接发布自己的网站,这甚至为你省去了购买空间的成本,这一切都是免费的。具体了解请访问:Github Pages(官方)

Jekyll的优点

对系统要求低;代码轻巧简单;无需数据库;自定义能力强;自定义路由;自定义主题;支持搜索(新版本借助第三方可进行全文检索);扩展能力强;

Jekyll的缺点

对于之前没有任何倒腾经验的朋友来说上手会有一定难度;更新内容都需要重新编译生成;

Jekyll可以用来干什么?

Jekyll可以用来搭建自己的个人博客、项目网站、知识中心,总之静态网站能做的它都能够做到,另外 Jekyll 还支持第三方插件,因此还有很多好玩的功能能你去发现。

如何在自己的服务器/VPS上部署Jekyll?

这边暂时先不讲将 Jekyll 部署在 Github Pages 上了,因为网上已经有很多这类的教程了,这边我主要想说一下在自己的服务器/VPS上部署 Jekyll。

首先 Jekyll 是基于 Ruby 的,因此我们要先给自己的机器部署 Ruby 环境和 Ruby 的包管理工具 RubyGems,我之前有一篇教程,可以参考:CentOS下安装/升级Ruby和RubyGems教程

另外,因为我们需要网页服务器,因此你需要给自己的机器搭建一个,常见的有lamp或者lnmp系统,但是你可以不需要搭建数据库系统和php系统,当然为了方便你也可以安装一些面板,如宝塔面板,然后按需要选择你需要的服务。

你也可以参考Jekyll官方的安装方法,但是我发现对于一些新手朋友,对于命令行中的文件管理还是有一定的出错率,因此我这边把教程写得再简单一些。

Jekyll有几种安装方法,我们这边说一种比较利于更新和自定义的,又不妨碍自定义的方法:

首先在命令行中进入要存放网站的根目录,比如:/www/www.abc.com/

通过gem包管理安装Jekyll包:

gem install jekyll

将jekyll安装到当前目录:

jekyll new .

在这一步之后会进行一系列的依赖的安装,安装完之后会出现以下提示:

New jekyll site installed in /www/www.abc.com.

此时如果你刷新根目录的文件列表,会发现多了很多文件,这些是Jekyll的基本文件,这个时候你的网站已经完成。

但是我们上面说了,Jekyll是一个静态页面生成工具,那么我们还需要通过执行代码来让Jekyll帮助我们编译出一个完整的静态页面:

jekyll build

通过执行上述代码,Jekyll就在根目录中帮我们编译出了一个“_site”的文件夹,这个目录中就存放了我们的静态网站,这个时候刷新我们的网站,你会发现是404错误,因为我们没有指定网站的访问目录。我们需要到网页服务器的设置中把本站点的对外访问目录设置为“_site”,类似于同于laravel的操作。

设置完之后我们再刷新网站,就会发现你的网站已经生成好了,至此jekyll的安装就完成了。

因为每次对网站的内容作出修改之后,我们都需要通过 jekyll build 生成一次网站,这不免有些麻烦,jekyll 提供了一个更实用的代码,通过执行下面的代码,jekyll便会监控网站的所有修改“除了_config.yml”,并自动重新生成最新的网站:

jekyll build --watch

另外,jekyll的设置还有很多要点,请大家自行参考以下网站,如果有问题可以评论留言。

附言:

以上方法的好处是 Jekyll 通过 gem 包的方式安装在系统中,而之后对 Jekyll 及使用主题进行更新的时候只需要通过 bundle update 即可完成。而对网站的自定义修改都可以在网站根目录中完成(系统优先编译根目录存在的内容,如果没有的话再从系统的 Jekyll 包中读取,类似WordPress的子主题逻辑),这对于网站更新和自定义是一个非常好的解决方案。服务器中的多个Jekyll网站可以共用同一个 Jekyll 包。

要了解目前bundle的安装情况,可以通过代码:bundle show 列出,再通过 bundle show 名称 来定位 bundle的绝对安装路径,如:

bundle show jekyll

就会定位出 Jekyll 包的存放位置。

Jekyll的参考网站有哪些?

Jekyll官网:https://jekyllrb.com/
Jekyll中文版(非官方):http://jekyllcn.com/
Simon的个人网站:http://www.huangyuzhang.com/

和Jekyll类似的产品还有哪些?

Jekyll可以说是目前最主流的静态网站生成系统之一,其他还有诸如hugo和hexo,它们都有各自的优缺点,但是我还没有使用过这两个系统,因此在这边不对它们进行评价。你如果感兴趣可以自己试试看哪个系统你用起来最舒服,如果你有尝试过的话也欢迎你告诉我!

爱鱼客著作权所有!未经允许不得转载:爱鱼客 » Jekyll是什么?如何用Jekyll生成静态网站?

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址