为什么这么多主题中缺少 'post' 布局?

Why is the 'post' layout missing from so many themes?

我使用 WordPress 插件 "WordPress to Jekyll Exporter" 将我的 WordPress 博客转换为 Jekyll 博客。所有 post 的封面内容包括:

layout: post

但是除了默认 minima 主题之外,我测试过的所有主题显然都没有这个 post 布局,因为我从 Jekyll 服务器收到这样的错误消息,每个 post:

Build Warning: Layout 'post' requested in _posts/2015-11-07-the-case-for-nested-methods-in-ruby.md does not exist.

这里发生了什么?所有主题都是为非博客网站设计的吗?

有没有简单的解决方法?

我的更高级别目标是尝试使用 minima 以外的主题,以找到比默认 minima 主题更具吸引力的内容。

我不知道你说的是哪个主题,但你可以在这里找到主题:

http://jekyllthemes.org 我研究的大多数主题都有 post 布局。

如果您真的需要但找不到它,您可以为 post 创建自己的模板,方法是将 post.html filo 添加到模板文件夹中,然后简单地调用默认布局.

---
layout: default
---

也许您可以将 link 添加到您正在讨论的主题中,如果它们在 Github 上,您可以随时提交有关该主题的问题。

在这里你可以调用 Minima 的新问题:

https://github.com/jekyll/minima/issues

Jekyll 没有命名布局的标准方式,这具有灵活性的好处,但有时会引起混淆。

每个主题都可以创建自己的布局,因此您会发现更改主题并不会按您预期的方式工作,事实上,大多数情况下不会,因为通常您会发现 defaultpagepost 布局,但是当您尝试另一个主题时,它们的布局可能会被不同地调用。

minimal-mmistakes 主题为例,它是最流行的主题之一,它具有所有这些布局:

_layouts/
  ├── archive.html
  ├── archive-taxonomy.html
  ├── categories.html
  ├── category.html
  ├── collection.html
  ├── compress.html
  ├── default.html
  ├── home.html
  ├── posts.html
  ├── search.html
  ├── single.html
  ├── splash.html
  ├── tag.html
  └── tags.html

如果您只是在配置中更改主题名称,我敢打赌它不会使用所有这些布局。

这就是为什么您需要根据每个主题要求自定义您的网站。

备注

不需要在每个post中指定主题布局,一般在config中设置为front matter default会更简单,在这种情况下,每个post都会使用那:

defaults:
  -
    scope:
      path: ""
      type: "posts"
    values:
      layout: "post"