基于Jekyll和github Pages博客搭建全过程(二)

基于jekyll和github pages博客搭建全过程(一)

基于jekyll和github pages博客搭建全过程(三)

上一篇文章说到了博客的基本搭建和编写。如果对个人博客要求不高的同学其实就已经足够了。
本文主要是介绍如何更加深入定制个人博客。

本地安装jekyll

如果已经完成上文的博客搭建,相信你已经对jekyll的项目结构有一定的了解。若你想更好的定制自己的blog,
那么肯定需要自己修改项目的源码,改它的样式界面。但是每次修改代码要上传到github,等待编译刷新页面才能看到效果,
那效率就太慢了。所以想要高效地修改维护自己的blog,免不了要本地安装jekyll。以下是linux系统的安装步骤

ruby安装

ruby安装是个门槛,因为新版的jekyll需要2.0以上的ruby,但是你直接用apt-get install命令安装,最多只会安装到1.9版本。
但是有两个巧妙的解决方法

  • 直接安装ruby2.0 $ sudo apt-get install ruby2.0,然后用关联命令关联为ruby
  • 直接用命令$ sudo apt-get install ruby安装1.9的ruby,待会安装jekyll,不要安装最新版,安装2.5.0版本
  • 用RVM去安装指定版本的ruby,比较麻烦,参考 https://ruby-china.org/wiki/install_ruby_guide

rubygems安装

rubygems是ruby的包管理器,就像node的npm,
如果你按上面步骤安装到这一步,一般都会失败,因为rubygems还依赖ruby-dev,所以在安装rubygems前,
需要执行$ sudo apt-get install ruby-dev

jekyll安装

这一步总的来说就是执行$ sudo gem install jekyll,但是一般都会有比较多的问题,例如缺少gcc,
ruby版本太低等等,具体问题有太多,只能上google搜索下解决方法。

jekyll包依赖解决

如果你的jekyll项目是从fork别人的代码,那么一般的都会引用到其他的包,在你启动项目时会报错,因为你还没安装。
对应缺少的包,你需要用gem去安装,$ sudo gem install jekyll-sitemap。你可以在项目中的Gemfile查看你引用的包,
并主动安装它。

jekyll服务启动

cd到对应的项目目录,输入$sudo jekyll serve就可以启动项目了。对于你的代码,只要不改到_config.yml配置文件,
jekyll会实时编译你的改动,你每改动一次只要即使刷新页面就可以看到了。

Windows环境怎么办?

我建议,如果是Windows的话,就别折腾去本地安装jekyll了。因为linux环境都已经够复杂的了。
若你还是希望在Windows下安装jekyll,你只能寄于docker或者虚拟机了。否则你还是乖乖的上传代码看效果吧。


定制自己的项目

这一节大概粗略介绍以下,如何有技巧的、快速的定制自己的博客。

了解自己的模板

一般来说我们的blog都是从网上拿的模板。在拿的时候,不要看完界面好看就fork。

  1. 你要先看看项目的REAME.md,看看它说明的功能是否符合你的需求,例如有没有tag统计功能,文章分类功能等。
  2. 看项目的_config.yml,这是整个项目的核心。优秀的jekyll项目,都会把功能配置、主要参数写到这个文件内,
    所以你看这文件,就基本知道有哪些功能,并对应修改它

修改前端

很经常你在用一个新的模板时,会觉得某些地方不合适,例如有些facebook、twitter分享按钮不想要,
想换成自己的一些联系方式。你会想删除或者调整一些内容,但又不知道去哪里修改这些东西。
其实你或许不需要知道太多前端的知识,你只需要对整个项目全局搜索facebook,找出对应位置,在附近添加修改即可。
没必要真的完全理解整个项目是如何编译运行的。

jekyll的深入

一般jekyll的文件目录结构如下
folder of jekyll
jekyll的启动运行大致如下流程:

  1. 读取_config.yml配置,修改到这个文件需要重启jekyll服务
  2. 读取根目录的index.html文件,但这文件一般没内容,需要递归读取
  3. _符号的目录都是最底层的生成文件,是项目启动后不能直接访问的,
    它们会编译填充进上级的目录文件中,这些目录都是不带_符号。
  4. 需要读取一些内容时,这些内容就会执行步骤3.,归并到上级可显示等级中呈现出来,
    而不是一次全加载。
  5. 大多数一个不带_符号的文件夹,(除了assets文件夹,存放可以直接访问的图片、css、js等),
    是一个页面,然后由_layouts里的各个页面文件填充。
  6. _includes文件一般是通用组件的页面

由此可见,一般你需要修改的文件大多是带_符号的文件,例如页面的修改,博客的编写等。
而修改页面的title则是修改不带_符号的文件,因为这是建立页面的基础属性。


参考 :

https://ruby-china.org/ ruby China主页

http://jekyllcn.com/ jekyll中文主页

听说你想请我喝下午茶?~