在Jekyll中列出所有集合
我正在与Jekyll(v2.5.3)建立一个杂志网站。上的文档让我相信我可以列出网站上的所有收藏,并将每个收藏的YAML数据嵌入我的在Jekyll中列出所有集合,jekyll,Jekyll,我正在与Jekyll(v2.5.3)建立一个杂志网站。上的文档让我相信我可以列出网站上的所有收藏,并将每个收藏的YAML数据嵌入我的\u config.yml _config.yml: collections: issue_001: output: true permalink: /:title/:path title: Rebirth date: 2015-07-01 issue_002: output: true permalink:
\u config.yml
_config.yml:
collections:
issue_001:
output: true
permalink: /:title/:path
title: Rebirth
date: 2015-07-01
issue_002:
output: true
permalink: /:title/:path
title: Talking Heads
date: 2015-08-01
index.html:
{% for issue in site.collections %}
<li>
<h6 class="post-meta">Issue {{ issue.name }} — {{ issue.date | date: "%b %-d, %Y" }}</h6>
<h2>
{{ issue.title }}
</h2>
</li>
{% endfor %}
{%用于site.collections%中的问题]
问题{Issue.name}&mdash;{{issue.date}日期:%b%-d,%Y}
{{issue.title}
{%endfor%}
我的主页上出现了两个问题,但我访问的每个问题的数据(姓名、日期、标题等)都没有出现。我知道这是一个测试版功能,所以只想问一下这是坏了还是我做错了?在
{%for issue In site.collections%}
中,issue
是一个数组,包含:
0 => "issue_001",
1 => Hash
{"output"=>true,
"permalink"=>"/:title/:path",
"title"=>"Rebirth",
"date"=>#,
"label"=>"issue_001",
"docs"=>[#],
"files"=>[],
"directory"=>"/home/djacquel/www/test.dev/jekyll/wat/_issue_001",
"relative_directory"=>"_issue_001"}
访问数据的正确方法是:
{% for issue in site.collections %}
<li>
<h6 class="post-meta">
Issue {{ issue[1].label }}
—
{{ issue[1].date | date: "%b %-d, %Y" }}
</h6>
<h2>
{{ issue[1].title }}
</h2>
</li>
{% endfor %}
{%用于site.collections%中的问题]
问题{问题[1]。标签}
&mdash;
{问题[1]。日期|日期:“%b%-d,%Y”}
{{问题[1]。标题}
{%endfor%}
如果有人仍然有此请求,下面介绍它在最新的Jekyll(v3.8.3)中的工作原理:
更新:经过测试,它在v4.2.0中仍然有效
{%用于site.collections%}
来自{{collection.label}的项
{站点[collection.label]%中的项的%s}
{%endfor%}
{%endfor%}
第二优先;太棒了!在这段代码和来自默认Jekyll主题(Minima)的源代码之间,我能够预感到以下内容
第一秒;很好的问题是,两人的票数都没有增加,这有点令人困惑
以及许多其他相关点的第三点;我并没有走上与问题海报相同的道路,但以下代码可能对读者有用。我的用例需要一种类似于默认的Jekyllhome
layout的方式来列出集合的一致性
注意:源链接可通过以下方式下载:单击Raw
link/按钮,然后按Ctrl-s保存为常规文本文件,但是,这些链接已被及时冻结,因此请确保检查分支以获取更新。在本例中,输出示例仅是可能内容的示例,例如,它可以是Lorem字符串,用于演示接下来的内容
---
布局:默认值
---
{%comment%}
S0和S0的许可证说明;这方面的编辑。
最小值(以下代码的来源)在
麻省理工学院李森分校,https://github.com/jekyll/minima/blob/master/LICENSE.txt
因此,对Minima源代码的任何修改都将在MIT Lisense下重新共享
{%endcomment%}
{%capture workspace_collections%}
{%assign collection_name=page.collection_name |默认值:include.collection_name |默认值:nil%}
{%assign target\u collection=站点[collection\u name]}
{%-if page.title-%}
{{page.title}}
{%-endif-%}
{{content}}
{%assign有_输出=False%}
{%-if target_collection.size>0-%}
{%capture workspace_collection%}
{{page.list_title}默认值:“Posts”}
{%-对于目标_集合中的post-%}
{%-如果page.relative_path==post.relative_path-%}
{%-continue-%}
{%-else-%}
{%assign有_输出=True%}
{%-endif-%}
-
{%-assign date_format=site.minima.date_format |默认值:'%b%-d,%Y'-%}
{{post.date | date:date_format}
{%-if site.show_摘录-%}
{{post.extract | markdownify | remove:''| remove:''}
{%-endif-%}
{%-endfor-%}
{%endcapture%}
{%-if has_output==True-%}
{{-workspace\u collection-}{%assign workspace\u collection=nil%}
{%-endif-%}
{%-endif-%}
{%endcapture%}{{workspace_collections}{strip}{%assign workspace_collections=nil%}
顺便说一句,我记不起是从哪里学来的capture
someworkspace
技巧的,但是strip
ping新行和其他格式化把戏真是让人汗流浃背。如果读者知道是谁引起了这种幻想,请编辑或留下评论
此布局的使用与Minima布局的使用非常相似 。。。前面的内容从集合中选择看起来像
布局:命名的\u集合
集合名称:管理
标题:管理
列表标题:用法示例
永久链接:/admin/
。。。导致输出集合列表
。。。前面的内容从集合中选择看起来像
布局:命名的\u集合
集合名称:git\u shell\u命令
标题:Git Shell命令
列表标题:用法示例
permalink:/git\u shell\u命令/
。。。导致输出集合列表
关于收藏的更多说明 如果我正确阅读了最新的文档,从版本
3.7.0
开始,可能会有一个自定义的集合目录,在这个问题中,它可能看起来像
ls~/git/杂志名称/
# ... 其他文件和/或目录
#问题/
# ... 其他文件和/或目录
#_config.yml
。。。其中issues/
目录包含子目录,如
ls~/git/杂志名称/发行/
# _001/
# _002/
# _003/
# ...
。。。而\u config.yml
文件已
collections\u dir:问题
收藏:
001:
输出:真
# ...
。。。神奇的酱汁是collections\u dir
和not,使用的是一个分数不足的前缀基目录。文档中关于最后一点的内容非常响亮,例如,\u问题/
会造成不好的结果
我不确定是否会有加班
collections_dir: misc
mkdir misc
mv _posts misc/