0

我有一个节点网络,其中一些节点相互关联。我正在使用 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

我打算让“意外伤害”出现在“海洋兼捕”相关节点下......

4

1 回答 1

1

第一个问题是帖子对 jekyll 中的其他帖子基本上是“盲目的”。在 jekyll 的另一篇文章中,一篇文章的 url(或标题)是不可能的,只有前者的 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。

如果您对此有任何问题,请告诉我,祝您好运!

于 2011-12-15T18:53:49.720 回答