使用Jekyll显示第一篇文章的引用

时间:2011-05-28 16:38:57

标签: liquid jekyll

我正在尝试设置Jekyll,以便帖子列表中第一篇帖子的引用显示在侧边栏中,但我无法理解如何做到这一点。我在每个帖子的Markdown中将YML Front Matter中的引用文本定义为quote变量。

这是我 default.html 的相关摘录:

<div id="content">
  {{ content }}
</div>    
<div id="sidebar">
  <blockquote>{{ page.quote }}</blockquote>
</div>    

这是我的 index.html

---
layout: default
quote: ** Can a variable referencing the first post go here? **
---
{% for post in site.posts limit:10 %}
  <h2>{{ post.title }}</h2>
  <div class="post">
    {{ post.content }}
  </div>
{% endfor %}

2 个答案:

答案 0 :(得分:3)

{% for post in site.posts limit:10 %}
  {% if forloop.index0 == 0 %}
    {% assign quote = post.quote %}
  {% endif %}

  <h2>{{ post.title }}</h2>
  <div class="post">
    {{ post.content }}
  </div>
{% endfor %}

并在 default.html

<div id="content">
  {{ content }}
</div>    
<div id="sidebar">
  <blockquote>{{ quote }}</blockquote>
</div> 

我认为你不能在YML问题中存储引用,但这应该得到你想要的。

答案 1 :(得分:2)

经过大量实验,我能够在 default.html 中使用此Liquid片段解决问题:

<div id="sidebar">
  <blockquote>
  {% if page.quote %}
    {{ page.quote }}
  {% else %}
    {{ site.posts.first.quote }}
  {% endif %}
  </blockquote>
</div>