搭建 Jekyll 环境

需要搭建 Jekyll 环境,通过遵循 Jekyll 的规范,让 Jekyll 帮助我们生成静态网站。

  1. 安装 Ruby:Ruby 安装教程Windows 下载

  2. 打开 CMD,执行命令安装 Jekyll:

    gem install jekyll
  3. 进入仓库文件夹,执行命令:

    bundle install

目录结构

每个目录的作用:

文件 / 目录 描述
_config.yml 保存配置数据。很多配置选项都可以直接在命令行中进行设置,但是如果你把那些配置写在这儿,你就不用非要去记住那些命令了。
_drafts drafts(草稿)是未发布的文章。这些文件的格式中都没有 title.MARKUP 数据。学习如何 使用草稿.
_includes 你可以加载这些包含部分到你的布局或者文章中以方便重用。可以用这个标签 {% include file.ext %} 来把文件 _includes/file.ext 包含进来。
_layouts layouts(布局)是包裹在文章外部的模板。布局可以在 YAML 头信息中根据不同文章进行选择。 这将在下一个部分进行介绍。
_posts 这里放的就是你的文章了。文件格式很重要,必须要符合:YEAR-MONTH-DAY-title.MARKUP永久链接 可以在文章中自己定制,但是数据和标记语言都是根据文件名来确定的。
_data 格式化好的网站数据应放在这里。jekyll 的引擎会自动加载在该目录下所有的 yaml 文件(后缀是 .yml, .yaml, .json 或者 .csv )。这些文件可以经由 `site.data` 访问。如果有一个 members.yml 文件在该目录下,你就可以通过 site.data.members 获取该文件的内容。
_site 一旦 Jekyll 完成转换,就会将生成的页面放在这里(默认)。最好将这个目录放进你的 .gitignore 文件中。
.jekyll-metadata 该文件帮助 Jekyll 跟踪哪些文件从上次建立站点开始到现在没有被修改,哪些文件需要在下一次站点建立时重新生成。该文件不会被包含在生成的站点中。将它加入到你的 .gitignore 文件可能是一个好注意。
index.html and other HTML, Markdown, Textile files 如果这些文件中包含 YAML 头信息 部分,Jekyll 就会自动将它们进行转换。当然,其他的如 .html, .markdown, .md, 或者 .textile 等在你的站点根目录下或者不是以上提到的目录中的文件也会被转换。
Other Files/Folders 其他一些未被提及的目录和文件如 css 还有 images 文件夹, favicon.ico 等文件都将被完全拷贝到生成的 site 中。这里有一些使用 Jekyll 的站点,如果你感兴趣就来看看吧。

参考资料

  • jekyll 模板
  • Liquid 模板语言

问题处理

问题一

bundle install 提示 Could not locate Gemfile

原因:项目下缺少 Gemfile 文件。

解决:jekyll new myblog 创建项目,将 Gemfile 文件拷贝过来。

问题二

Dependency Error: Yikes! It looks like you don't have jekyll-sitemap or one of its dependencies installed.

解决:在 Gemfile 文件中增加如下内容:

gem 'jekyll-sitemap'
gem 'jekyll-paginate' 

问题三

Liquid Exception: Could not locate the included file 'file.ext' in any of ["E:/code/GitHub/Jueee/jueee.github.io/_includes"]. Ensure it exists in one of those directories and, if it is a symlink, does not point outside your site source.