在jekyll中重复html for post excerpt

时间:2015-12-25 10:19:28

标签: for-loop jekyll liquid

我正在使用php和wordpress在jekyll中迁移我的网站。除了我在博客部分遇到的一些问题外,一切都很顺利。

这是我的blog / index.html的样子:

---
layout: posts
---    
{% for post in paginator.posts %}
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
<p>
    <span class="date"><i class="fa fa-date"></i> {{ post.date | date: "%m-%d-%Y"}}</span>
</p>

    {{ post.excerpt }}
    <a class="more-link" href="{{ post.url }}">Read more...</a>

{% endfor %}

我想要发生的是布局的html:我每次{{post.excerpt}}的帖子重复。相反,它只是将所有帖子摘录包含在单个html位中。这是布局:

<div class="page-container">
    <div class="sub-container blog">
        <h1>Blog</h1>
        <div class="entry">

            {{ content }}
        </div>
        <!-- Pagination links -->
        <div class="pagination">
            <ul>
                {% if paginator.previous_page %}
                {% if paginator.previous_page == 1 %}
                <li>
                    <a href="/blog/">Prev</a>
                </li>
                {% else %}
                <li>
                    <a href="/blog/{{ paginator.previous_page }}">Prev</a>
                </li>
                {% endif %}
                {% else %}
                <li>
                    <span class="disabled">Prev</span>
                </li>
                {% endif %}
                {% if paginator.page == 1 %}
                <li>
                    <span class="active">1</span>
                </li>
                {% else %}
                <li>
                    <a href="/blog/">1</a>
                </li>
                {% endif %}
                {% for count in (2..paginator.total_pages) %}
                {% if count == paginator.page %}
                <li>
                    <span class="active">{{ count }}</span>
                </li>
                {% else %}
                <li>
                    <a href="/blog/{{ count }}">{{ count }}</a>
                </li>
                {% endif %}
                {% endfor %}
                {% if paginator.next_page %}
                <li>
                    <a href="/blog/{{ paginator.next_page }}">Next</a>
                </li>
                {% else %}
                <li>
                    <span class="disabled">Next</span>
                </li>
                {% endif %}
            </ul>
        </div>
    </div>
</div>

是否有一个for循环我必须创建后期摘录?什么是语法?我不知道如何实现这一点。

谢谢!

2 个答案:

答案 0 :(得分:1)

为什么你将带有摘录的循环放在一个文件中并将分页放在另一个文件中?

此帖子模板仅供博客索引和分页页面使用,因此您可以合并blog/index.html中的所有内容并执行:

---
layout: default
---
<div class="page-container">
    <div class="sub-container blog">
        <h1>Blog</h1>
        <div class="entry">
        {% for post in paginator.posts %}
            <h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
            <p><span class="date"><i class="fa fa-date"></i> {{ post.date | date: "%m-%d-%Y"}}</span></p>
            {{ post.excerpt }}
            <a class="more-link" href="{{ post.url }}">Read more...</a>
        {% endfor %}

        </div>
        <!-- Pagination links -->
        <div class="pagination">
            <ul>
                ... pagination code here
            </ul>
        </div>
    </div>
</div>

答案 1 :(得分:0)

实际上我只需要将div.entry之外的for循环的开启和关闭移动到这样:

{% for post in paginator.posts %}
<div class="entry">

    <h1><a href="{{ post.url }}">{{ post.title }}</a></h1>
    <p>
        <span class="date"><i class="fa fa-calendar"></i> {{ post.date | date: "%m-%d-%Y"}}</span>
    </p>
    {{ post.excerpt }}
    <a class="more-link" href="{{ post.url }}">Read more...</a>

</div>
{% endfor %}