Jekyll基本概念介绍和安装
本文旨在简单介绍博客站搭建工具jekyll的基本概念和用法
jekyll是什么?
对于刚刚接触jekyll这个博客搭建神器的小白——比如我,来说,对于jekyll这个东西应该会感到极其陌生吧。所以这里简要介绍一下jekyll是什么:
Transform your plain text into static websites and blogs.
这个是jekyll官网首页的一句话。博主学习后按照理解翻译过来就是:jekyll是一个基于ruby将纯文本转换成静态网站和博客的一个工具,该工具支持将markdown,liquid,HTML&CSS等转换成静态网站。 所以通过上述描述,我们知道,这个工具需要一个环境和支持三种“语言”文本格式,即:ruby 环境+markdown、liquid、HTML&CSS。
ruby
ruby是一种面向对象、命令式、函数式、动态的通用编程语言
以上介绍摘自百度百科。因为博主不是rubyer,所以就不做过多介绍,大家可以通过ruby -v来检查自己电脑是否安装有ruby,如果没有或者版本过低,可以按照官网的介绍进行安装 ruby中国官网
markdown
markdown是一种纯文本的格式化标记语言,通过打标签等方式,来给纯文本文章加上格式,并可以方便的转换成html等网页格式,默认后缀名为md。所以通过这里,就发现,markdown真的是一个天然用来写博客的语言。具体语法可以自行进行搜索。
liquid
liquid是一个面向html的模板语言,可以在html中方便的使用来达到根据不同的数据参数生成不同的html页面的功能。
html&&css
这个就不多做介绍了
jekyll安装
按照jekyll官网的介绍,安装需要执行以下一个命令:
gem install bundler jekyll
这个命令安装了两个东西,一个是bundler——ruby是用的依赖管理工具,一个就是我们需要的jekyll了。这两个都需要装好才能使用。 可是有些mac版本os因为比较新,然后apple官方对于权限的管理变得很严,所以在安装的过程中可能会出现以下两种报错:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
这种错就是很常见的权限问题,所以只需要sudo一下就可以了。 除此之外,还可能会有这样的报错:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.
这个报错是说尽管sudo了,但是依旧还是不能在/usr/bin目录下取的安装所需要的权限,此时的解决方法就是换一个目录,即命令如下
sudo gem install -n /usr/local/bin bundler jekyll
这样就可以顺利的安装好jekyll了
jekyll使用
只需要创建自己的博客目录,并执行启动命令就可以了:
mkdir conan & cd conan
bundle exec jekyll serve
然后你会看到类似的日志,此时再浏览器中访问http://127.0.0.1:4000 就可以了
Configuration file: /Users/apple/Workspace/jackckr.github.io/_config.yml
Source: /Users/apple/Workspace/jackckr.github.io
Destination: /Users/apple/Workspace/jackckr.github.io/_site
Incremental build: disabled. Enable with --incremental
Generating...
Remote Theme: Using theme mmistakes/minimal-mistakes
GitHub Metadata: No GitHub API authentication could be found. Some fields may be missing or have incorrect data.
done in 22.817 seconds.
Auto-regeneration: enabled for
Server address: http://127.0.0.1:4000
Server running... press ctrl-c to stop.
在jekyll启动的时候,就会扫描当前目录下的所有文件,然后根据约定的语法规则生成博客站。因为我们通常使用的时候,都是直接下载第三方写好的模板,然后放入自己的博客就可以了,所以这里不详细介绍这些规则,有兴趣的朋友可以直接去jekyll官网学习。
jekyll基本概念介绍
Front matter
一开始接触这个词汇的时候,博主我表示真是一脸懵逼😲。然后也是测试,看别人的写法,然后才理解这个的含义。下面举例如下:
---
layout: posts
author: conan
author_profile: true
---
markdown正文
如上面所示,front matter顾名思义,就是在每个markdown文件的开头加上一些“标签”(以“—”符号开头和结尾),来表示这个文档的属性,如上面所说jekyll会扫描所有文件,然后这些标签就会被jekyll所识别,然后就会影响文章html的生成格式。比如上面的layout: posts就表示这篇用posts这个“格式”来展示文章,并且显示的作者是conan。 front matter里面的标签,有些事jekyll的保留使用的key(如layout),有些则是由具体的模板来定义使用的(如author_profile),所以这些需要查阅具体的模板文档。
layouts
jekyll布局模板。在根目录下有一个_layouts目录,然后里面存放的html文件就是布局文件,文件名就是layouts的值,比如如果有posts.html,那么就可以在front matter中指定layout为posts,那么博客就会以posts.html中定义的格式进行展示。这个可以自己写,也可以直接使用第三方的模板。
posts
在根目录下有一个_posts目录,顾名但我思不了义┑( ̄Д  ̄)┍,这个目录就是存放我们markdown格式博客的地方。在这里,可以有任意数量和深度的文件夹来组织我们的markdown文件,但是markdown文件名却必须有规定的格式:YYYY-MM-DD-title,这里必须是4位数的年-2位数的月-2位数的日-文章名,其中文章名可以有任意字符包括“-”。只有这种格式的文章才会被jekyll识别,否则是不会被用来生成html的。。。。
pages
在根目录下通常还有一个_pages的目录,这个目录下存放的就是一些与博客无关,比如home,about,404等单页面(可以是md或html格式),这些页面的文件名会直接被用在url,或者通过permalink这样一个front matter去指定。
data files
在根目录下有一个_data的目录,这里主要是存放一些跟导航栏相关的配置信息,所以通常会有一个navigation.html文件,然后你可以根据模板的要求,去配置一些导航栏。
collections
这个主要是将多个同一类型的博客进行统一管理的功能,普通用法基本用不上,有兴趣的朋友可以去官网自己学习使用。