我有一个节点网络,其中一些节点彼此相关。我正在使用Jekyll为网站提供支持,并且希望使用液体标签来映射这些关系。
所以,我一直试图这样做的方式如下。
A ,属于 1 类别,与 B 相关 B ,属于 2 类别,与 A 和 C
相关当我访问A的页面时,我希望看到B列为相关的。
我已经定义了YAML前端问题:
title: A
category: 1
tags:
- B.html
title: B
category: 2
tags:
- A.html
- C.html
我的液体模板如下:
<h2>{{ page.title }} <span class="label important">{{ page.category }}</span></h2>
<p>Last edited: {{ post.date | date_to_string }}</p>
<p><em>{{ content }}</em></p>
<h4>Related</h4>
<ul>
{% for post in site.tag.{{ post.url }} %}
<li><a href="{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}
</ul>
对我来说,看起来它应该有效。实际上,它没有。
欢迎提出建议!
,相关的Github页面在这里: https://raw.github.com/salmonhabitat/salmonhabitat.github.com/master/_posts/2011-12-12-bycatch.md
https://raw.github.com/salmonhabitat/salmonhabitat.github.com/master/_posts/2011-12-12-accidental.md
https://github.com/salmonhabitat/salmonhabitat.github.com/blob/master/_layouts/post.html
我打算发生的事情是“意外受伤”出现在“海洋兼捕”的相关节点下......
答案 0 :(得分:1)
第一个问题是帖子对jekyll中的其他帖子基本上是“盲目的”。从jekyll的另一个帖子里面的一个帖子的网址(或标题)是不可能的,只有前者的id。您的site.tag.{{ post.url }}
虽然具有创意,但却无效:)。
首先,你的前面的事情(不幸的是)需要更复杂才能做到这一点:
title: A
category: 1
related_posts:
- title: B
href: /2010/01/01/B.html
- title: C
href: /2011/11/11/C.html
请注意,我已将名称从“tags”更改为“related_posts”。我觉得这种方式更清楚。
现在您可以尝试以下代码:
<h2>{{ post.title }} <span class="label important">{{ post.category }}</span></h2>
<p>Last edited: {{ post.date | date_to_string }}</p>
<p><em>{{ content }}</em></p>
{% if post.related_posts %}
<h4>Related</h4>
<ul>
{% for related_post in post.related_posts %}
<li><a href="{{ related_post.href }}">{{ related_post.title }}</a></li>
{% endfor %}
</ul>
{% endif %}
虽然这比你的版本更冗长,但它有一个优点 - 你可以在相关帖子中指定你自己的标题,而不必被迫使用B或C.
如果您对此有疑问,请告诉我,祝您好运!