【问题标题】:Create a page for every data file?为每个数据文件创建一个页面?
【发布时间】:2018-10-13 03:30:49
【问题描述】:

我正在尝试构建一个可以为每个数据文件生成一个页面的 jekyll 站点。

说我们有

/_data/
  a.yaml
  b.yaml

在哪里 a.yaml

event_name: A
time: yesterday
contents:
  - name: A1
    url: a1
  - name: B1
    url: b1

b.yaml基本上是同一个东西,内容不同。

我希望呈现的网站有 2 个页面:/a.html/b.html。每个页面的内容是a.yamlb.yaml 中内容的简单列表。现在的 Jekyll 有可能吗?

我知道有一个非常好的 jekyll 插件,叫做 jekyll-datapage-gen。但是,该插件为数据文件中的每个项目生成页面,并且与我正在寻找的不同......有人可以在这里提供一些建议吗?谢谢!

【问题讨论】:

  • 我会将前面的 yaml 存储在 .md 文件中(所以不在 _data 目录中的 yml 文件中)。但这在您的情况下可能是不可能的(鉴于您的问题)。

标签: jekyll


【解决方案1】:

您可以使用集合而不是数据文件来实现这一点。文件看起来是一样的,只是前面的,然后你在配置中指定用output: true 使每个文件的后面不同

看看https://jekyllrb.com/docs/collections/,你的配置会是这样的:

collections: 
    my_collection:
         output: true

可以对数据文件做同样的事情,创建帖子 a 和帖子 b,并在每个数据文件的页面中迭代,无论如何我认为在这种情况下使用集合非常适合。

【讨论】:

  • 所以我想我应该按照@JoostS 的建议将这些 yaml 文件重命名为 .md?
  • @Hao 是的,例如,将这些人重命名为 a.md 并将属性/值放在 --- 之间。然后像前面的例子一样创建一个开头带有下划线的目录,例如:_my_collection
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多