Jekyll:安装基于 gem 的主题

Jekyll: installing a gem-based theme

我已经使用 Jekyll v3.4.3 成功创建了我的第一个静态网站。现在我想将默认的 "minima" 主题更改为另一个基于 gem 的主题,例如 jekyll-theme-minimal

据我了解,根据 jekyll documentation 这只需要以下步骤:

1.- 将主题添加到您网站的 Gemfile:

gem "jekyll-theme-minimal", "~> 0.0.3"

2.- 安装主题:

bundle install

3.- 将以下内容添加到您网站的 _config.yml 以激活主题(注释掉 "minima" 并添加新的):

theme: jekyll-theme-minimal

4.- 建立您的网站:

bundle exec jekyll serve

我按照这些步骤操作,但构建网站(第 4 步)时出现以下错误:

$ bundle exec jekyll serve
Configuration file: /home/username/jekyll/myblog/_config.yml
Configuration file: /home/username/jekyll/myblog/_config.yml
            Source: /home/username/jekyll/myblog
       Destination: /home/username/jekyll/myblog/_site
 Incremental build: disabled. Enable with --incremental
      Generating... 
     Build Warning: Layout 'post' requested in _posts/2017-03-22-welcome-to-jekyll.markdown does not exist.
  Liquid Exception: Could not locate the included file 'icon-github.html' in any of ["/home/username/jekyll/myblog/_includes"]. Ensure it exists in one of those directories and, if it is a symlink, does not point outside your site source. in about.md

我看到新的基于 gem 的主题已经安装

$ bundle show jekyll-theme-minimal
/home/username/.gem/ruby/2.4.0/gems/jekyll-theme-minimal-0.0.3

但我注意到新主题没有_includes 目录。另外,我看到我的 Jekyll 站点目录中的 about.md 文件仍然引用默认的 "minima" 主题:

$ cat ~/jekyll/myblog/about.md 
---
layout: page
title: About
permalink: /about/
---

This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](https://jekyllrb.com/)

You can find the source code for the Jekyll new theme at:
{% include icon-github.html username="jekyll" %} /
[minima](https://github.com/jekyll/minima)

You can find the source code for Jekyll at
{% include icon-github.html username="jekyll" %} /
[jekyll](https://github.com/jekyll/jekyll)

如何在我的站点中将默认 "minima" 主题更改为另一个基于 gem 的主题?

Jekyll 主题文档指定了使用新主题的一般过程,但由于 Jekyll 非常 灵活,它不能保证每个主题都能开箱即用。

Jekyll 默认安装,附带示例数据、页面 布局和包含

Minimal 主题有一个 默认布局 不包含 ,例如帖子Jekyll 附带使用 includes 并使用 page 布局,它不会工作。

安装 minimal 主题后,您需要确保您所有的帖子都具有 layout: default 作为布局(没有 layout: pages or any other one), and posts content does not has includes.

在这种情况下,像那样调整 about.md 后,它看起来像这样:

---
layout: default
title: About
permalink: /about/
---

This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](https://jekyllrb.com/)

You can find the source code for the Jekyll new theme at:
[minima](https://github.com/jekyll/minima)

You can find the source code for Jekyll at
[jekyll](https://github.com/jekyll/jekyll)

或者,如果您不想更改帖子的内容,只需提供缺少的内容,包括 and/or 布局创建这些文件夹并创建您希望使用新主题的适当的丢失文件,您不仅限于使用主题使用的内容 Overriding theme default