在Jekyll中生成具有不同变量的相同布局的多个页面

时间:2017-09-05 15:11:32

标签: html jekyll

我使用Jekyll生成一些静态html页面。但是,我也希望生成相同的布局,但使用不同的变量。我对我的生活似乎无法表达我的意思,所以这是一个基本的例子:

_config.yml

title: Foos and Bars

生成 index.html

<!DOCTYPE html>
<html>
  <body>
    <h1>Foos and Bars</h1>
  </body>
</html>

然后我想使用相同的基本模板( index.html )来生成更多页面:

生成 index_2.html

<!DOCTYPE html>
<html>
  <body>
    <h1>Bars and Foos</h1>
  </body>
</html>

生成 index_3.html

<!DOCTYPE html>
<html>
  <body>
    <h1>And Foos Bars</h1>
  </body>
</html>

我是否需要创建另一个 _config.yml 文件并每次运行它?这看起来效率太低了。所有这些变量都可以存储在同一个 _config.yml 中吗?是否有更高效的程序/方法?

让我知道如果我能澄清什么。感谢您查看可能提供的任何输入。

1 个答案:

答案 0 :(得分:2)

如果我理解您的问题,那么您的解决方案就是在每个页面中使用YAML前端事项,其中声明了专用的“_config.yml变量”。

鉴于您在jekyll项目的page.html目录中有一个布局文件_layouts,如下所示:

<!DOCTYPE html>
<html>
  <body>
    <h1>{{ page.title }}</h1>
    <p>{{ page.content }}</p>
  </body>
</html>

然后您可以创建一个页面 - 让我们称之为index.html - 使用以下布局:

---
layout: page
title: Foos and Bars
---
This is the text of my page

这会在index.html目录中生成以下_site

<!DOCTYPE html>
<html>
  <body>
    <h1>Foos and Bars</h1>
    <p>This is the text of my page</p>
  </body>
</html>

这个其他页面 - 我们称之为index_2.html

---
layout: page
title: Bars and Foos
---
This is the other text of my other page

将在index_2.html目录中生成_site

<!DOCTYPE html>
<html>
  <body>
    <h1>Bars and Foos</h1>
    <p>This is the other text of my other page</p>
  </body>
</html>

请参阅official documentation