jekyll 博客的全局变量作用域

global variables scope for blog in jekyll

我不想为每个博客 post 编写布局,而是希望为 post 索引声明默认布局,并为单个博客 post 声明一个不同的布局。在我的配置中我有

defaults:
  -
    scope:
      path: "blog"
    values:
      layout: "posts"

这对博客索引(带有摘录的索引)来说效果很好。但是一旦我点击了一篇文章,我想要一个不同的布局,所以我尝试了:

defaults:
  -
    scope:
      path: "blog"
    values:
      layout: "posts"
  -
    scope:
      path: "blog/_posts"
    values:
      layout: "blog-post"

但没有成功。它仍然呈现 layout: "posts"

我该如何解决这个问题?

设置默认值时,"blog/_posts" 之类的路径将不匹配,因为“_posts”是 "magic folder"。

但由于您的 index.htmlpage,您可以使用 "scope type" 并执行:

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