Отображение цитаты из первого поста с помощью Jekyll

Я пытаюсь настроить Jekyll так, чтобы цитата из первого сообщения в списке сообщений отображалась на боковой панели, но я не могу понять, как это сделать. У меня есть текст цитаты, определенный как переменная quote в YML Front Matter в Markdown каждого сообщения.

Это соответствующая выдержка из моего 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 %}

person John Topley    schedule 28.05.2011    source источник


Ответы (2)


{% 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, но это должно получить то, что вы хотите.

person Deepak Danduprolu    schedule 28.05.2011
comment
Спасибо, но это, к сожалению, не работает. Похоже, что назначенная переменная не входит в область действия файла default.html. - person John Topley; 28.05.2011
comment
Я использовал эту технику раньше, поэтому я немного удивлен. У вас все еще есть quote в блоке YML? Вы можете попробовать изменить page.quote на quote. - person Deepak Danduprolu; 28.05.2011
comment
Нет, у меня нет quote в блоке YML. Должен ли я? - person John Topley; 28.05.2011
comment
Кажется, что вы должны иметь quote, определенное в YML Front Matter в index.html, чтобы оно отображалось в файле default.html. - person John Topley; 28.05.2011

После долгих экспериментов мне удалось решить проблему, используя этот фрагмент кода Liquid в default.html:

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